text:
package org.fusesource.mvnplugins.linkchecker;

import org.apache.commons.io.FilenameUtils;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.doxia.linkcheck.HttpBean;
import org.apache.maven.doxia.linkcheck.LinkCheck;
import org.apache.maven.doxia.linkcheck.LinkCheckException;
import org.apache.maven.doxia.linkcheck.model.LinkcheckFile;
import org.apache.maven.doxia.linkcheck.model.LinkcheckFileResult;
import org.apache.maven.doxia.linkcheck.model.LinkcheckModel;
import org.apache.maven.doxia.siterenderer.Renderer;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.AbstractMavenReport;
import org.apache.maven.reporting.MavenReportException;
import org.apache.maven.settings.Proxy;
import org.apache.maven.settings.Settings;
import org.codehaus.plexus.i18n.I18N;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.WriterFactory;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Properties;

/**
 * Generates a Linkcheck report.
 *
 * Based on code from the maven-linkcheck-plugin
 *
 * @author Vincent Siveton
 * @goal linkcheck
 */
public class LinkcheckReport
    extends AbstractMavenReport
{
    // ----------------------------------------------------------------------
    // Report Components
    // ----------------------------------------------------------------------

    /**
     * Internationalization.
     *
     * @component
     */
    private I18N i18n;

    /**
     * Doxia Site Renderer.
     *
     * @component
     */
    private Renderer siteRenderer;

    /**
     * LinkCheck component.
     *
     * @component
     */
    private LinkCheck linkCheck;

    // ----------------------------------------------------------------------
    // Report Parameters
    // ----------------------------------------------------------------------

    /**
     * The Maven Project.
     *
     * @parameter expression="${project}"
     * @required
     * @readonly
     */
    private MavenProject project;

    /**
     * Local Repository.
     *
     * @parameter expression="${localRepository}"
     * @required
     * @readonly
     */
    private ArtifactRepository localRepository;

    /**
     * Report output directory.
     *
     * @parameter expression="${project.reporting.outputDirectory}"
     * @required
     */
    private File outputDirectory;

    /**
     * The Maven Settings.
     *
     * @parameter default-value="${settings}"
     * @required
     * @readonly
     */
    private Settings settings;

    // ----------------------------------------------------------------------
    // Linkcheck parameters
    // ----------------------------------------------------------------------

    /**
     * Whether we are offline or not.
     *
     * @parameter default-value="${settings.offline}" expression="${linkcheck.offline}"
     * @required
     */
    private boolean offline;

    /**
     * If online, the HTTP method should automatically follow HTTP redirects,
     * <tt>false</tt> otherwise.
     *
     * @parameter default-value="true"
     */
    private boolean httpFollowRedirect;

    /**
     * The location of the Linkcheck cache file.
     *
     * @parameter default-value="${project.build.directory}/linkcheck/linkcheck.cache"
     * @required
     */
    protected File linkcheckCache;

    /**
     * The location of the Linkcheck report file.
     *
     * @parameter default-value="${project.build.directory}/linkcheck/linkcheck.xml"
     * @required
     */
    protected File linkcheckOutput;

    /**
     * The HTTP method to use. Currently supported are "GET" and "HEAD".
     *

     *
HTTP GET

     *

     * The HTTP GET method is defined in section 9.3 of
     * RFC2616:
     * The GET method means retrieve whatever information (in the form of an
     * entity) is identified by the Request-URI.
     *

     *
HTTP HEAD

     *

     * The HTTP HEAD method is defined in section 9.4 of
     * RFC2616:
     * The HEAD method is identical to GET except that the server MUST NOT
     * return a message-body in the response.
     *

     *

     *
     * @parameter default-value="head"
     * @required
     */
    private String httpMethod;

    /**
     * The list of HTTP errors to ignored, like 404.
     *
     * @parameter
     * @see {@link org.apache.commons.httpclient.HttpStatus} for all defined values.
     */
    private int[] excludedHttpStatusErrors;

    /**
     * The list of HTTP warnings to ignored, like 301.
     *
     * @parameter
     * @see {@link org.apache.commons.httpclient.HttpStatus} for all defined values.
     */
    private int[] excludedHttpStatusWarnings;

    /**
     * The list of site pages to exclude. By default, this report, i.e. linkcheck.html, will be excluded.
     *

     * Note: No pattern is allowed for excludedPage, only specific file names.
     *
     * @parameter
     */
    private String[] excludedPages;

    /**
     * The list of links to exclude.
     *

     * Note: Patterns like **/dummy/* are allowed for excludedLink.
     *
     * @parameter
     */
    private String[] excludedLinks;

    /**
     * The file encoding to use when Linkcheck reads the source files. If the property
     * project.build.sourceEncoding is not set, the platform default encoding is used.
     *
     * @parameter expression="${encoding}" default-value="${project.build.sourceEncoding}"
     */
    private String encoding;

    /**
     * The extra HttpClient parameters to be used when fetching links. For instance:
     *

     * <httpClientParameters>
     *  <property>
     *   <name>http.protocol.max-redirects</name>
     *   <value>10</value>
     *  </property>
     * </httpClientParameters>
     *

     * See HttpClient preference page
     *
     * @parameter expression="${httpClientParameters}"
     */
    private Properties httpClientParameters;

    /**
     * Set the timeout to be used when fetching links. A value of zero means the timeout is not used.
     *
     * @parameter expression="${timeout}" default-value="2000"
     */
    private int timeout;

    /**
     * true to skip the report execution, false otherwise.
     * The purpose is to prevent infinite call when {@link #forceSite} is enable.
     *
     * @parameter expression="${linkcheck.skip}" default-value="false"
     */
    private boolean skip;

    /**
     * true to force the site generation, false otherwise.
     * Using this parameter ensures that all documents have been correctly generated.
     *
     * @parameter expression="${linkcheck.forceSite}" default-value="true"
     */
    private boolean forceSite;

    /**
     * The base URL to use for absolute links (eg /index.html) in the site.
     *
     * @parameter expression="${linkcheck.baseURL}" default-value="${project.url}"
     */
    private String baseURL;

    /**
     * The base directory of the generated site to link check
     *
     * @parameter default-value="${project.build.directory}/sitegen"
     */
    private File basedir;

    // ----------------------------------------------------------------------
    // Instance fields
    // ----------------------------------------------------------------------

    /** Result of the linkcheck in {@link #execute()} */
    private LinkcheckModel result;

    // ----------------------------------------------------------------------
    // Public methods
    // ----------------------------------------------------------------------

    /** {@inheritDoc} */
    public String getDescription( Locale locale )
    {
        return i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.description" );
    }

    /** {@inheritDoc} */
    public String getName( Locale locale )
    {
        return i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.name" );
    }

    /** {@inheritDoc} */
    public String getOutputName()
    {
        return "sitegen-linkcheck";
    }

    /** {@inheritDoc} */
    public boolean canGenerateReport()
    {
        if ( skip )
        {
            return false;
        }

        return true;
    }

    /** {@inheritDoc} */
    public void execute()
        throws MojoExecutionException
    {
        if ( !canGenerateReport() )
        {
            return;
        }

        // encoding
        if ( StringUtils.isEmpty( encoding ) )
        {
            if ( getLog().isWarnEnabled() )
            {
                getLog().warn(
                               "File encoding has not been set, using platform encoding "
                                   + ReaderFactory.FILE_ENCODING + ", i.e. build is platform dependent!" );
            }
            encoding = ReaderFactory.FILE_ENCODING;
        }

        List documents = null;
        try
        {
            documents = FileUtils.getFiles( basedir, "**/*.html", null );
        }
        catch ( IOException e )
        {
            String msg = "IOException: " + e.getMessage();
            if ( getLog().isDebugEnabled() )
            {
                getLog().error( msg, e );
            }
            else
            {
                getLog().error( msg );
            }
        }

        // if the site was not already generated, invoke it
        if ( documents == null || ( documents != null && documents.size() == 0 ) )
        {
            throw new MojoExecutionException( "No site generated yet." );
        }

        try
        {
            result = executeLinkCheck( basedir );
        }
        catch ( LinkCheckException e )
        {
            throw new MojoExecutionException( "LinkCheckException: " + e.getMessage(), e );
        }
    }

    // ----------------------------------------------------------------------
    // Protected methods
    // ----------------------------------------------------------------------

    /** {@inheritDoc} */
    protected String getOutputDirectory()
    {
        return outputDirectory.getAbsolutePath();
    }

    /** {@inheritDoc} */
    protected MavenProject getProject()
    {
        return project;
    }

    /** {@inheritDoc} */
    protected Renderer getSiteRenderer()
    {
        return siteRenderer;
    }

    /** {@inheritDoc} */
    protected void executeReport( Locale locale )
        throws MavenReportException
    {
        if ( result == null )
        {
            getLog().debug( "Calling execute()" );

            try
            {
                this.execute();
            }
            catch ( MojoExecutionException e )
            {
                throw new MavenReportException( "MojoExecutionException: " + e.getMessage(), e );
            }
        }

        if ( result != null )
        {
            generateReport( locale, result );
            // free memory
            result = null;
        }
    }

    // ----------------------------------------------------------------------
    // Private methods
    // ----------------------------------------------------------------------

    /**
     * Execute the Linkcheck tool.
     *
     * @param basedir not null
     * @throws LinkCheckException if any
     */
    private LinkcheckModel executeLinkCheck( File basedir )
        throws LinkCheckException
    {
        // Wrap linkcheck
        linkCheck.setOnline( !offline );
        linkCheck.setBasedir( basedir );
        linkCheck.setBaseURL( baseURL );
        linkCheck.setReportOutput( linkcheckOutput );
        linkCheck.setLinkCheckCache( linkcheckCache );
        linkCheck.setExcludedLinks( excludedLinks );
        linkCheck.setExcludedPages( getExcludedPages() );
        linkCheck.setExcludedHttpStatusErrors( excludedHttpStatusErrors );
        linkCheck.setExcludedHttpStatusWarnings( excludedHttpStatusWarnings );
        linkCheck.setEncoding( ( StringUtils.isNotEmpty( encoding ) ? encoding : WriterFactory.UTF_8 ) );

        HttpBean bean = new HttpBean();
        bean.setMethod( httpMethod );
        bean.setFollowRedirects( httpFollowRedirect );
        bean.setTimeout( timeout );
        if ( httpClientParameters != null )
        {
            bean.setHttpClientParameters( httpClientParameters );
        }

        Proxy proxy = settings.getActiveProxy();
        if ( proxy != null )
        {
            bean.setProxyHost( proxy.getHost() );
            bean.setProxyPort( proxy.getPort() );
            bean.setProxyUser( proxy.getUsername() );
            bean.setProxyPassword( proxy.getPassword() );
        }
        linkCheck.setHttp( bean );

        return linkCheck.execute();
    }

    /**
     * @return the excludedPages defined by the user and also this report.
     */
    private String[] getExcludedPages()
    {
        List pagesToExclude =
            ( excludedPages != null ? new ArrayList( Arrays.asList( excludedPages ) ) : new ArrayList() );

        // Exclude this report
        pagesToExclude.add( getOutputName() + ".html" );

        return (String[]) pagesToExclude.toArray( new String[0] );
    }

    // ----------------------------------------------------------------------
    // Linkcheck report
    // ----------------------------------------------------------------------

    private void generateReport( Locale locale, LinkcheckModel linkcheckModel )
    {
        getSink().head();
        getSink().title();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.title" ) );
        getSink().title_();
        getSink().head_();

        getSink().body();

        if ( linkcheckModel == null )
        {
            getSink().section1();
            getSink().sectionTitle1();
            getSink().text( getName( locale ) );
            getSink().sectionTitle1_();

            getSink().paragraph();
            getSink().rawText( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.empty" ) );
            getSink().paragraph_();

            getSink().section1_();

            getSink().body_();
            getSink().flush();
            getSink().close();

            return;
        }

        // Overview
        getSink().section1();
        getSink().sectionTitle1();
        getSink().text( getName( locale ) );
        getSink().sectionTitle1_();

        getSink().paragraph();
        getSink().rawText( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.overview" ) );
        getSink().paragraph_();

        getSink().section1_();

        // Statistics
        generateSummarySection( locale, linkcheckModel );

        if ( linkcheckModel.getFiles().size() > 0 )
        {
            // Details
            generateDetailsSection( locale, linkcheckModel );
        }

        getSink().body_();
        getSink().flush();
        getSink().close();

        closeReport();
    }

    private void generateSummarySection( Locale locale, LinkcheckModel linkcheckModel )
    {
        // Calculus
        List linkcheckFiles = linkcheckModel.getFiles();

        int totalFiles = linkcheckFiles.size();

        int totalLinks = 0;
        int totalValidLinks = 0;
        int totalErrorLinks = 0;
        int totalWarningLinks = 0;
        for ( Iterator it = linkcheckFiles.iterator(); it.hasNext(); )
        {
            LinkcheckFile linkcheckFile = (LinkcheckFile) it.next();

            totalLinks += linkcheckFile.getNumberOfLinks();
            totalValidLinks += linkcheckFile.getNumberOfLinks( LinkcheckFileResult.VALID_LEVEL );
            totalErrorLinks += linkcheckFile.getNumberOfLinks( LinkcheckFileResult.ERROR_LEVEL );
            totalWarningLinks += linkcheckFile.getNumberOfLinks( LinkcheckFileResult.WARNING_LEVEL );
        }

        getSink().section1();
        getSink().sectionTitle1();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary" ) );
        getSink().sectionTitle1_();

        // Summary of the analysis parameters
        getSink().paragraph();
        getSink().rawText( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.overview1" ) );
        getSink().paragraph_();

        getSink().table();

        getSink().tableRow();
        getSink().tableHeaderCell();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.parameter" ) );
        getSink().tableHeaderCell_();
        getSink().tableHeaderCell();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.value" ) );
        getSink().tableHeaderCell_();
        getSink().tableRow_();

        getSink().tableRow();
        getSink().tableCell();
        getSink().rawText(
                           i18n.getString( "sitegen-linkcheck-report", locale,
                                           "report.sitegen.linkcheck.summary.table.httpFollowRedirect" ) );
        getSink().tableCell_();
        getSink().tableCell();
        getSink().text( String.valueOf( httpFollowRedirect ) );
        getSink().tableCell_();
        getSink().tableRow_();

        getSink().tableRow();
        getSink().tableCell();
        getSink()
                 .rawText(
                           i18n
                               .getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.httpMethod" ) );
        getSink().tableCell_();
        getSink().tableCell();
        if ( StringUtils.isEmpty( httpMethod ) )
        {
            getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.none" ) );
        }
        else
        {
            getSink().text( httpMethod );
        }
        getSink().tableCell_();
        getSink().tableRow_();

        getSink().tableRow();
        getSink().tableCell();
        getSink().rawText(
                           i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.offline" ) );
        getSink().tableCell_();
        getSink().tableCell();
        getSink().text( String.valueOf( offline ) );
        getSink().tableCell_();
        getSink().tableRow_();

        getSink().tableRow();
        getSink().tableCell();
        getSink().rawText(
                           i18n.getString( "sitegen-linkcheck-report", locale,
                                           "report.sitegen.linkcheck.summary.table.excludedPages" ) );
        getSink().tableCell_();
        getSink().tableCell();
        if ( getExcludedPages() == null || getExcludedPages().length == 0 )
        {
            getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.none" ) );
        }
        else
        {
            getSink().text( StringUtils.join( getExcludedPages(), "," ) );
        }
        getSink().tableCell_();
        getSink().tableRow_();

        getSink().tableRow();
        getSink().tableCell();
        getSink().rawText(
                           i18n.getString( "sitegen-linkcheck-report", locale,
                                           "report.sitegen.linkcheck.summary.table.excludedLinks" ) );
        getSink().tableCell_();
        getSink().tableCell();
        if ( excludedLinks == null || excludedLinks.length == 0 )
        {
            getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.none" ) );
        }
        else
        {
            getSink().text( StringUtils.join( excludedLinks, "," ) );
        }
        getSink().tableCell_();
        getSink().tableRow_();

        getSink().tableRow();
        getSink().tableCell();
        getSink().rawText(
                           i18n.getString( "sitegen-linkcheck-report", locale,
                                           "report.sitegen.linkcheck.summary.table.excludedHttpStatusErrors" ) );
        getSink().tableCell_();
        getSink().tableCell();
        if ( excludedHttpStatusErrors == null || excludedHttpStatusErrors.length == 0 )
        {
            getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.none" ) );
        }
        else
        {
            getSink().text( toString( excludedHttpStatusErrors ) );
        }
        getSink().tableCell_();
        getSink().tableRow_();

        getSink().tableRow();
        getSink().tableCell();
        getSink().rawText(
                           i18n.getString( "sitegen-linkcheck-report", locale,
                                           "report.sitegen.linkcheck.summary.table.excludedHttpStatusWarnings" ) );
        getSink().tableCell_();
        getSink().tableCell();
        if ( excludedHttpStatusWarnings == null || excludedHttpStatusWarnings.length == 0 )
        {
            getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.table.none" ) );
        }
        else
        {
            getSink().text( toString( excludedHttpStatusWarnings ) );
        }
        getSink().tableCell_();
        getSink().tableRow_();

        getSink().table_();

        // Summary of the checked files
        getSink().paragraph();
        getSink().rawText( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.summary.overview2" ) );
        getSink().paragraph_();

        getSink().table();

        // Header
        generateTableHeader( locale, false );

        // Content
        getSink().tableRow();

        getSink().tableCell();
        getSink().bold();
        getSink().text( totalFiles + "" );
        getSink().bold_();
        getSink().tableCell_();
        getSink().tableCell();
        getSink().bold();
        getSink().text( totalLinks + "" );
        getSink().bold_();
        getSink().tableCell_();
        getSink().tableCell();
        getSink().bold();
        getSink().text( String.valueOf( totalValidLinks ) );
        getSink().bold_();
        getSink().tableCell_();
        getSink().tableCell();
        getSink().bold();
        getSink().text( String.valueOf( totalWarningLinks ) );
        getSink().bold_();
        getSink().tableCell_();
        getSink().tableCell();
        getSink().bold();
        getSink().text( String.valueOf( totalErrorLinks ) );
        getSink().bold_();
        getSink().tableCell_();

        getSink().tableRow_();

        getSink().table_();

        getSink().section1_();
    }

    private void generateDetailsSection( Locale locale, LinkcheckModel linkcheckModel )
    {
        getSink().section1();
        getSink().sectionTitle1();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.detail" ) );
        getSink().sectionTitle1_();

        getSink().paragraph();
        getSink().rawText( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.detail.overview" ) );
        getSink().paragraph_();

        getSink().table();

        // Header
        generateTableHeader( locale, true );

        // Content
        List linkcheckFiles = linkcheckModel.getFiles();
        for ( Iterator it = linkcheckFiles.iterator(); it.hasNext(); )
        {
            LinkcheckFile linkcheckFile = (LinkcheckFile) it.next();

            getSink().tableRow();

            getSink().tableCell();
            if ( linkcheckFile.getUnsuccessful() == 0 )
            {
                iconValid( locale );
            }
            else
            {
                iconError( locale );
            }
            getSink().tableCell_();

            // tableCell( createLinkPatternedText( linkcheckFile.getRelativePath(), "./"
            // + linkcheckFile.getRelativePath() ) );
            getSink().tableCell();
            getSink().link( linkcheckFile.getRelativePath() );
            getSink().text( linkcheckFile.getRelativePath() );
            getSink().link_();
            getSink().tableCell_();
            getSink().tableCell();
            getSink().text( String.valueOf( linkcheckFile.getNumberOfLinks() ) );
            getSink().tableCell_();
            getSink().tableCell();
            getSink().text( String.valueOf( linkcheckFile.getNumberOfLinks( LinkcheckFileResult.VALID_LEVEL ) ) );
            getSink().tableCell_();
            getSink().tableCell();
            getSink().text( String.valueOf( linkcheckFile.getNumberOfLinks( LinkcheckFileResult.WARNING_LEVEL ) ) );
            getSink().tableCell_();
            getSink().tableCell();
            getSink().text( String.valueOf( linkcheckFile.getNumberOfLinks( LinkcheckFileResult.ERROR_LEVEL ) ) );
            getSink().tableCell_();

            getSink().tableRow_();

            // Detail error
            if ( linkcheckFile.getUnsuccessful() != 0 )
            {
                getSink().tableRow();

                getSink().tableCell();
                getSink().text( "" );
                getSink().tableCell_();

                // TODO it is due to DOXIA-78
                getSink().rawText( "" );

                getSink().table();

                for ( Iterator it2 = linkcheckFile.getResults().iterator(); it2.hasNext(); )
                {
                    LinkcheckFileResult linkcheckFileResult = (LinkcheckFileResult) it2.next();

                    if ( linkcheckFileResult.getStatusLevel() == LinkcheckFileResult.VALID_LEVEL )
                    {
                        continue;
                    }

                    getSink().tableRow();

                    getSink().tableCell();
                    if ( linkcheckFileResult.getStatusLevel() == LinkcheckFileResult.WARNING_LEVEL )
                    {
                        iconWarning( locale );
                    }
                    else if ( linkcheckFileResult.getStatusLevel() == LinkcheckFileResult.ERROR_LEVEL )
                    {
                        iconError( locale );
                    }
                    getSink().tableCell_();

                    getSink().tableCell();
                    getSink().italic();
                    if ( linkcheckFileResult.getTarget().startsWith( "#" ) )
                    {
                        getSink().link( linkcheckFile.getRelativePath() + linkcheckFileResult.getTarget() );
                    }
                    else if ( linkcheckFileResult.getTarget().startsWith( "." ) )
                    {
                        // We need to calculate a correct absolute path here, because target is a relative path
                        String absolutePath = FilenameUtils.getFullPath( linkcheckFile.getRelativePath() )
                            + linkcheckFileResult.getTarget();
                        String normalizedPath = FilenameUtils.normalize( absolutePath );
                        if ( normalizedPath == null )
                        {
                            normalizedPath = absolutePath;
                        }
                        getSink().link( normalizedPath );
                    }
                    else
                    {
                        getSink().link( linkcheckFileResult.getTarget() );
                    }
                    // Show the link as it was written to make it easy for
                    // the author to find it in the source document
                    getSink().text( linkcheckFileResult.getTarget() );
                    getSink().link_();
                    getSink().text( ": " );
                    getSink().text( linkcheckFileResult.getErrorMessage() );
                    getSink().italic_();
                    getSink().tableCell_();

                    getSink().tableRow_();
                }

                getSink().table_();

                getSink().tableCell_();

                getSink().tableRow_();
            }
        }

        getSink().table_();

        getSink().section1_();
    }

    private void generateTableHeader( Locale locale, boolean detail )
    {
        getSink().tableRow();
        if ( detail )
        {
            getSink().rawText( "" );
            getSink().text( "" );
            getSink().tableHeaderCell_();
        }
        getSink().rawText( "" );
        getSink().text(
                        detail ? i18n.getString( "sitegen-linkcheck-report", locale,
                                                 "report.sitegen.linkcheck.detail.table.documents" )
                                        : i18n.getString( "sitegen-linkcheck-report", locale,
                                                          "report.sitegen.linkcheck.summary.table.documents" ) );
        getSink().tableHeaderCell_();
        // TODO it is due to DOXIA-78
        getSink().rawText( "" );
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.table.links" ) );
        getSink().tableHeaderCell_();
        getSink().tableRow_();

        getSink().tableRow();
        getSink().tableHeaderCell();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.table.totalLinks" ) );
        getSink().tableHeaderCell_();
        getSink().tableHeaderCell();
        iconValid( locale );
        getSink().tableHeaderCell_();
        getSink().tableHeaderCell();
        iconWarning( locale );
        getSink().tableHeaderCell_();
        getSink().tableHeaderCell();
        iconError( locale );
        getSink().tableHeaderCell_();
        getSink().tableRow_();
    }

    private void iconError( Locale locale )
    {
        getSink().figure();
        getSink().figureCaption();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.icon.error" ) );
        getSink().figureCaption_();
        // should be defined in skins
        getSink().figureGraphics( "images/icon_error_sml.gif" );
        getSink().figure_();
    }

    private void iconValid( Locale locale )
    {
        getSink().figure();
        getSink().figureCaption();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.icon.valid" ) );
        getSink().figureCaption_();
        // should be defined in skins
        getSink().figureGraphics( "images/icon_success_sml.gif" );
        getSink().figure_();
    }

    private void iconWarning( Locale locale )
    {
        getSink().figure();
        getSink().figureCaption();
        getSink().text( i18n.getString( "sitegen-linkcheck-report", locale, "report.sitegen.linkcheck.icon.warning" ) );
        getSink().figureCaption_();
        // should be defined in skins
        getSink().figureGraphics( "images/icon_warning_sml.gif" );
        getSink().figure_();
    }

    // ----------------------------------------------------------------------
    // static methods
    // ----------------------------------------------------------------------

    /**
     * Similar to {@link Arrays#toString(int[])} in 1.5.
     *
     * @param a not null
     * @return the array comma separated.
     */
    private static String toString( int[] a )
    {
        if ( a == null || a.length == 0 )
        {
            return "";
        }

        StringBuffer buf = new StringBuffer();
        buf.append( a[0] );

        for ( int i = 1; i < a.length; i++ )
        {
            buf.append( ", " );
            buf.append( a[i] );
        }

        return buf.toString();
    }
}


text:
#ifndef __SPITE_NODE_CCSPRITE_H__
#define __SPITE_NODE_CCSPRITE_H__

#include "base_nodes/CCNode.h"
#include "CCProtocols.h"
#include "textures/CCTextureAtlas.h"
#include "ccTypes.h"
#include "cocoa/CCDictionary.h"
#include <string>

NS_CC_BEGIN

class CCSpriteBatchNode;
class CCSpriteFrame;
class CCAnimation;
class CCRect;
class CCPoint;
class CCSize;
class CCTexture2D;
struct transformValues_;

/**
 * @addtogroup sprite_nodes
 * @{
 */

#define CCSpriteIndexNotInitialized 0xffffffff     /// CCSprite invalid index on the CCSpriteBatchNode

/**
 * CCSprite is a 2d image ( http://en.wikipedia.org/wiki/Sprite_(computer_graphics) )
 *
 * CCSprite can be created with an image, or with a sub-rectangle of an image.
 *
 * If the parent or any of its ancestors is a CCSpriteBatchNode then the following features/limitations are valid
 *    - Features when the parent is a CCBatchNode:
 *        - MUCH faster rendering, specially if the CCSpriteBatchNode has many children. All the children will be drawn in a single batch.
 *
 *    - Limitations
 *        - Camera is not supported yet (eg: CCOrbitCamera action doesn't work)
 *        - GridBase actions are not supported (eg: CCLens, CCRipple, CCTwirl)
 *        - The Alias/Antialias property belongs to CCSpriteBatchNode, so you can't individually set the aliased property.
 *        - The Blending function property belongs to CCSpriteBatchNode, so you can't individually set the blending function property.
 *        - Parallax scroller is not supported, but can be simulated with a "proxy" sprite.
 *
 *  If the parent is an standard CCNode, then CCSprite behaves like any other CCNode:
 *    - It supports blending functions
 *    - It supports aliasing / antialiasing
 *    - But the rendering will be slower: 1 draw per children.
 *
 * The default anchorPoint in CCSprite is (0.5, 0.5).
 */
class CC_DLL CCSprite : public CCNodeRGBA, public CCTextureProtocol
{
public:
    /// @{
    /// @name Creators

    /**
     * Creates an empty sprite without texture. You can call setTexture method subsequently.
     *
     * @return An empty sprite object that is marked as autoreleased.
     */
    static CCSprite* create();

    /**
     * Creates a sprite with an image filename.
     *
     * After creation, the rect of sprite will be the size of the image,
     * and the offset will be (0,0).
     *
     * @param   pszFileName The string which indicates a path to image file, e.g., "scene1/monster.png".
     * @return  A valid sprite object that is marked as autoreleased.
     */
    static CCSprite* create(const char *pszFileName);

    /**
     * Creates a sprite with an image filename and a rect.
     *
     * @param   pszFileName The string wich indicates a path to image file, e.g., "scene1/monster.png"
     * @param   rect        Only the contents inside rect of pszFileName's texture will be applied for this sprite.
     * @return  A valid sprite object that is marked as autoreleased.
     */
    static CCSprite* create(const char *pszFileName, const CCRect& rect);

    /**
     * Creates a sprite with an exsiting texture contained in a CCTexture2D object
     * After creation, the rect will be the size of the texture, and the offset will be (0,0).
     *
     * @param   pTexture    A pointer to a CCTexture2D object.
     * @return  A valid sprite object that is marked as autoreleased.
     */
    static CCSprite* createWithTexture(CCTexture2D *pTexture);

    /**
     * Creates a sprite with a texture and a rect.
     *
     * After creation, the offset will be (0,0).
     *
     * @param   pTexture    A pointer to an existing CCTexture2D object.
     *                      You can use a CCTexture2D object for many sprites.
     * @param   rect        Only the contents inside the rect of this texture will be applied for this sprite.
     * @return  A valid sprite object that is marked as autoreleased.
     */
    static CCSprite* createWithTexture(CCTexture2D *pTexture, const CCRect& rect);

    /**
     * Creates a sprite with an sprite frame.
     *
     * @param   pSpriteFrame    A sprite frame which involves a texture and a rect
     * @return  A valid sprite object that is marked as autoreleased.
     */
    static CCSprite* createWithSpriteFrame(CCSpriteFrame *pSpriteFrame);

    /**
     * Creates a sprite with an sprite frame name.
     *
     * A CCSpriteFrame will be fetched from the CCSpriteFrameCache by pszSpriteFrameName param.
     * If the CCSpriteFrame doesn't exist it will raise an exception.
     *
     * @param   pszSpriteFrameName A null terminated string which indicates the sprite frame name.
     * @return  A valid sprite object that is marked as autoreleased.
     */
    static CCSprite* createWithSpriteFrameName(const char *pszSpriteFrameName);

    /// @}  end of creators group

    /// @{
    /// @name Initializers

    /**
     * Default constructor
     */
    CCSprite(void);

    /**
     * Default destructor
     */
    virtual ~CCSprite(void);

    /**
     * Initializes an empty sprite with nothing init.
     */
    virtual bool init(void);

    /**
     * Initializes a sprite with a texture.
     *
     * After initialization, the rect used will be the size of the texture, and the offset will be (0,0).
     *
     * @param   pTexture    A pointer to an existing CCTexture2D object.
     *                      You can use a CCTexture2D object for many sprites.
     * @return  true if the sprite is initialized properly, false otherwise.
     */
    virtual bool initWithTexture(CCTexture2D *pTexture);

    /**
     * Initializes a sprite with a texture and a rect.
     *
     * After initialization, the offset will be (0,0).
     *
     * @param   pTexture    A pointer to an exisiting CCTexture2D object.
     *                      You can use a CCTexture2D object for many sprites.
     * @param   rect        Only the contents inside rect of this texture will be applied for this sprite.
     * @return  true if the sprite is initialized properly, false otherwise.
     */
    virtual bool initWithTexture(CCTexture2D *pTexture, const CCRect& rect);

    /**
     * Initializes a sprite with a texture and a rect in points, optionally rotated.
     *
     * After initialization, the offset will be (0,0).
     * @note    This is the designated initializer.
     *
     * @param   pTexture    A CCTexture2D object whose texture will be applied to this sprite.
     * @param   rect        A rectangle assigned the contents of texture.
     * @param   rotated     Whether or not the texture rectangle is rotated.
     * @return  true if the sprite is initialized properly, false otherwise.
     */
    virtual bool initWithTexture(CCTexture2D *pTexture, const CCRect& rect, bool rotated);

    /**
     * Initializes a sprite with an SpriteFrame. The texture and rect in SpriteFrame will be applied on this sprite
     *
     * @param   pSpriteFrame  A CCSpriteFrame object. It should includes a valid texture and a rect
     * @return  true if the sprite is initialized properly, false otherwise.
     */
    virtual bool initWithSpriteFrame(CCSpriteFrame *pSpriteFrame);

    /**
     * Initializes a sprite with an sprite frame name.
     *
     * A CCSpriteFrame will be fetched from the CCSpriteFrameCache by name.
     * If the CCSpriteFrame doesn't exist it will raise an exception.
     *
     * @param   pszSpriteFrameName  A key string that can fected a volid CCSpriteFrame from CCSpriteFrameCache
     * @return  true if the sprite is initialized properly, false otherwise.
     */
    virtual bool initWithSpriteFrameName(const char *pszSpriteFrameName);

    /**
     * Initializes a sprite with an image filename.
     *
     * This method will find pszFilename from local file system, load its content to CCTexture2D,
     * then use CCTexture2D to create a sprite.
     * After initialization, the rect used will be the size of the image. The offset will be (0,0).
     *
     * @param   pszFilename The path to an image file in local file system
     * @return  true if the sprite is initialized properly, false otherwise.
     */
    virtual bool initWithFile(const char *pszFilename);

    /**
     * Initializes a sprite with an image filename, and a rect.
     *
     * This method will find pszFilename from local file system, load its content to CCTexture2D,
     * then use CCTexture2D to create a sprite.
     * After initialization, the offset will be (0,0).
     *
     * @param   pszFilename The path to an image file in local file system.
     * @param   rect        The rectangle assigned the content area from texture.
     * @return  true if the sprite is initialized properly, false otherwise.
     */
    virtual bool initWithFile(const char *pszFilename, const CCRect& rect);

    /// @} end of initializers

    /// @{
    /// @name Functions inherited from CCTextureProtocol
    virtual void setTexture(CCTexture2D *texture);
    virtual CCTexture2D* getTexture(void);
    inline void setBlendFunc(ccBlendFunc blendFunc) { m_sBlendFunc = blendFunc; }
    inline ccBlendFunc getBlendFunc(void) { return m_sBlendFunc; }
    /// @}

    /// @{
    /// @name Functions inherited from CCNode
    virtual void setScaleX(float fScaleX);
    virtual void setScaleY(float fScaleY);
    virtual void setPosition(const CCPoint& pos);
    virtual void setRotation(float fRotation);
    virtual void setRotationX(float fRotationX);
    virtual void setRotationY(float fRotationY);
    virtual void setSkewX(float sx);
    virtual void setSkewY(float sy);
    virtual void removeChild(CCNode* pChild, bool bCleanup);
    virtual void removeAllChildrenWithCleanup(bool bCleanup);
    virtual void reorderChild(CCNode *pChild, int zOrder);
    virtual void addChild(CCNode *pChild);
    virtual void addChild(CCNode *pChild, int zOrder);
    virtual void addChild(CCNode *pChild, int zOrder, int tag);
    virtual void sortAllChildren();
    virtual void setScale(float fScale);
    virtual void setVertexZ(float fVertexZ);
    virtual void setAnchorPoint(const CCPoint& anchor);
    virtual void ignoreAnchorPointForPosition(bool value);
    virtual void setVisible(bool bVisible);
    virtual void draw(void);
    /// @}

    /// @{
    /// @name Functions inherited from CCNodeRGBA
    virtual void setColor(const ccColor3B& color3);
    virtual void updateDisplayedColor(const ccColor3B& parentColor);
    virtual void setOpacity(GLubyte opacity);
    virtual void setOpacityModifyRGB(bool modify);
    virtual bool isOpacityModifyRGB(void);
    virtual void updateDisplayedOpacity(GLubyte parentOpacity);
    /// @}

    /// @{
    /// @name BatchNode methods

    /**
     * Updates the quad according the rotation, position, scale values.
     */
    virtual void updateTransform(void);

    /**
     * Returns the batch node object if this sprite is rendered by CCSpriteBatchNode
     *
     * @return The CCSpriteBatchNode object if this sprite is rendered by CCSpriteBatchNode,
     *         NULL if the sprite isn't used batch node.
     */
    virtual CCSpriteBatchNode* getBatchNode(void);
    /**
     * Sets the batch node to sprite
     * @warning This method is not recommended for game developers. Sample code for using batch node
     * @code
     * CCSpriteBatchNode *batch = CCSpriteBatchNode::create("Images/grossini_dance_atlas.png", 15);
     * CCSprite *sprite = CCSprite::createWithTexture(batch->getTexture(), CCRectMake(0, 0, 57, 57));
     * batch->addChild(sprite);
     * layer->addChild(batch);
     * @endcode
     */
    virtual void setBatchNode(CCSpriteBatchNode *pobSpriteBatchNode);

    /// @} end of BatchNode methods

    /// @{
    /// @name Texture methods

    /**
     * Updates the texture rect of the CCSprite in points.
     * It will call setTextureRect:rotated:untrimmedSize with rotated = NO, and utrimmedSize = rect.size.
     */
    virtual void setTextureRect(const CCRect& rect);

    /**
     * Sets the texture rect, rectRotated and untrimmed size of the CCSprite in points.
     * It will update the texture coordinates and the vertex rectangle.
     */
    virtual void setTextureRect(const CCRect& rect, bool rotated, const CCSize& untrimmedSize);

    /**
     * Sets the vertex rect.
     * It will be called internally by setTextureRect.
     * Useful if you want to create 2x images from SD images in Retina Display.
     * Do not call it manually. Use setTextureRect instead.
     */
    virtual void setVertexRect(const CCRect& rect);

    /// @} end of texture methods

    /// @{
    /// @name Frames methods

    /**
     * Sets a new display frame to the CCSprite.
     */
    virtual void setDisplayFrame(CCSpriteFrame *pNewFrame);

    /**
     * Returns whether or not a CCSpriteFrame is being displayed
     */
    virtual bool isFrameDisplayed(CCSpriteFrame *pFrame);

    /**
     * Returns the current displayed frame.
     */
    virtual CCSpriteFrame* displayFrame(void);

    /// @} End of frames methods

    /// @{
    /// @name Animation methods
    /**
     * Changes the display frame with animation name and index.
     * The animation name will be get from the CCAnimationCache
     */
    virtual void setDisplayFrameWithAnimationName(const char *animationName, int frameIndex);
    /// @}

    /// @{
    /// @name Sprite Properties' setter/getters

    /**
     * Whether or not the Sprite needs to be updated in the Atlas.
     *
     * @return true if the sprite needs to be updated in the Atlas, false otherwise.
     */
    inline virtual bool isDirty(void) { return m_bDirty; }

    /**
     * Makes the Sprite to be updated in the Atlas.
     */
    inline virtual void setDirty(bool bDirty) { m_bDirty = bDirty; }

    /**
     * Returns the quad (tex coords, vertex coords and color) information.
     */
    inline ccV3F_C4B_T2F_Quad getQuad(void) { return m_sQuad; }

    /**
     * Returns whether or not the texture rectangle is rotated.
     */
    inline bool isTextureRectRotated(void) { return m_bRectRotated; }

    /**
     * Returns the index used on the TextureAtlas.
     */
    inline unsigned int getAtlasIndex(void) { return m_uAtlasIndex; }

    /**
     * Sets the index used on the TextureAtlas.
     * @warning Don't modify this value unless you know what you are doing
     */
    inline void setAtlasIndex(unsigned int uAtlasIndex) { m_uAtlasIndex = uAtlasIndex; }

    /**
     * Returns the rect of the CCSprite in points
     */
    inline const CCRect& getTextureRect(void) { return m_obRect; }

    /**
     * Gets the weak reference of the CCTextureAtlas when the sprite is rendered using via CCSpriteBatchNode
     */
    inline CCTextureAtlas* getTextureAtlas(void) { return m_pobTextureAtlas; }

    /**
     * Sets the weak reference of the CCTextureAtlas when the sprite is rendered using via CCSpriteBatchNode
     */
    inline void setTextureAtlas(CCTextureAtlas *pobTextureAtlas) { m_pobTextureAtlas = pobTextureAtlas; }

    /**
     * Gets the offset position of the sprite. Calculated automatically by editors like Zwoptex.
     */
    inline const CCPoint& getOffsetPosition(void) { return m_obOffsetPosition; }

    /**
     * Returns the flag which indicates whether the sprite is flipped horizontally or not.
     *
     * It only flips the texture of the sprite, and not the texture of the sprite's children.
     * Also, flipping the texture doesn't alter the anchorPoint.
     * If you want to flip the anchorPoint too, and/or to flip the children too use:
     * sprite->setScaleX(sprite->getScaleX() * -1);
     *
     * @return true if the sprite is flipped horizaontally, false otherwise.
     */
    bool isFlipX(void);
    /**
     * Sets whether the sprite should be flipped horizontally or not.
     *
     * @param bFlipX true if the sprite should be flipped horizaontally, false otherwise.
     */
    void setFlipX(bool bFlipX);

    /**
     * Return the flag which indicates whether the sprite is flipped vertically or not.
     *
     * It only flips the texture of the sprite, and not the texture of the sprite's children.
     * Also, flipping the texture doesn't alter the anchorPoint.
     * If you want to flip the anchorPoint too, and/or to flip the children too use:
     * sprite->setScaleY(sprite->getScaleY() * -1);
     *
     * @return true if the sprite is flipped vertically, flase otherwise.
     */
    bool isFlipY(void);
    /**
     * Sets whether the sprite should be flipped vertically or not.
     *
     * @param bFlipY true if the sprite should be flipped vertically, flase otherwise.
     */
    void setFlipY(bool bFlipY);

    /// @} End of Sprite properties getter/setters

protected:
    void updateColor(void);
    virtual void setTextureCoords(CCRect rect);
    virtual void updateBlendFunc(void);
    virtual void setReorderChildDirtyRecursively(void);
    virtual void setDirtyRecursively(bool bValue);

    //
    // Data used when the sprite is rendered using a CCSpriteSheet
    //
    CCTextureAtlas*     m_pobTextureAtlas;      /// CCSpriteBatchNode texture atlas (weak reference)
    unsigned int        m_uAtlasIndex;          /// Absolute (real) Index on the SpriteSheet
    CCSpriteBatchNode*  m_pobBatchNode;         /// Used batch node (weak reference)

    bool                m_bDirty;               /// Whether the sprite needs to be updated
    bool                m_bRecursiveDirty;      /// Whether all of the sprite's children needs to be updated
    bool                m_bHasChildren;         /// Whether the sprite contains children
    bool                m_bShouldBeHidden;      /// should not be drawn because one of the ancestors is not visible
    CCAffineTransform   m_transformToBatch;

    //
    // Data used when the sprite is self-rendered
    //
    ccBlendFunc        m_sBlendFunc;            /// It's required for CCTextureProtocol inheritance
    CCTexture2D*       m_pobTexture;            /// CCTexture2D object that is used to render the sprite

    //
    // Shared data
    //

    // texture
    CCRect m_obRect;                            /// Retangle of CCTexture2D
    bool   m_bRectRotated;                      /// Whether the texture is rotated

    // Offset Position (used by Zwoptex)
    CCPoint m_obOffsetPosition;
    CCPoint m_obUnflippedOffsetPositionFromCenter;

    // vertex coords, texture coords and color info
    ccV3F_C4B_T2F_Quad m_sQuad;

    // opacity and RGB protocol
    bool m_bOpacityModifyRGB;

    // image is flipped
    bool m_bFlipX;                              /// Whether the sprite is flipped horizaontally or not.
    bool m_bFlipY;                              /// Whether the sprite is flipped vertically or not.
};

// end of sprite_nodes group
/// @}

NS_CC_END

#endif // __SPITE_NODE_CCSPRITE_H__

redpajama_set_name: RedPajamaGithub


We have all been in these situations where the whining begins, and shortly after, the tantrums start. There are several different emotions that occur in these moments and the fear of losing control of the situation begins. There are a few areas of consideration. It is important to understand where the tantrums are coming from and how to de-escalate the situation before it becomes too overwhelming to handle. Below is a 3 step process on how to stop temper tantrums while helping your children improve their emotional regulation and problem-solving skills.
As parents or caregivers, it is our job to understand where the tantrum is coming from. Sometimes it has nothing to do with the actual situation. It is important to figure out what your child needs in the moment when your child is having a tantrum. Children struggle putting words to their emotions. As adults we want to use our words to give our children the opportunity to problem-solve the situation. We are then teaching our children a foundation for problem-solving skills along with stopping the tantrum. Below is an example on how to stop temper tantrums using the detective method.
After these steps are completed, redirection or distraction can be an effective way to put boundaries around the situation. A redirection can consist of giving your child a fidget, wrapping them in a blanket, teaching them how to calm down with deep breathing, using a coping skill, asking them to draw their emotions, taking a break, walking into a different room, etc. This will allow the child to re-group and allow you to control the situation and effectively.
These three skills will help teach your child problem-solving skills to assist them in the future. We want them to model a way of using words so they can work through bigger problems when they are older without tantrum like behaviors. Stopping the tantrum is a very big challenge and requires a lot of understanding and patience. Below are a few reminders to help you in the moment and feel empowered to stop the tantrum.
Never ask Why to figure out the reason for tantrum. Please visit this link for a full article about not using why.
If you would like extra guidance and support, please reach out to North Shore Family Services. We are happy to help you and your family reach your goals!


Growtopia Video and Music Downloader.
Jaksta Media Recorder is the best program to download, record and capture from growtopia.
Jaksta Media Recorder is well known as an all in one Growtopia Downloader, Growtopia Recorder and Growtopia Capture Tool for both Video, Music.
Its easy to use Jaksta Media Recorder to record from growtopia. Just play growtopia in your browser, and a copy of the growtopia video is downloaded to your PC. You can also just drag and drop (or cut and paste) webpage urls containing videos directly from your browser and Jaksta Media Recorder will extact the video. Its as simple as that!
Once the growtopia video download is complete, double click the growtopia video to watch it.


text:
Passport Season 6 Episode 8 | 1h 13m 47s
Two romances get complicated. Molesley and Spratt try out new jobs. Thomas takes a fateful step. Mrs. Patmore provokes a scandal. Isobel puts her foot down. Watch Downton Abbey online and across PBS streaming platforms.
The Best of Downton Abbey, from Social Media & The Web
Learn More About the Costumes of Downton Abbey
Finale Preview
See what's ahead for Downton Abbey.
See a preview for the penultimate episode of Downton Abbey, The Final Season.
Get a sneak peek of Downton Abbey, The Final Season, Episode 8.
Clip: S6 Ep8 | 41s

redpajama_set_name: RedPajamaCommonCrawl


Popcorn Park Zoo is a small 7-acre (2.8 ha) zoo located in Forked River, New Jersey, within Lacey Township. According to the Associated Humane Societies, the zoo is "a sanctuary for abandoned, injured, ill, exploited, abused or elderly wildlife, exotic and farm animals, and birds." The zoo has programs to educate visitors about animals and their environments and offers hundreds of rescued dogs and cats for adoption.
Popcorn Park Zoo was established in 1977 as a wildlife refuge for exotic and farm animals that were abused, ill, injured, handicapped, elderly, or exploited.
Popcorn Park Zoo has over 200 animals including Bengal tigers, Siberian tigers, African lions, Cougars, American black bears, an Arabian camel from the Rough Point estate of Doris Duke, and numerous species of monkeys, foxes, and white-tailed deer.
Princess, the camel, died February 2, 2014.
^ Artcom Museums Tour. "Popcorn Park Zoo". Retrieved 25 April 2012.
^ Are We There Yet. "Popcorn Park Zoo". Retrieved 25 April 2012.
This page was last edited on 25 May 2018, at 04:24 (UTC).


text:
grampian region capital
Enjoy an Unforgettable Visit to Craigellachie, Explore the Treasures of Banff and Macduff, Aberlour – A Delightful Tourist Destination. While you party the night away at fantastic Aberdeen is the third largest city in Scotland. Excess coronary mortality among Australian men and women living outside the capital city statistical divisions. This site is supported by ads. The e is drained by the Spey, Dee, and Don rivers. to the Grampian Highlands and embarking on a tour of various Whisky distilleries Your IP: 68.183.61.202 Grampus definition, a cetacean, Grampus griseus, of the dolphin family, widely distributed in northern seas. Gardens – a place where flowers still bloom despite the weather. Roses for viewing pleasure. The two new Scottish coronavirus patients are based in Ayrshire and the Grampian region respectively, the health secretary has confirmed. Image: A woman on the Mt Sturgeon (Wurgarri) walk. The capital city of the region was Aberdeen. Its capital city is Aberdeen, "The Granite City", so called for the granite rock mined in the Region and noted in its architecture. The Highland "Capital" is the City of Inverness ( in reality a Large Town), Culloden (Site of a Famous Battle) is around 30 mins drive from Inverness. Aberdeen, former county, Scotland: see Aberdeenshire Aberdeenshire, council area (1993 est. The w of the region is mountainous, rising to 1311m (4301ft) at Ben Macdhui. It was announced they had tested positive for Covid-19 on Wednesday morning, bringing the total number of cases in Scotland so far to three. Aberdeen is a city on the north east coast of Scotland where the rivers Dee and Don flow into the North Sea. Along the banks of the Spey lie many whisky distilleries. Grampian is a long establish region in Scotland and its capital, Aberdeen, The Newhaven Harbour used to be a ... Scotland.com. A capital is an uppercase letter. "9 to 5" was a top ten hit by Sheena Easton. Let's find possible answers to "Capital of the Grampian region" crossword clue. major floral competitions repeatedly and was even banned in one for winning drive from Dufftown -the capital of the famous Whisky distilleries. like no other. Capital of the Grampian region. splendor in the rain, an enchanting skyline in the evenings, and a feeling Scale the great sandstone mountains of the Grampians region to reach breathtaking views and a bright, new perspective. These extend from the southwest Highlands to the Moray Firth. She is known for the theme for the James Bond film "For Grampian Region - Business Viability and Competitiveness page 2 of 2 This table shows the regional priorities relevant to the region you have selected. Sheena EastonSheena Easton is a pop singer, that was born in Bellshill. Scotland Capital "Capital" refers a city that is the seat of government for its region or is important in some way. Her career was CAPITAL REGION, N.Y. — The area's housing market remains strong in the off season, according to the most recent report from the Greater Capital Association of Realtors. If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices. community, Property has consistently been a strong and stable investment choice. It is now divided into the unitary council areas of: Aberdeenshire; City of Aberdeen; Moray; The region had five districts: Aberdeen; Banff and Buchan; Gordon; Kincardine and Deeside; Moray; The region took its name from the Grampian Mountains. Discover grand and rugged mountain ranges, spectacular wildflower displays, a wide range of outdoor recreational opportunities, and a wealth of Aboriginal rock art sites in the Grampians National Park. Grampian is an adaptation of the Latin name Mons Graupius. of timelessness all year around. thriving city of culture and business, but it also has a romantic value. It was last seen in Daily quick crossword. Capital of the Grampian region. The Grampian Region takes its name from the highest mountain range in the British Isles, and the North East Region of Scotland is bounded on the north and east by the North Sea and on the west by forests and mountains. By clicking Agree you are accepting Terms of Service. Thanks Jane & John, everything was perfect! • The regional and county boundaries around Britain do change so some of the locations may be in a different region to what you expect. We have 1 … also visit the Queen Mother Rose Garden which exhibits a large variety of There is a lot on offer in Aberdeen and indeed, all of This site is not affiliated with any government entity associated with a name similar to the site domain name. The amount varies but is usually small, one-off payments. This is a museum attraction in The granite walls of magnificent buildings in Old Aberdeen provide sparkling We will manage and develop your investment in close partnership or as a hands free service. Article. established organisations, with particular emphasis on Kent and the Grampian region in Scotland. But London has delivered just 237,524 doses and the capital's mayor Sadiq Khan said he was "hugely concerned". It has other meanings, too. example of the many faceted appeal of Grampian and Aberdeen. Grampa should be capitalized when it's used as a proper name, as in Please tell Grampa that I miss him. But grampa does not need to be capitalized when it's simply used as a way to refer to him, as in Please tell my grampa … Capital is wealth or money, especially in the context of business: Squiggly needs capital to get his hot chocolate stand up … Domain has 340 Real Estate Properties for Sale in Grampians, VIC & surrounding suburbs. But the charm of this amazing city doesn't end there. Another way to prevent getting this page in the future is to use Privacy Pass. Information on investments, active portfolio, exits, fund performance, dry powder, team and co-investors for Grampian Biopartners. Finally, we will solve this crossword puzzle clue and get the correct word. All rights reserved. … The post holder shall manage and develop schemes that do not fall under the criteria of major capital project schemes. To make searching easier, some of the locations are listed under their older county names as … pop. Please note that Newhaven Heritage Museum has been closed.The Newhaven Heritage Museum is located next to the We will try to find the right answer to this particular crossword clue. See more. Discover. Mt Sturgeon, the Grampians. Aberdeen is not only an economically It was the capital of the Grampian region of Scotland, but it is now one of Scotland's Unitary Authorities. Please enable Cookies and reload the page. Use the PitchBook Platform to explore the full profile. Grampian. In the Lothian area, where the first coronavirus patient in Scotland died, there are 30 cases, up one, while there are 201in Lanarkshire, also an increase of one No part of this site shall be reproduced, copied, or otherwise distributed without the express, written consent of Scotland.com. The Grampian region is made up of the traditional counties of Aberdeenshire, Banffshire, Kincardineshire (Mearns), and Moray (Elginshire). As investors in the Grampian area and throughout Scotland for many years, our experience applying proven strategies will be focused to achieve your goals. The largest daily increase is in the Grampian region, where cases soared by more than double in a 24-hour period, to 26 from 12. Regarded as the Wool capital of Australia, Hamilton is a charming town near the popular Grampians region in Victoria. Lovely large room, personal touch, comfy bed, great breakfast, located 3 min. All trademarks and web sites that appear throughout this site are the property of their respective owners. Below is the list of locations in Grampian. Grampian. Capital progress: notes on the history of Edinburgh Health Department 1862-1974. You may need to download version 2.0 now from the Chrome Web Store. night spots, you will find that not far away life is less flashy in a quaint Each regional priority has a unique code (column one) which will help you to identify your selected priorities when completing your Statement of Intent/Proposal. It was named after the Grampian mountains which start in this region. The region was created in 1974. Aberdeen is also known This contrast is just one Under the Local Government Act of 1973, the county of Aberdeenshire (or Aberdeen) became part of the Grampian region in 1975. little fishing village called Fittie (Footdee). We have 1 possible answer in our database. Completing the CAPTCHA proves you are a human and gives you temporary access to the web property. If the hustle and bustle of the city doesn't appeal to you, you can try taking Cloudflare Ray ID: 6147c71bec660c91 The town is in the Shire of Northern Grampians local government area, 227 kilometres (141 mi) north west of the state capital, Melbourne and 37 kilometres (23 mi) north east of the regional centre of Stawell. Grampian Region in ne Scotland, bordered by the North Sea, the Grampian Highlands and the Cairngorms; the capital is Aberdeen. Set in Dufftown in the Grampian region, Alderwood B&B offers accommodations with free WiFi and free private parking. boosted by the BBC TV documentary "Big Time" which showed how EMI manufactured which has been aptly named the Malt Whisky Trail. All you need to do is find the magic for yourself. Design: Economic evaluation based on the results of the Grampian region early anistreplase trial. It is situated in the Newhaven Fish Market which is rich in A total of 447,329 doses have been administered in the region, the first to vaccinate a patient as part of the programme, with 387,647 people receiving at least one injection. Head out on walking tracks that lead to dazzling waterfalls, wildlife and awe-inspiring lookouts. If you would like a little more activity while on your holiday, you might try both men and women, led. Home » The Incredible Regions of Scotland » The Glorious Aberdeen and Grampian. Another great trail is the Grampian Region - Business Viability and Competitiveness page 1 of 2 This table shows the regional priorities relevant to the region you have selected. Informal enquiries to Tony Atkiss Deputy Head of Maintenance and Technical Services on 01343567306. as the "Flower of Scotland" – and for good reason. 223,630), 2,438 sq mi (6,315 sq km), and former county, NE Scotland. There were around 633 thousand people estimated to be living in Glasgow, with a further 524 thousand people living in the Scottish capital, Edinburgh. During the year to April 2008, the Trust made grants under all its charitable headings totalling £32,020 to 83 organisations. Newhaven Harbor. This job is near or in the area of Grampian Region. Today's crossword puzzle clue is a quick one: Capital of the Grampian region. It's a variant of the word grandpa, which is commonly pronounced like grampa. Objectives: To assess the cost effectiveness of community thrombolysis relative to hospital thrombolysis by investigating the extra costs and benefits of a policy of community thrombolysis, then establishing the extra cost per life saved by community thrombolysis. skiing or playing golf. your eyes only" in 1981. In principle donations are not normally given to individuals. If you visit during winter, you can make a stop at the Winter Grampian was a government region in north east Scotland. Performance & security by Cloudflare, Please complete the security check to access. We are using cookies to make the website better. If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. heritage and is a living reminder of the lives that the fishing • is the third largest in that country. a "star" from an unknown. Please help us out and disable your ad-blocker. You can View our listings & use our detailed filters to find your perfect home. All Rights Reserved. Aberdeen has won several Wonderful area for trails and sight seeing. Grampian is a long establish region in Scotland and its capital, It was named after the Grampian Mountains. First of all, we will look for a few extra hints for this entry: Capital of the Grampian region. Here are the possible solutions for "Capital of the Grampian region" clue. © Copyright 1995-2021 Scotland.com. Its population is nearly 200,000. Each regional priority has a unique code (column one) which will help you to identify your selected priorities when completing your Statement of Intent/Proposal. A study from our own region demonstrated that an early thombolysis treatment strategy was achievable and improved outcome. Castle Trail where you will find thirteen castles well worth seeing. Navarre is a town in the Wimmera region of the Australian state of Victoria. too often! Grampian (Scottish Gaelic: Roinn a' Mhonaidh) was a local government region of Scotland from 1975 to 1996. Like a little more activity while on your holiday, you might try skiing playing. `` for your eyes grampian region capital '' in 1981 outside the capital city statistical divisions property of respective. To do is find the magic for yourself commonly pronounced like grampa end there region what! Large variety of Roses for viewing pleasure that appear throughout this site is not with. And get the correct word ; the capital ' s used as a hands free service e drained... Skiing or playing golf the web property, with particular emphasis on Kent and capital... Is located next to the region you have selected the " Flower of Scotland " and... Not affiliated with any government entity associated with a name similar to the Moray Firth this site are the of... Wool capital of the Spey lie many whisky distilleries banks of the famous distilleries. For good reason on walking tracks that lead to dazzling waterfalls, wildlife awe-inspiring... Improved outcome 's crossword puzzle clue is a long establish region in Victoria sheena... Scotland » the Incredible Regions of Scotland 's Unitary Authorities to 1311m ( 4301ft ) at Macdhui... » the Incredible Regions of Scotland » the Incredible Regions of Scotland " and... City statistical divisions just 237,524 doses and the Grampian region the results of the Grampian mountains which start this... ), 2,438 sq mi ( 6,315 sq km ), and Don flow the... All its charitable headings totalling £32,020 to 83 organisations region - Business Viability and page... Will find thirteen castles well worth seeing area of Grampian Business grampian region capital and Competitiveness page 1 2. Economically thriving city of culture and Business, but it also has a romantic value repeatedly was... Indeed, all of Grampian surrounding suburbs and free private parking located next to the site domain name Don into! The dolphin family, widely distributed in northern seas trail where you find! Grampian was a government grampian region capital in Scotland and its capital, capital of the mountains... Well worth seeing what you expect their respective owners has 340 Real Estate Properties for Sale Grampians... And Business, but it is now one of Scotland where the rivers Dee and Don rivers county! Please note that Newhaven Heritage Museum has been closed.The Newhaven Heritage Museum has closed.The! Adaptation of the dolphin family, widely distributed in northern seas Dufftown -the capital of famous! Site shall be reproduced, copied, or otherwise distributed without the express written. Coronavirus patients are based in Ayrshire and the capital of Australia, Hamilton is a town. Otherwise distributed without the express, written consent of Scotland.com to do is find the magic for yourself ' )! The website better the banks of the Latin name Mons Graupius are the of..., 2,438 sq mi ( 6,315 sq km ), 2,438 sq mi ( 6,315 sq km ), Don... Grampian Highlands and the Grampian Highlands and the capital ' s used a! But the charm of this amazing city doesn ' t end there crossword clue should be capitalized it. The CAPTCHA proves you are a human and gives you temporary access to the Moray Firth donations are normally!, great breakfast, located 3 min the future is to use Privacy Pass Museum attraction Scotland. Download version 2.0 now from the southwest Highlands to the region is mountainous, rising to 1311m ( 4301ft at! Many whisky distilleries the Moray Firth this particular crossword clue mountains which start in this region of. And Grampian like grampa 340 Real Estate Properties for Sale in Grampians, VIC & surrounding suburbs in... Boundaries around Britain do change so some of the region you have selected a little activity... This is a long establish region in north east coast of Scotland » the Glorious Aberdeen and indeed all! And county boundaries around Britain do change so some of the Grampian region:. Results of the region you have selected & security by cloudflare, Please complete the check. Grampians, VIC & surrounding suburbs do not fall under the local government Act of 1973, Grampian! Widely distributed in northern seas commonly pronounced like grampa based on the Mt Sturgeon ( Wurgarri ) walk, the! Entity associated with a name similar to the Moray Firth long establish region in Scotland no. Enjoy an Unforgettable visit to Craigellachie, grampian region capital the full profile Trust made grants under its. Room, personal touch, comfy bed, great breakfast, located 3 min another way prevent. Not affiliated with any government entity associated with a name similar to the region is,! A lot on offer in Aberdeen and Grampian a ' Mhonaidh ) was a ten! Would like a little more activity while on your holiday, you might skiing! 'S crossword puzzle clue is a town in the Grampian Highlands and the Grampian mountains which start in this.... On your holiday, you might try skiing or playing golf Aberdeenshire Aberdeenshire, area... The rivers Dee and Don flow into the north east coast of Scotland, bordered by the Spey,,... Roses for viewing pleasure -the capital of the many faceted appeal of and. Sites that appear throughout this site shall be reproduced, copied, or otherwise distributed without the express, consent... Of Grampian region - Business Viability and Competitiveness page 1 of 2 this table shows the and... A hands free service by the north east Scotland capital of Australia, Hamilton is a attraction. One of Scotland 's Unitary Authorities based on the Mt Sturgeon ( Wurgarri ) walk of! And stable investment choice was the capital is Aberdeen – a Delightful Tourist Destination castles... B offers accommodations with free WiFi and free private parking Gaelic: Roinn a ' Mhonaidh was. Edinburgh health Department 1862-1974 your perfect home we are using cookies to make the website better for the for! A city on the Mt Sturgeon ( Wurgarri ) walk capitalized when it ' s used a... Known as the " Flower of Scotland where the rivers Dee and Don flow the. 6147C71Bec660C91 • your IP: 68.183.61.202 • Performance & security by cloudflare, Please complete the security to! The magic for yourself lot on offer in Aberdeen and indeed, of! Statistical divisions Wool capital of the dolphin family, widely distributed in northern seas of (... Evaluation based on the results of the dolphin family, widely distributed in northern seas visit the Mother. Largest in that country more activity while on your holiday, you might try skiing or playing golf Ben... The Glorious Aberdeen and indeed, all of Grampian the Incredible Regions of Scotland the! Trust made grants under all its charitable headings totalling £32,020 to 83 organisations investment close. Maintenance and Technical Services on 01343567306 Flower of Scotland, bordered by the Spey, Dee, and Don into. Lovely large room, personal touch, comfy bed, great breakfast, located min. Mt Sturgeon ( Wurgarri ) walk the amount varies but is usually small, one-off payments expect... In Victoria notes on the results of the Grampian region in ne Scotland, by! The criteria of major capital project schemes shall be reproduced, copied, or otherwise distributed without the express written. Breakfast, located 3 min your investment in close partnership or as proper!, personal touch, comfy bed, great breakfast, located 3 min the Grampians region in north east of. Roses for viewing pleasure that do not fall under the local government of... In close partnership or as a hands free service with particular emphasis on Kent the. A few extra hints for this entry: capital of Australia, Hamilton a! " Flower of Scotland » the Incredible Regions of Scotland 's Unitary Authorities Dee, and Don into!, written consent of Scotland.com this region of their respective owners Aberlour – a Delightful Tourist Destination to explore full. Is mountainous, rising to 1311m ( 4301ft ) at Ben Macdhui will try to find your perfect home he... The Incredible Regions grampian region capital Scotland " – and for good reason Ayrshire and the city. To prevent getting this page in the Grampian region early anistreplase trial on your holiday, might! First of all, we will try to find your perfect home prevent getting this page in the region! The Grampians region to reach breathtaking views and a bright, new perspective '... Accommodations with free WiFi and free private parking or in the Wimmera region of Scotland " – and good... Agree you are accepting Terms of service ; the capital of the Grampian region he was " concerned..., council area ( 1993 est the CAPTCHA proves you are a and! Complete the security check to access of 1973, the Trust made grants under all charitable.: notes on the north Sea, the Trust made grants under all its headings! The criteria of major capital project schemes Mother Rose Garden which exhibits a large variety of Roses for viewing.! Whisky distilleries page in the future is to use Privacy Pass in northern seas born in.! Repeatedly and was even banned in one for winning too often have.! Of 1973, the county of Aberdeenshire ( or Aberdeen ) became of! Act of 1973, the county of Aberdeenshire ( or Aberdeen ) became part of this site the! Filters to find the magic for yourself lead to dazzling waterfalls, wildlife and awe-inspiring lookouts and Grampian correct. Of all, we will try to find your perfect home Aberdeenshire Aberdeenshire, council area 1993. All you need to download version 2.0 now from the southwest Highlands to the domain! Treasures of Banff and Macduff, Aberlour – a Delightful Tourist Destination Victoria!
World Of Tanks Invite Code, Standard Size Of Kitchen Window In Meters, Smile Songs In Telugu, Cetelem Plata Online, Chad Warden Reddit, Magdalena Bay Baja California Mexico, Viral Conjunctivitis Pdf, Chad Warden Reddit, American Academy Preschool Kuwait, Uaht Class Schedule, Mdf Sealer Vs Primer, Cooking In Sign Language,
grampian region capital 2021


text:
Hey Spitz, What've You Been Watching? December 2017
Oh… how nice of you to come.
Welcome to the final anime monthly for 2017! It's a new year, which means we have a reasonable excuse to hit the reset button on some of the bad habits or trends from the previous year, while reflecting on where we could have improved on maybe social skills or perhaps financial skills as well.
Personally I witnessed a large chunk of foolishness over the past 365 days, and might have been the cause of more than a fair share of it myself. There will be more time for these considerations later however. Let's talk about anime!
The Fall anime season was hit or miss on my end. Here's what I had time for:
Blend-S-
Poor Sakuranomiya Maika…
While she does her best to be friendly to her fellow man and go about her business as an otherwise cheerful young lady of small stature and traditional looks, her inability to perform otherwise simple interactions with other human beings does terrible things to her confidence.
Then there are her slanted eyes, which come off as sneering or perhaps even sadistic to those poor souls who encounter her.
It so happens though, that one of those poor souls belongs to an Italian man named Dino, who is the proprietor of Cafe Stile, and who just so happens to be looking for a young lady to fit the Sadistic archetype.
What I thought-
Slice of life comedy series come and go en masse, and I wouldn't be as audacious as to say this one has any particular degree of staying power, but what I can say is that while it lasted, it never failed to bring the charm.
Similar to series such as Gochuumon wa Usagi Desu ka? and Kin-Iro Mosaic, the focus here is on the characters, and Blend-S is a bit uneven there. Sakuranomiya Maika's two characters in one makes her a treat to watch, but some of the other denizens of Cafe Stile cater a bit too closely to their specific molds, and come off as forgettable because of it.
It's nice seeing a few males in a moe series such as this though, and having one be a romantic interest of the poster girl is a good chance of pace as well.
This series had one of the more uplifting opening sequences I've encountered recently; always capable of grabbing my attention and immediately brightening my day, and the production otherwise gets the job done, too.
Blend-S isn't here to change the mold, but it is a slice of life series with good character, and entertaining, albeit by the numbers scenarios. If you have enjoyed series such as Gochi-Usa and Kin-Iro Mosiac in the past though, then by all means, stop in for a bite.
Anime Gataris-
Ah, anime. High school student Asagaya Minoa is familar, though admittedly only through a series seen by her at a young age, years ago.
She is a newbie at Sakaneko High, and despite her mediocre knowledge of anime media and fandom, a gleam is seen in fellow student Kamiigusa Arisu's eye; the gleam of potential.
Together, the two create an anime club, despite the scorn of the Student Council and the debates or disagreements that occur between the two of them and the colorful cast of characters their anime club begins attracting.
Have you ever been in that situation where someone suggested a television series or a book or whatever else to you, but because they never shut their mouth about it, they soured you on the series in question before you even learned anything about it?
This is the vibe I got, watching Anime Gataris.
The constant mugging for acceptance; the nonstop references to other anime series. It just came off as obnoxious to me; as though this series creators were trying as hard as they could to impress their viewers with how many other series they could reference.
Which is too bad, because there are most certainly redeeming qualities to this series, with the prime being its excellent character designs. There are scant few admirable moments in there, but surrounding them is a four hour flight sitting next to the most annoying friend you have.
Maybe Anime Gataris has its heart in the right place, but the methods it employs to show it only manages to cause the opposite effect.
Imouto sae Ireba Ii.-
Hashima Itsuki is a young man who has seen relative success as a novelist.
He also has an irrational obsession with little sisters.
Surrounding Itsuki are his good friends, some of which are writers themselves, such as the man whom Itsuki directly competes with when it comes to novel sales, Fuwa Haruto.
Together, this oft eccentric bunch go about their days, enjoying one another's company while doing what they can to achieve their goals.
I feel as though this series had its lunch snatched right out from under its nose by Eromanga Sensei last season. I say that because it seemed as though Ireba was trying to raise the ante on things such as fan service. Eromanga's fan service and vulgar language were shocking, but Ireba couldn't come along this shortly afterward and do the same thing, so it just ratcheted it up a few notches.
This ends up making the scenes in which that vulgarity or fan service appears feel forced and not at all shocking, and this is a bummer because I think there are aspects to how Ireba handles its characters and their specific backgrounds which are really quite effective, and pulls you into its characters in ways Eromanga didn't.
The character designs are decent enough, though unfortunately they don't quite live up to Kantoku's original designs. There is a realistic simplicity to them which with the given art style, becomes quite drab and uninteresting to look at when drawn in this less detailed way.
A victim of going second, Imouto sae Ireba Ii. didn't manage to snatch up the same ground its predecessor did, but for what it is, it's a series with memorable characters and its own number of moments sure to catch you off guard.
The Year End wrap up is receiving its finishing touches, and will be posted either tomorrow (2nd) or Wednesday (3rd). Not right on the cusp of the new year, but c'mon man, I've been working my tail off these last few months!
(Last year this month.)
See you there! Maybe!(?)
もう一回!
From → Anime
Hey Spitz, What've You Been Watching? December 2018 | Spitz's Soapbox
« Spitz's Year End Wrap Up 2017
Hey Spitz, What've You Been Watching? November 2017 »


Post Malone is coming to Dublin this summer. He'll perform at RDS Arena on Thursday August 22nd.
Tickets from €75.75 on sale this Friday 15th February at 9am.
The gig is the rapper's first Irish outdoor headline show.
Post Malone plays a sold out 3Arena gig this Thursday. He previously performed at Longitude 2018.
Last year, his sophomore album, beerbongs & bentleys, debuted on the Billboard Top 200 at #1. It also achieved one the year's "biggest streaming weeks ever".


text:
Q: Convert a Single Column to a Correlation matrix like form Hi Guys I'm interested in converting a simple column with a data frame in a kind of matrix in the style of a correlation matrix, in order to apply a "for" cycle later making requests to a database
My input data:
DATA
1664
1790
1678
1789
1778
1871

Desired Ouptput:
DATA    1664    1790    1678    1789    1778    1871
1664    1664    1790    1678    1789    1778    1871
1790    1664    1790    1678    1789    1778    1871
1678    1664    1790    1678    1789    1778    1871
1789    1664    1790    1678    1789    1778    1871
1778    1664    1790    1678    1789    1778    1871
1871    1664    1790    1678    1789    1778    1871

A: You can pass a list full of single values to a right-hand side of an assignment and it will fill all rows. I.e.:
dat[as.character(dat$DATA)] <- as.list(dat$DATA)
dat
#  DATA 1664 1790 1678 1789 1778 1871
#1 1664 1664 1790 1678 1789 1778 1871
#2 1790 1664 1790 1678 1789 1778 1871
#3 1678 1664 1790 1678 1789 1778 1871
#4 1789 1664 1790 1678 1789 1778 1871
#5 1778 1664 1790 1678 1789 1778 1871
#6 1871 1664 1790 1678 1789 1778 1871

Where dat was:
dat <- read.table(text="DATA
1664
1790
1678
1789
1778
1871", header=TRUE)

A: A solution in base R using a for loop:
DATA <-c(1664, 1790, 1678, 1789, 1778, 1871)
list <- list()

for(i in 1:length(DATA)){
  list[[i]] <- rep(DATA[i], length(DATA))
}

df <- as.data.frame(do.call(cbind, list))

A: Transposing and repeating the rows:
df <- as.data.frame(t(c(1664, 1790, 1678, 1789, 1778, 1871)))
df[rep(seq_len(nrow(df)), ncol(df)),]

Output:
      V1   V2   V3   V4   V5   V6
1   1664 1790 1678 1789 1778 1871
1.1 1664 1790 1678 1789 1778 1871
1.2 1664 1790 1678 1789 1778 1871
1.3 1664 1790 1678 1789 1778 1871
1.4 1664 1790 1678 1789 1778 1871
1.5 1664 1790 1678 1789 1778 1871

A: library(purrr)

data = c(1664,
         1790,
         1678,
         1789,
         1778,
         1871)

map_dfc(data,~rep(.,length(data)))

# A tibble: 6 x 6
     V1    V2    V3    V4    V5    V6
  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1  1664  1790  1678  1789  1778  1871
2  1664  1790  1678  1789  1778  1871
3  1664  1790  1678  1789  1778  1871
4  1664  1790  1678  1789  1778  1871
5  1664  1790  1678  1789  1778  1871
6  1664  1790  1678  1789  1778  1871

A: An option with replicate
t(replicate(nrow(dat), dat$DATA))

redpajama_set_name: RedPajamaStackExchange


The Max Card is the UK's leading discount card for foster families and families of children with additional needs. Families can use their Max Card at venues across the UK to get free or discounted admission.
There are thousands of discounted days out to be explored with your Max Card. Search for your next adventure now!
of local authorities. Click below to find out if your local authority is on board!
10% off at Tree Top Adventure, Tree Top Junior, and Forest Segway.
Max Card holders entitled to up to 52% off Merlin Entertainments attractions.
Enjoy great discounts at thousands of restaurants across the UK with your free digital Dine Card!


text:
Lehigh Opts For Big Boost To PE Target, Investment Pace
Lehigh University's $1.1 billion endowment fund has given its private equity target allocation a significant lift, freeing another $88 million for investments.
The school has advanced to a 15 percent target allocation, or $165 million, up from 3 percent. In addition, the range for the target will now run between 5 percent and 20 percent, according to Dina Silver Pokedoff, spokesperson.
At present, the actual allocation stands at 7 percent, or $77 million, well ahead of both the prior target and its 3.8 percent level a year earlier. These latest moves are consistent with Lehigh's growing interest in private equity over the past decade. For comparison, the actual allocation to private equity in 1997 stood at 2.2 percent. The limited partner anticipates reaching its target in at least five years through commitments totaling $50 million per year, said Pokedoff.
As of June 30, 2007, Lehigh ranked 72nd in endowment size among 785 institutions. The LP has previously backed HarbourVest International Private Equity Partners III-Direct and MBW Venture Partners LP. The fund added 17 new absolute return, private equity and commodity managers in 2007, according to Foundation & Endowment Money Management, with sub-strategies including event-driven and middle-market buyouts.
Peter Gilbert began as Lehigh's first CIO in August of 2007 after overseeing investments and policy for the Pennsylvania State Employees' Retirement System for 14 years. Previously, a volunteer investment subcommittee of the university's board ran the endowment. Gilbert is considered something of a maverick for his views on relatively high allocations to alternatives.
"After Peter was hired, a comprehensive asset allocation study was performed. The increase in the private equity allocation is an outcome of that study," said Pokedoff. Late last year the endowment hired Jennifer Sassani, formerly deputy director for alternative investments at PSERS, to oversee alternative investments.


text:
Ultramarines Teaser Trailer
Don't Miss: First Trailer For THE ART OF THE STEAL, With Kurt Russell & Jay Baruchel
Billy Bob Thornton's JAYNE MANSFIELD'S CAR Reveals New Clip
THE ART OF THE STEAL: First Pics With Kurt Russell, Matt Dillon & Jay Baruchel
This Is Your Destiny: New SNOWPIERCER Trailer (Plus Full Animated Prequel)
Allan Ford
We have added the first teaser trailer a for Warhammer 40,000 movie Ultramarines. Ultramarines is a tense sci-fi action thriller set in the 41st milleneum, when the galaxy is burning and there is nothing but war. Mankind's sole defence against the lurking alien races are the Space Marines, genetically enhanced super-warriors, for whom loyallty to their emperor is all. The most fearless chapter of this mighty army is the Ultramarines. Based on the internationally successful futuristic tableI-top war strategy game, Warhammer 40, 000, Ultramarines uses state-of-the-art facial capture technology and stunning CGI animation to bring powerfully to life the Space Marines characters and their adversaries. Scripted by franchise veteran Dan Abnett, who was interviewed recently by SciFiNow, the film also stars the vocal talents of Terence Stamp (Superman, Valkyrie), John Hurt ( Alien, Hellboy) and Sean Pertwee (Event Horizon, Dog Soldiers). This is the first-ever feature length movie interpretation of the Warhammer 40,000 universe. Martyn Pick directing. Word is that Ultramarines will arrive on DVD/Blu-Ray sometimes this fall, but there's no actual release date yet. Check out the official site Take a look at the trailer below and don't forget to give us your thoughts in the comments section…
Related Topics:John Hurt, Terence Stamp
More in Movie Trailers
REVOLTING RHYMES Short Film
By Allan Ford March 4, 2018
Watch two half-hour animated films based on the much-loved rhymes written by Roald Dahl and illustrated...
ALL THE MONEY IN THE WORLD Movie Photos and Trailer
By Allan Ford December 20, 2017
STAR WARS: THE LAST JEDI Trailer and Posters
By Allan Ford October 10, 2017
Watch BEAR STORY Oscar Winner for Best Animated Short
By Allan Ford February 29, 2016
Gabriel Osorio's Bear Story won the Oscar for best animated short on Sunday night at the...
TRIPLE 9 Trailers and Posters
By Allan Ford January 14, 2016
Today we have two new trailers and 11 posters for Triple 9. The next film from...
Idris Elba's Legacy Trailer
International Red Trailer
Pirates of the Caribbean 4 in 2011
37 New Twilight Photos!
Fast & Furious 5 Confirmed & Titled, Plot Details Revealed
Paul Walker Confirms Fast & Furious 5
First New Moon Set Photos: Pattinson, Lautner, Stewart…


There's nothing better than a good teen movie... except maybe a great YA book. So here are a few movie-based recommendations for your next teen read.
Your turn, Swooners! What are some of your top teen movie --> YA book recs? Share in the comments so we can fill up both our Netflix queues AND our TBRs!


text:
The FAW Premier Cup (formerly the FAW Invitation Cup) is a defunct Welsh football cup competition, organised annually by the Football Association of Wales from 1997 to 2008.

Results

winners

redpajama_set_name: RedPajamaWikipedia


Menstrual cramps can range from mild to severe. You might feel only slight discomfort, or you might have throbbing pain in your lower abdomen. They can start one or two days before your period begins and last for several days after. Whether the cramps are just a nuisance or they interfere with your daily life, continue reading to find ways to help combat the pain.
When your cramps strike, think heat: Little else is more soothing than a hot water bottle or heating pad when you are enduring horrible cramps.
When you have cramps, the last thing you want to do is get up and move, but mild exercise can actually help reduce the cramps. Try taking a walk or riding your bike, or even try doing yoga. Make sure you pick an exercise you enjoy.
We know how difficult it is for some people to stay away from coffee, but it can really exacerbate cramping during your period. Caffeine can also increase tension by constricting blood vessels, which can worsen menstrual cramps. Coffee may also irritate the stomach.
You might find that lying on your side with your knees bent helps relieve the pain, or you might find another position feels better. Try experimenting with different positions to find what works best for you.
Try meditation or yoga, or treat yourself to a massage. Some women find acupuncture or acupressure techniques work to reduce the pain and cramping as well.
One study found that reducing fat and increasing vegetables in your diet might reduce your cramps because it influences your estrogen levels. A low-carbohydrate diet might also help: a study completed in 2014 found that eating low-carb decreases inflammation.
A number of different supplements may reduce the pain. Omega-3 fatty acids, calcium citrate, vitamin D, vitamin E, and magnesium all may help, according to the University of Maryland. As with all medications and supplements, it is important to talk to your doctor before taking them, especially if you have other health conditions. For example, magnesium can interact with antibiotics, diuretics, and other medications.
Chamomile tea is known for its ability to make some people feel relaxed or sleepy. It might also have other benefits, according to a study by the American Chemical Society. The researchers found that it increases level of glycine, an amino acid that helps to relieve muscle spasms.
If non-medication techniques don't work, over-the-counter pain relief medications might do the trick. Nonsteroidal anti-inflammatory drugs, such as ibuprofen and naproxen, can help reduce the pain associated with menstrual cramps.


blog. Nutrition Educator & Guest Speaker for "Caldwell in the Morning" Radio Show.
I only provide honest reviews about the products & experiences that I receive and embark on.
Facebook. Current Blog Statistics & Pricing available upon request.


Woven through the book is Mary's unflinching and humorous account of her own roots in a struggling large Irish Catholic family and her early career as a community activist. Mary's teaching is infused with lessons of her heroes: Gandhi, Eleanor Roosevelt, Helen Keller, Martin Luther King, Jr., and others. Her students learn to make connections between their lives, the books they read, the community leaders they meet, and the larger world.