text:
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.facebook.presto.sql.planner;

import com.facebook.presto.cost.CostCalculator;
import com.facebook.presto.cost.CostCalculator.EstimatedExchanges;
import com.facebook.presto.cost.CostComparator;
import com.facebook.presto.cost.StatsCalculator;
import com.facebook.presto.cost.TaskCountEstimator;
import com.facebook.presto.metadata.Metadata;
import com.facebook.presto.split.PageSourceManager;
import com.facebook.presto.split.SplitManager;
import com.facebook.presto.sql.parser.SqlParser;
import com.facebook.presto.sql.planner.iterative.IterativeOptimizer;
import com.facebook.presto.sql.planner.iterative.Rule;
import com.facebook.presto.sql.planner.iterative.properties.LogicalPropertiesProviderImpl;
import com.facebook.presto.sql.planner.iterative.rule.AddIntermediateAggregations;
import com.facebook.presto.sql.planner.iterative.rule.CanonicalizeExpressions;
import com.facebook.presto.sql.planner.iterative.rule.CombineApproxPercentileFunctions;
import com.facebook.presto.sql.planner.iterative.rule.CreatePartialTopN;
import com.facebook.presto.sql.planner.iterative.rule.DesugarAtTimeZone;
import com.facebook.presto.sql.planner.iterative.rule.DesugarCurrentUser;
import com.facebook.presto.sql.planner.iterative.rule.DesugarLambdaExpression;
import com.facebook.presto.sql.planner.iterative.rule.DesugarRowSubscript;
import com.facebook.presto.sql.planner.iterative.rule.DesugarTryExpression;
import com.facebook.presto.sql.planner.iterative.rule.DetermineJoinDistributionType;
import com.facebook.presto.sql.planner.iterative.rule.DetermineSemiJoinDistributionType;
import com.facebook.presto.sql.planner.iterative.rule.EliminateCrossJoins;
import com.facebook.presto.sql.planner.iterative.rule.EliminateEmptyJoins;
import com.facebook.presto.sql.planner.iterative.rule.EvaluateZeroLimit;
import com.facebook.presto.sql.planner.iterative.rule.EvaluateZeroSample;
import com.facebook.presto.sql.planner.iterative.rule.ExtractSpatialJoins;
import com.facebook.presto.sql.planner.iterative.rule.GatherAndMergeWindows;
import com.facebook.presto.sql.planner.iterative.rule.ImplementBernoulliSampleAsFilter;
import com.facebook.presto.sql.planner.iterative.rule.ImplementFilteredAggregations;
import com.facebook.presto.sql.planner.iterative.rule.ImplementOffset;
import com.facebook.presto.sql.planner.iterative.rule.InlineProjections;
import com.facebook.presto.sql.planner.iterative.rule.InlineSqlFunctions;
import com.facebook.presto.sql.planner.iterative.rule.MergeFilters;
import com.facebook.presto.sql.planner.iterative.rule.MergeLimitWithDistinct;
import com.facebook.presto.sql.planner.iterative.rule.MergeLimitWithSort;
import com.facebook.presto.sql.planner.iterative.rule.MergeLimitWithTopN;
import com.facebook.presto.sql.planner.iterative.rule.MergeLimits;
import com.facebook.presto.sql.planner.iterative.rule.MultipleDistinctAggregationToMarkDistinct;
import com.facebook.presto.sql.planner.iterative.rule.PickTableLayout;
import com.facebook.presto.sql.planner.iterative.rule.PlanRemoteProjections;
import com.facebook.presto.sql.planner.iterative.rule.PruneAggregationColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneAggregationSourceColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneCountAggregationOverScalar;
import com.facebook.presto.sql.planner.iterative.rule.PruneCrossJoinColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneFilterColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneIndexSourceColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneJoinChildrenColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneJoinColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneLimitColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneMarkDistinctColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneOrderByInAggregation;
import com.facebook.presto.sql.planner.iterative.rule.PruneOutputColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneProjectColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneRedundantProjectionAssignments;
import com.facebook.presto.sql.planner.iterative.rule.PruneSemiJoinColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneSemiJoinFilteringSourceColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneTableScanColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneTopNColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneValuesColumns;
import com.facebook.presto.sql.planner.iterative.rule.PruneWindowColumns;
import com.facebook.presto.sql.planner.iterative.rule.PullConstantsAboveGroupBy;
import com.facebook.presto.sql.planner.iterative.rule.PushAggregationThroughOuterJoin;
import com.facebook.presto.sql.planner.iterative.rule.PushDownDereferences;
import com.facebook.presto.sql.planner.iterative.rule.PushLimitThroughMarkDistinct;
import com.facebook.presto.sql.planner.iterative.rule.PushLimitThroughOffset;
import com.facebook.presto.sql.planner.iterative.rule.PushLimitThroughOuterJoin;
import com.facebook.presto.sql.planner.iterative.rule.PushLimitThroughProject;
import com.facebook.presto.sql.planner.iterative.rule.PushLimitThroughSemiJoin;
import com.facebook.presto.sql.planner.iterative.rule.PushLimitThroughUnion;
import com.facebook.presto.sql.planner.iterative.rule.PushOffsetThroughProject;
import com.facebook.presto.sql.planner.iterative.rule.PushPartialAggregationThroughExchange;
import com.facebook.presto.sql.planner.iterative.rule.PushPartialAggregationThroughJoin;
import com.facebook.presto.sql.planner.iterative.rule.PushProjectionThroughExchange;
import com.facebook.presto.sql.planner.iterative.rule.PushProjectionThroughUnion;
import com.facebook.presto.sql.planner.iterative.rule.PushRemoteExchangeThroughAssignUniqueId;
import com.facebook.presto.sql.planner.iterative.rule.PushRemoteExchangeThroughGroupId;
import com.facebook.presto.sql.planner.iterative.rule.PushTableWriteThroughUnion;
import com.facebook.presto.sql.planner.iterative.rule.PushTopNThroughUnion;
import com.facebook.presto.sql.planner.iterative.rule.RemoveEmptyDelete;
import com.facebook.presto.sql.planner.iterative.rule.RemoveFullSample;
import com.facebook.presto.sql.planner.iterative.rule.RemoveRedundantAggregateDistinct;
import com.facebook.presto.sql.planner.iterative.rule.RemoveRedundantDistinct;
import com.facebook.presto.sql.planner.iterative.rule.RemoveRedundantDistinctLimit;
import com.facebook.presto.sql.planner.iterative.rule.RemoveRedundantIdentityProjections;
import com.facebook.presto.sql.planner.iterative.rule.RemoveRedundantLimit;
import com.facebook.presto.sql.planner.iterative.rule.RemoveRedundantSort;
import com.facebook.presto.sql.planner.iterative.rule.RemoveRedundantTopN;
import com.facebook.presto.sql.planner.iterative.rule.RemoveTrivialFilters;
import com.facebook.presto.sql.planner.iterative.rule.RemoveUnreferencedScalarApplyNodes;
import com.facebook.presto.sql.planner.iterative.rule.RemoveUnreferencedScalarLateralNodes;
import com.facebook.presto.sql.planner.iterative.rule.RemoveUnsupportedDynamicFilters;
import com.facebook.presto.sql.planner.iterative.rule.ReorderJoins;
import com.facebook.presto.sql.planner.iterative.rule.RewriteAggregationIfToFilter;
import com.facebook.presto.sql.planner.iterative.rule.RewriteCaseExpressionPredicate;
import com.facebook.presto.sql.planner.iterative.rule.RewriteFilterWithExternalFunctionToProject;
import com.facebook.presto.sql.planner.iterative.rule.RewriteSpatialPartitioningAggregation;
import com.facebook.presto.sql.planner.iterative.rule.RuntimeReorderJoinSides;
import com.facebook.presto.sql.planner.iterative.rule.SimplifyCardinalityMap;
import com.facebook.presto.sql.planner.iterative.rule.SimplifyCountOverConstant;
import com.facebook.presto.sql.planner.iterative.rule.SimplifyExpressions;
import com.facebook.presto.sql.planner.iterative.rule.SimplifyRowExpressions;
import com.facebook.presto.sql.planner.iterative.rule.SingleDistinctAggregationToGroupBy;
import com.facebook.presto.sql.planner.iterative.rule.TransformCorrelatedInPredicateToJoin;
import com.facebook.presto.sql.planner.iterative.rule.TransformCorrelatedLateralJoinToJoin;
import com.facebook.presto.sql.planner.iterative.rule.TransformCorrelatedScalarAggregationToJoin;
import com.facebook.presto.sql.planner.iterative.rule.TransformCorrelatedScalarSubquery;
import com.facebook.presto.sql.planner.iterative.rule.TransformCorrelatedSingleRowSubqueryToProject;
import com.facebook.presto.sql.planner.iterative.rule.TransformDistinctInnerJoinToLeftEarlyOutJoin;
import com.facebook.presto.sql.planner.iterative.rule.TransformDistinctInnerJoinToRightEarlyOutJoin;
import com.facebook.presto.sql.planner.iterative.rule.TransformExistsApplyToLateralNode;
import com.facebook.presto.sql.planner.iterative.rule.TransformUncorrelatedInPredicateSubqueryToDistinctInnerJoin;
import com.facebook.presto.sql.planner.iterative.rule.TransformUncorrelatedInPredicateSubqueryToSemiJoin;
import com.facebook.presto.sql.planner.iterative.rule.TransformUncorrelatedLateralToJoin;
import com.facebook.presto.sql.planner.iterative.rule.TranslateExpressions;
import com.facebook.presto.sql.planner.optimizations.AddExchanges;
import com.facebook.presto.sql.planner.optimizations.AddLocalExchanges;
import com.facebook.presto.sql.planner.optimizations.ApplyConnectorOptimization;
import com.facebook.presto.sql.planner.optimizations.CheckSubqueryNodesAreRewritten;
import com.facebook.presto.sql.planner.optimizations.HashBasedPartialDistinctLimit;
import com.facebook.presto.sql.planner.optimizations.HashGenerationOptimizer;
import com.facebook.presto.sql.planner.optimizations.HistoricalStatisticsEquivalentPlanMarkingOptimizer;
import com.facebook.presto.sql.planner.optimizations.ImplementIntersectAndExceptAsUnion;
import com.facebook.presto.sql.planner.optimizations.IndexJoinOptimizer;
import com.facebook.presto.sql.planner.optimizations.KeyBasedSampler;
import com.facebook.presto.sql.planner.optimizations.LimitPushDown;
import com.facebook.presto.sql.planner.optimizations.MergeJoinOptimizer;
import com.facebook.presto.sql.planner.optimizations.MetadataDeleteOptimizer;
import com.facebook.presto.sql.planner.optimizations.MetadataQueryOptimizer;
import com.facebook.presto.sql.planner.optimizations.OptimizeMixedDistinctAggregations;
import com.facebook.presto.sql.planner.optimizations.PlanOptimizer;
import com.facebook.presto.sql.planner.optimizations.PredicatePushDown;
import com.facebook.presto.sql.planner.optimizations.PruneUnreferencedOutputs;
import com.facebook.presto.sql.planner.optimizations.PushdownSubfields;
import com.facebook.presto.sql.planner.optimizations.RandomizeNullKeyInOuterJoin;
import com.facebook.presto.sql.planner.optimizations.RemoveRedundantDistinctAggregation;
import com.facebook.presto.sql.planner.optimizations.ReplicateSemiJoinInDelete;
import com.facebook.presto.sql.planner.optimizations.RewriteIfOverAggregation;
import com.facebook.presto.sql.planner.optimizations.SetFlatteningOptimizer;
import com.facebook.presto.sql.planner.optimizations.StatsRecordingPlanOptimizer;
import com.facebook.presto.sql.planner.optimizations.TransformQuantifiedComparisonApplyToLateralJoin;
import com.facebook.presto.sql.planner.optimizations.UnaliasSymbolReferences;
import com.facebook.presto.sql.planner.optimizations.WindowFilterPushDown;
import com.facebook.presto.sql.relational.FunctionResolution;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.weakref.jmx.MBeanExporter;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.inject.Inject;

import java.util.List;
import java.util.Optional;
import java.util.Set;

import static com.facebook.presto.sql.planner.ConnectorPlanOptimizerManager.PlanPhase.LOGICAL;
import static com.facebook.presto.sql.planner.ConnectorPlanOptimizerManager.PlanPhase.PHYSICAL;

public class PlanOptimizers
{
    private final List<PlanOptimizer> planningTimeOptimizers;
    private final List<PlanOptimizer> runtimeOptimizers;
    private final RuleStatsRecorder ruleStats = new RuleStatsRecorder();
    private final OptimizerStatsRecorder optimizerStats = new OptimizerStatsRecorder();
    private final MBeanExporter exporter;

    @Inject
    public PlanOptimizers(
            Metadata metadata,
            SqlParser sqlParser,
            MBeanExporter exporter,
            SplitManager splitManager,
            ConnectorPlanOptimizerManager planOptimizerManager,
            PageSourceManager pageSourceManager,
            StatsCalculator statsCalculator,
            CostCalculator costCalculator,
            @EstimatedExchanges CostCalculator estimatedExchangesCostCalculator,
            CostComparator costComparator,
            TaskCountEstimator taskCountEstimator,
            PartitioningProviderManager partitioningProviderManager)
    {
        this(metadata,
                sqlParser,
                false,
                exporter,
                splitManager,
                planOptimizerManager,
                pageSourceManager,
                statsCalculator,
                costCalculator,
                estimatedExchangesCostCalculator,
                costComparator,
                taskCountEstimator,
                partitioningProviderManager);
    }

    @PostConstruct
    public void initialize()
    {
        ruleStats.export(exporter);
        optimizerStats.export(exporter);
    }

    @PreDestroy
    public void destroy()
    {
        ruleStats.unexport(exporter);
        optimizerStats.unexport(exporter);
    }

    public PlanOptimizers(
            Metadata metadata,
            SqlParser sqlParser,
            boolean forceSingleNode,
            MBeanExporter exporter,
            SplitManager splitManager,
            ConnectorPlanOptimizerManager planOptimizerManager,
            PageSourceManager pageSourceManager,
            StatsCalculator statsCalculator,
            CostCalculator costCalculator,
            CostCalculator estimatedExchangesCostCalculator,
            CostComparator costComparator,
            TaskCountEstimator taskCountEstimator,
            PartitioningProviderManager partitioningProviderManager)
    {
        this.exporter = exporter;
        ImmutableList.Builder<PlanOptimizer> builder = ImmutableList.builder();

        Set<Rule<?>> predicatePushDownRules = ImmutableSet.of(
                new MergeFilters());

        // TODO: Once we've migrated handling all the plan node types, replace uses of PruneUnreferencedOutputs with an IterativeOptimizer containing these rules.
        Set<Rule<?>> columnPruningRules = ImmutableSet.of(
                new PruneAggregationColumns(),
                new PruneAggregationSourceColumns(),
                new PruneCrossJoinColumns(),
                new PruneFilterColumns(),
                new PruneIndexSourceColumns(),
                new PruneJoinChildrenColumns(),
                new PruneJoinColumns(),
                new PruneMarkDistinctColumns(),
                new PruneOutputColumns(),
                new PruneProjectColumns(),
                new PruneSemiJoinColumns(),
                new PruneSemiJoinFilteringSourceColumns(),
                new PruneTopNColumns(),
                new PruneValuesColumns(),
                new PruneWindowColumns(),
                new PruneLimitColumns(),
                new PruneTableScanColumns());

        IterativeOptimizer inlineProjections = new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                ImmutableSet.of(
                        new InlineProjections(metadata.getFunctionAndTypeManager()),
                        new RemoveRedundantIdentityProjections()));

        IterativeOptimizer projectionPushDown = new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                ImmutableSet.of(
                        new PushProjectionThroughUnion(),
                        new PushProjectionThroughExchange()));

        IterativeOptimizer simplifyOptimizer = new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                new SimplifyExpressions(metadata, sqlParser).rules());

        IterativeOptimizer simplifyRowExpressionOptimizer = new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                ImmutableSet.<Rule<?>>builder()
                        .addAll(new SimplifyRowExpressions(metadata).rules())
                        .add(new PruneRedundantProjectionAssignments())
                        .build());

        IterativeOptimizer caseExpressionPredicateRewriter = new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                new RewriteCaseExpressionPredicate(metadata.getFunctionAndTypeManager()).rules());

        PlanOptimizer predicatePushDown = new StatsRecordingPlanOptimizer(optimizerStats, new PredicatePushDown(metadata, sqlParser));

        builder.add(
                // Clean up all the sugar in expressions, e.g. AtTimeZone, must be run before all the other optimizers
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.<Rule<?>>builder()
                                .addAll(new InlineSqlFunctions(metadata, sqlParser).rules())
                                .addAll(new DesugarLambdaExpression().rules())
                                .addAll(new DesugarAtTimeZone(metadata, sqlParser).rules())
                                .addAll(new DesugarCurrentUser().rules())
                                .addAll(new DesugarTryExpression().rules())
                                .addAll(new SimplifyCardinalityMap().rules())
                                .addAll(new DesugarRowSubscript(metadata, sqlParser).rules())
                                .build()),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        new CanonicalizeExpressions().rules()),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new EvaluateZeroLimit())),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.<Rule<?>>builder()
                                .addAll(predicatePushDownRules)
                                .addAll(columnPruningRules)
                                .addAll(ImmutableSet.of(
                                        new RemoveRedundantIdentityProjections(),
                                        new RemoveFullSample(),
                                        new EvaluateZeroSample(),
                                        new PushOffsetThroughProject(),
                                        new PushLimitThroughOffset(),
                                        new PushLimitThroughProject(),
                                        new MergeLimits(),
                                        new MergeLimitWithSort(),
                                        new MergeLimitWithTopN(),
                                        new PushLimitThroughMarkDistinct(),
                                        new PushLimitThroughOuterJoin(),
                                        new PushLimitThroughSemiJoin(),
                                        new PushLimitThroughUnion(),
                                        new RemoveTrivialFilters(),
                                        new ImplementFilteredAggregations(),
                                        new SingleDistinctAggregationToGroupBy(),
                                        new MultipleDistinctAggregationToMarkDistinct(),
                                        new ImplementBernoulliSampleAsFilter(),
                                        new MergeLimitWithDistinct(),
                                        new PruneCountAggregationOverScalar(metadata.getFunctionAndTypeManager()),
                                        new PruneOrderByInAggregation(metadata.getFunctionAndTypeManager()),
                                        new RewriteSpatialPartitioningAggregation(metadata)))
                                .build()),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(
                                new ImplementBernoulliSampleAsFilter(),
                                new ImplementOffset())),
                simplifyOptimizer,
                new UnaliasSymbolReferences(metadata.getFunctionAndTypeManager()),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new RemoveRedundantIdentityProjections())),
                new SetFlatteningOptimizer(),
                new ImplementIntersectAndExceptAsUnion(metadata.getFunctionAndTypeManager()),
                new LimitPushDown(), // Run the LimitPushDown after flattening set operators to make it easier to do the set flattening
                new PruneUnreferencedOutputs(),
                inlineProjections,
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        columnPruningRules),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new TransformExistsApplyToLateralNode(metadata.getFunctionAndTypeManager()))),
                new TransformQuantifiedComparisonApplyToLateralJoin(metadata.getFunctionAndTypeManager()),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(
                                new RemoveUnreferencedScalarLateralNodes(),
                                new TransformUncorrelatedLateralToJoin(),
                                new TransformUncorrelatedInPredicateSubqueryToDistinctInnerJoin(),
                                new TransformUncorrelatedInPredicateSubqueryToSemiJoin(),
                                new TransformCorrelatedScalarAggregationToJoin(metadata.getFunctionAndTypeManager()),
                                new TransformCorrelatedLateralJoinToJoin())),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(
                                new RemoveUnreferencedScalarApplyNodes(),
                                new TransformCorrelatedInPredicateToJoin(metadata.getFunctionAndTypeManager()), // must be run after PruneUnreferencedOutputs
                                new TransformCorrelatedScalarSubquery(), // must be run after TransformCorrelatedScalarAggregationToJoin
                                new TransformCorrelatedLateralJoinToJoin(),
                                new ImplementFilteredAggregations())),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(
                                new InlineProjections(metadata.getFunctionAndTypeManager()),
                                new RemoveRedundantIdentityProjections(),
                                new TransformCorrelatedSingleRowSubqueryToProject())),
                new CheckSubqueryNodesAreRewritten(),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new PullConstantsAboveGroupBy())));

        // TODO: move this before optimization if possible!!
        // Replace all expressions with row expressions
        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                costCalculator,
                new TranslateExpressions(metadata, sqlParser).rules()));
        // After this point, all planNodes should not contain OriginalExpression

        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                ImmutableSet.of(new CombineApproxPercentileFunctions(metadata.getFunctionAndTypeManager()))));

        // In RewriteIfOverAggregation, we can only optimize when the aggregation output is used in only one IF expression, and not used in any other expressions (excluding
        // identity assignments). Hence we need to simplify projection assignments to combine/inline expressions in assignments so as to identify the candidate IF expressions.
        builder.add(
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(
                                new PruneRedundantProjectionAssignments(),
                                new InlineProjections(metadata.getFunctionAndTypeManager()),
                                new RemoveRedundantIdentityProjections())),
                new RewriteIfOverAggregation(metadata.getFunctionAndTypeManager()));

        builder.add(
                caseExpressionPredicateRewriter,
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new RewriteAggregationIfToFilter(metadata.getFunctionAndTypeManager()))),
                predicatePushDown,
                new KeyBasedSampler(metadata, sqlParser),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        new PickTableLayout(metadata).rules()),
                new PruneUnreferencedOutputs(),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        Optional.of(new LogicalPropertiesProviderImpl(new FunctionResolution(metadata.getFunctionAndTypeManager()))),
                        ImmutableSet.of(
                                new RemoveRedundantDistinct(),
                                new RemoveRedundantTopN(),
                                new RemoveRedundantSort(),
                                new RemoveRedundantLimit(),
                                new RemoveRedundantDistinctLimit(),
                                new RemoveRedundantAggregateDistinct(),
                                new RemoveRedundantIdentityProjections(),
                                new PushAggregationThroughOuterJoin(metadata.getFunctionAndTypeManager()))),
                inlineProjections,
                simplifyRowExpressionOptimizer, // Re-run the SimplifyExpressions to simplify any recomposed expressions from other optimizations
                projectionPushDown,
                new UnaliasSymbolReferences(metadata.getFunctionAndTypeManager()), // Run again because predicate pushdown and projection pushdown might add more projections
                new PruneUnreferencedOutputs(), // Make sure to run this before index join. Filtered projections may not have all the columns.
                new IndexJoinOptimizer(metadata), // Run this after projections and filters have been fully simplified and pushed down
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new SimplifyCountOverConstant(metadata.getFunctionAndTypeManager()))),
                new LimitPushDown(), // Run LimitPushDown before WindowFilterPushDown
                new WindowFilterPushDown(metadata), // This must run after PredicatePushDown and LimitPushDown so that it squashes any successive filter nodes and limits
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.<Rule<?>>builder()
                                // add UnaliasSymbolReferences when it's ported
                                .add(new RemoveRedundantIdentityProjections())
                                .addAll(GatherAndMergeWindows.rules())
                                .build()),
                inlineProjections,
                new PruneUnreferencedOutputs(), // Make sure to run this at the end to help clean the plan for logging/execution and not remove info that other optimizers might need at an earlier point
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new RemoveRedundantIdentityProjections())));

        builder.add(
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new EliminateCrossJoins())),
                predicatePushDown,
                simplifyRowExpressionOptimizer); // Should always run simplifyOptimizer after predicatePushDown

        builder.add(new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.<Rule<?>>builder()
                                .addAll(new PushDownDereferences(metadata).rules())
                                .build()),
                new PruneUnreferencedOutputs());

        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                new PickTableLayout(metadata).rules()));

        // PlanRemoteProjections only handles RowExpression so this need to run after TranslateExpressions
        // Rules applied after this need to handle locality of ProjectNode properly.
        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                costCalculator,
                ImmutableSet.of(
                        new RewriteFilterWithExternalFunctionToProject(metadata.getFunctionAndTypeManager()),
                        new PlanRemoteProjections(metadata.getFunctionAndTypeManager()))));

        // Pass a supplier so that we pickup connector optimizers that are installed later
        builder.add(
                new ApplyConnectorOptimization(() -> planOptimizerManager.getOptimizers(LOGICAL)),
                projectionPushDown,
                new PruneUnreferencedOutputs());

        builder.add(new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new RemoveRedundantIdentityProjections(), new PruneRedundantProjectionAssignments())),
                new PushdownSubfields(metadata));

        builder.add(predicatePushDown); // Run predicate push down one more time in case we can leverage new information from layouts' effective predicate
        builder.add(simplifyRowExpressionOptimizer); // Should be always run after PredicatePushDown

        builder.add(new MetadataQueryOptimizer(metadata));

        // This can pull up Filter and Project nodes from between Joins, so we need to push them down again
        builder.add(
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        estimatedExchangesCostCalculator,
                        ImmutableSet.of(new EliminateCrossJoins())),
                predicatePushDown,
                simplifyRowExpressionOptimizer); // Should always run simplifyOptimizer after predicatePushDown

        builder.add(new OptimizeMixedDistinctAggregations(metadata));
        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                ImmutableSet.of(
                        new CreatePartialTopN(),
                        new PushTopNThroughUnion())));

        // We do a single pass, and assign `statsEquivalentPlanNode` to each node.
        // After this step, nodes with same `statsEquivalentPlanNode` will share same history based statistics.
        builder.add(new StatsRecordingPlanOptimizer(optimizerStats, new HistoricalStatisticsEquivalentPlanMarkingOptimizer(statsCalculator)));

        builder.add(new IterativeOptimizer(
                // Because ReorderJoins runs only once,
                // PredicatePushDown, PruneUnreferencedOutputs and RemoveRedundantIdentityProjections
                // need to run beforehand in order to produce an optimal join order
                // It also needs to run after EliminateCrossJoins so that its chosen order doesn't get undone.
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                ImmutableSet.of(new ReorderJoins(costComparator, metadata))));

        // After ReorderJoins, `statsEquivalentPlanNode` will be unassigned to intermediate join nodes.
        // We run it again to mark this for intermediate join nodes.
        builder.add(new StatsRecordingPlanOptimizer(optimizerStats, new HistoricalStatisticsEquivalentPlanMarkingOptimizer(statsCalculator)));

        // Run this set of join transformations after ReorderJoins, but before DetermineJoinDistributionType
        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                estimatedExchangesCostCalculator,
                Optional.of(new LogicalPropertiesProviderImpl(new FunctionResolution(metadata.getFunctionAndTypeManager()))),
                ImmutableSet.of(
                        new TransformDistinctInnerJoinToLeftEarlyOutJoin(),
                        new TransformDistinctInnerJoinToRightEarlyOutJoin(),
                        new RemoveRedundantDistinct(),
                        new RemoveRedundantTopN(),
                        new RemoveRedundantSort(),
                        new RemoveRedundantLimit(),
                        new RemoveRedundantDistinctLimit(),
                        new RemoveRedundantAggregateDistinct(),
                        new RemoveRedundantIdentityProjections(),
                        new PushAggregationThroughOuterJoin(metadata.getFunctionAndTypeManager()))));

        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                costCalculator,
                ImmutableSet.<Rule<?>>builder()
                        .add(new RemoveRedundantIdentityProjections())
                        .addAll(new ExtractSpatialJoins(metadata, splitManager, pageSourceManager).rules())
                        .add(new InlineProjections(metadata.getFunctionAndTypeManager()))
                        .build()));

        builder.add(new RemoveRedundantDistinctAggregation());

        if (!forceSingleNode) {
            builder.add(new ReplicateSemiJoinInDelete()); // Must run before AddExchanges
            builder.add(new IterativeOptimizer(
                    ruleStats,
                    statsCalculator,
                    estimatedExchangesCostCalculator,
                    ImmutableSet.of(
                            new DetermineJoinDistributionType(costComparator, taskCountEstimator), // Must run before AddExchanges
                            // Must run before AddExchanges and after ReplicateSemiJoinInDelete
                            // to avoid temporarily having an invalid plan
                            new DetermineSemiJoinDistributionType(costComparator, taskCountEstimator))));
            builder.add(new RandomizeNullKeyInOuterJoin(metadata.getFunctionAndTypeManager()),
                    new PruneUnreferencedOutputs(),
                    new IterativeOptimizer(
                            ruleStats,
                            statsCalculator,
                            estimatedExchangesCostCalculator,
                            ImmutableSet.of(
                                    new PruneRedundantProjectionAssignments(),
                                    new InlineProjections(metadata.getFunctionAndTypeManager()),
                                    new RemoveRedundantIdentityProjections())));
            builder.add(
                    new IterativeOptimizer(
                            ruleStats,
                            statsCalculator,
                            estimatedExchangesCostCalculator,
                            ImmutableSet.of(new PushTableWriteThroughUnion()))); // Must run before AddExchanges
            builder.add(new StatsRecordingPlanOptimizer(optimizerStats, new AddExchanges(metadata, sqlParser, partitioningProviderManager)));
        }

        //noinspection UnusedAssignment
        estimatedExchangesCostCalculator = null; // Prevent accidental use after AddExchanges

        builder.add(
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        costCalculator,
                        // Run RemoveEmptyDelete and EliminateEmptyJoins after table scan is removed by PickTableLayout/AddExchanges
                        ImmutableSet.of(new RemoveEmptyDelete(), new EliminateEmptyJoins())));
        builder.add(predicatePushDown); // Run predicate push down one more time in case we can leverage new information from layouts' effective predicate
        builder.add(new RemoveUnsupportedDynamicFilters(metadata.getFunctionAndTypeManager()));
        builder.add(simplifyRowExpressionOptimizer); // Should be always run after PredicatePushDown
        builder.add(projectionPushDown);
        builder.add(inlineProjections);
        builder.add(new UnaliasSymbolReferences(metadata.getFunctionAndTypeManager())); // Run unalias after merging projections to simplify projections more efficiently
        builder.add(new PruneUnreferencedOutputs());
        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                costCalculator,
                ImmutableSet.<Rule<?>>builder()
                        .add(new RemoveRedundantIdentityProjections())
                        .add(new PushRemoteExchangeThroughAssignUniqueId())
                        .add(new PushRemoteExchangeThroughGroupId(metadata))
                        .add(new InlineProjections(metadata.getFunctionAndTypeManager()))
                        .build()));

        // MergeJoinOptimizer can avoid the local exchange for a join operation
        // Should be placed after AddExchanges, but before AddLocalExchange
        // To replace the JoinNode to MergeJoin ahead of AddLocalExchange to avoid adding extra local exchange
        builder.add(new MergeJoinOptimizer(metadata, sqlParser));

        // Optimizers above this don't understand local exchanges, so be careful moving this.
        builder.add(new AddLocalExchanges(metadata, sqlParser));

        // Optimizers above this do not need to care about aggregations with the type other than SINGLE
        // This optimizer must be run after all exchange-related optimizers
        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                costCalculator,
                ImmutableSet.of(
                        new PushPartialAggregationThroughJoin(),
                        new PushPartialAggregationThroughExchange(metadata.getFunctionAndTypeManager()),
                        new PruneJoinColumns())));

        builder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                costCalculator,
                ImmutableSet.of(
                        new AddIntermediateAggregations(),
                        new RemoveRedundantIdentityProjections())));

        builder.add(
                new ApplyConnectorOptimization(() -> planOptimizerManager.getOptimizers(PHYSICAL)),
                new IterativeOptimizer(
                        ruleStats,
                        statsCalculator,
                        costCalculator,
                        ImmutableSet.of(new RemoveRedundantIdentityProjections(), new PruneRedundantProjectionAssignments())));

        // DO NOT add optimizers that change the plan shape (computations) after this point

        // Precomputed hashes - this assumes that partitioning will not change
        builder.add(new HashGenerationOptimizer(metadata.getFunctionAndTypeManager()));

        // Add some opportunistic optimizations for queries with limit to utilize precomputed hash from the previous step
        builder.add(new HashBasedPartialDistinctLimit(metadata.getFunctionAndTypeManager()));

        builder.add(new MetadataDeleteOptimizer(metadata));

        // TODO: consider adding a formal final plan sanitization optimizer that prepares the plan for transmission/execution/logging
        // TODO: figure out how to improve the set flattening optimizer so that it can run at any point
        this.planningTimeOptimizers = builder.build();

        // Add runtime cost-based optimizers
        ImmutableList.Builder<PlanOptimizer> runtimeBuilder = ImmutableList.builder();
        runtimeBuilder.add(new IterativeOptimizer(
                ruleStats,
                statsCalculator,
                costCalculator,
                ImmutableList.of(),
                ImmutableSet.of(new RuntimeReorderJoinSides(metadata, sqlParser))));
        this.runtimeOptimizers = runtimeBuilder.build();
    }

    public List<PlanOptimizer> getPlanningTimeOptimizers()
    {
        return planningTimeOptimizers;
    }

    public List<PlanOptimizer> getRuntimeOptimizers()
    {
        return runtimeOptimizers;
    }
}

redpajama_set_name: RedPajamaGithub


text:
Now At: National
By Ziauddin Khandoker On Wednesday, January 15th, 2020
currentnews "Today is the best day for Bangladesh. On this day, we achieved victory. But after 1975, Bangladesh went far behind from development and, from 1996, we were starting slowly to move back to the More...
currentnews A fire that broke out at the venue of Dhaka International Trade Fair (DITF) at Sher-e-Banglanagar in the city on Thursday evening has been brought under control–reports UNB. Lima Khanom, duty office More...
currentnews The sixth Population and Housing Census (PHC) will be conducted across the country from January 2 to 8 in 2021 to find out demographic and socio-economic facts to be used for the next course of the More...
currentnews The people of Bangladesh will create another milestone by gathering together and launching the countdown to start the 'Mujib Year' at Tejgaon Airport on Friday as January 10 marks the triumphant More...
currentnews No open air cultural programme will be allowed on the 31st December to maintain the law-and-order situation in the city, said Commissioner of the Dhaka Metropolitan Police (DMP) Mohammad Shafiqul Islam–reports More...
currentnews President Abdul Hamid on Sunday called for modernising Bangladesh's higher education system and making it time-befitting–reports UNB. The President said this while a delegation of University Grants More...
Dhaka, Beijing discuss ways for early repatriation of Rohingyas
currentnews Bangladesh and China on Thursday discussed ways for the "early repatriation" of Rohingyas, currently taking shelter in Cox's Bazar district, to their place of origin in Rakhine State of Myanmar More...

redpajama_set_name: RedPajamaCommonCrawl


I have utilised the services of Open Sauce Systems for the past 2 years for PC problem solving and off site back ups. The response to problems is always very fast, resolved quickly and can usually be done remotely which saves me time. The off site data back ups happen seamlessly and without interrupting anything we have scheduled. Great service all round, I would not hesitate to recommend Sue and Mike at Open Sauce Systems.


text:
The Art of Battling
Watch It! See Lilou and Hong 10 in the final battle of the Red Bull BC One 2005 here.
In battling, charm and humor may be enough to win the crowd—and the title. Such was the case in Red Bull's BC One 2005 competition, when Lilou of the Pokemon crew (France) confronted Hong 10 of Project Soul (Korea). Hong 10 displayed impossible feats of dexterity, proving throughout the preliminary rounds that his style of b-boying was unlike any the world had seen. Although Lilou demonstrated contortionist flexibility, danced at a much quicker pace and literally ran circles around his opponents, mocking them to the crowd's delight, he seemed no match for Hong 10. In the final round, however, Lilou managed to defeat Hong 10 through sheer bravado. When Hong 10 refused to look Lilou in the eye, Lilou flapped his arms like a chicken. The trick worked—the crowd laughed and Lilou captured the title. Still, the dancer with the most impressive skills ultimately wins. In 2006, Hong 10 came back to win the Red Bull BC One, while Lilou was eliminated in the first round.
Chicago native Santiago Freeman is the host of Brooklyn Mecca, a presenter of house dance events, and the founding firector of Dance Warrior Project, a house dance company.
dance team kcd knicks city dancers nba dance team


TELE is an anonymous P2P network built on the innovations of Dash,PivX and more, encompassing various features found across multiple networks into one network. TELE is developing Trend-Setter to focus on Micro-Transactions in various sectors such as retail, marketing, social content and gaming. TELE is also creating an Android phone that allows secure transaction and interaction through the blockchain.


MCD Primary School No. 1 (Boys), Hastsal Village, New Delhi information. MCD Primary School No. 1 (Boys) admissions info, MCD Primary School No. 1 (Boys) fee structure, MCD Primary School No. 1 (Boys) ratings, MCD Primary School No. 1 (Boys) reviews, MCD Primary School No. 1 (Boys) affiliation type, MCD Primary School No. 1 (Boys) contact number, MCD Primary School No. 1 (Boys) address, MCD Primary School No. 1 (Boys) online admission form, MCD Primary School No. 1 (Boys) fee details, MCD Primary School No. 1 (Boys) admission procedure, MCD Primary School No. 1 (Boys) age eligibility criteria, MCD Primary School No. 1 (Boys) entrance exam and other top schools in New Delhi.


There's a lot going on these days…a lot of bad things, sad things. So many of my fellow bloggers have covered this topic much better than I could. I am sad, because as of late I've seen the American flag flown at half mast more than at full. What does this say about the state of the country? Of the neighborhood?
I'd like to share two different blogs sharing the same world. Two different styles, one same idea.
If you get a chance follow the links and take a look at the world in two different ways. After all…it's all the same in the end.
First is by my friend David Kanigan.
………My Goal: Exceed the 5.38 mile distance in March or run to the Sunrise, whichever comes first.
It's like riding a bike. You don't forget how to run. Right. A nerve in the upper left shoulder blade pinches. And this slides down to the lower right back achieving beautiful pain symmetry. Sedentary Suit on the move. Jesus.
Both groins groan. The pads of the feet cry No! with each footfall. I'm breathing heavy, and this is downhill 0.2 miles in. Jesus Saves.
Running in twilight. Red shoes. Red shorts. Red Shirt. Blood Man. Heart over-pumping, lungs heaving but at least I'm lookin' fine.
Then, Darien City Police Station.
And then another from my friend Austin Hodgens.
Claudia, thank you for sharing my post and for the kind words. It is all so incomprehensible.
With blogs like yours, it becomes clearer. Thank you for letting me share.


text:
TeachNuclear » All Things Nuclear » Atomic Theory » Periodic Table of Elements » Periodic Table » Neon
Atomic Number: 10 Atomic Radius: 154 pm (Van der Waals)
Atomic Symbol: Ne Melting Point: -258.59 °C
Atomic Mass: 20.18 Boiling Point: -246.08 °C
[He] 2s2 2p6
Oxidation States: —
(Gr. neos: new) Discovered by Ramsay and Travers in 1898. Neon is a rare gaseous element present in the atmosphere to the extent of 1 part in 65,000 of air. It is obtained by liquefaction of air and separated from the other gases by fractional distillation.
Natural neon is a mixture of three isotopes. Six other unstable isotopes are known.
Neon is a very inert element, however, it has been reported to form a compound with fluorine. It is still questionable if true compounds of neon exist, but evidence is mounting in favor of their existence. The ions, Ne+, (NeAr)+, (NeH)+, and (HeNe+) are known from optical and mass spectrometric studies. Neon also forms an unstable hydrate.
In a vacuum discharge tube, neon glows reddish orange.
It has over 40 times more refrigerating capacity per unit volume than liquid helium and more than three times that of liquid hydrogen. It is compact, inert, and is less expensive than helium when it meets refrigeration requirements.
Of all the rare gases, the discharge of neon is the most intense at ordinary voltages and currents.
Neon is often used in advertising signs.
Although neon advertising signs account for the bulk of its use, neon also functions in high-voltage indicators, lightning arrestors, wave meter tubes, and TV tubes. Neon and helium are used in making gas lasers. Liquid neon is now commercially available and is finding important application as an economical cryogenic refrigerant.


text:
Khullam Khulla Pyaar Karen () is an Indian Hindi-language comedy film starring Govinda and Preity Zinta. Due to complications the film kept on getting delayed therefore it was released only in 2005 despite being ready in 2002. The film was Harmesh Malhotra's last film before his death and was a box office failure.

Synopsis

Damani (Prem Chopra) and Goverdhan (Kader Khan) are bitter enemies but when they get word from their boss Trikal Annaa (Sadashiv Amrapurkar) to stop the rivalry, they are forced to shake hands. They soon decide to get their children married to each other. Goverdhan tells his son Vicky (Mohnish Behl) to go to Surat to meet Damani's daughter Priti (Preity Zinta).

Whilst going to Surat, Vicky offers a lift to Raja (Govinda) but the car has an accident and falls into the river. Some people manage to rescue Raja but not Vicky. Using this as an advantage and knowing about Vicky's purpose, he poses himself as Vicky and makes his way to Surat. He meets Priti and falls in love with her. At first when Priti meets Raja (under the guise of Vicky), she hates him but soon she falls in love with him. Goverdhan soon gets word that Vicky has met Priti and both have agreed to marry.

Then to his shock, the real Vicky comes home and announces that he never made it to Surat and he did not meet Priti. Goverdhan makes his way to Surat to find out who is there posing as his son...

Cast
 Govinda ... Raja Khanna
 Preity Zinta ... Priti
 Satish Kaushik ... Sindhi
 Sadashiv Amrapurkar ... Supremo/Trikal Anna
 Prem Chopra ... Damani
 Kader Khan ... Goverdhan
 Mohnish Behl ... Vicky
 Himani Shivpuri ... Goverdhan's wife
 Johnny Lever ... Gangster Pasha Bhai
 Asrani ... Pandit
 Razak Khan ... Goverdhan's Brother in law
Veeru Krishnan ... Sindhi's customer

Soundtrack
Music composed by Anand-Milind.

References

External links

2000s Hindi-language films
2005 films
Films scored by Anand–Milind
Films directed by Harmesh Malhotra

redpajama_set_name: RedPajamaWikipedia


The NSCA Championship Tour, powered by Winchester, consists of eight tournaments in 2019 — the five regional championships, U.S. Open Sporting Clays Championship, the National Sporting Clays Championship, and the World English Sporting Championship. Awards are given for Open, Lady, Junior, Sub-Junior, Veteran, Super Veteran, and Senior Super Veteran categories, and for Master, AA, A, B, C, D, and E classes.
2019 Points Races will be updated after the first event for the year.


text:
shippers' paradise
soompi entertainment
[OFFICIAL] Song Seung Heon x Seo Ji Hye (Dinner Mate Couple)
song seung heon
By Ayame,
July 14, 2020 in shippers' paradise
hrkharis 6,995
hrkharis
On the Emotional Camping program, SSH shared that while in middle school he told his friends that he wanted to marry Kang Suji. Hearing the story, then Narae asked him what Kang Suji's song did he like? He said "Violet Fragrance".
Then the song was played and he sang with AYM there.
"Violet Fragrance" was first sung by Kang Suji in 1990.
In 2015, group duo Wable sang it as the OST for the drama Reply 1988.
The lyrics are very romantic and seem to describe SSH's true feelings towards someone with beautiful eyes because one of the lyrics says "I couldn't forget your eyes that were suffused with fragrance "
Violet Fragrance
The appearance of you came up on me
Softly like a purple light
I couldn't forget your eyes
that were suffused with fragrance
Let's weave together beautiful stories
That will always make me smile
I've if the loneliness comes upon you
don't be sad my dear
Because my heart suffocates with pain too
Among the many people walked by in the streets
You are the one who gave love to me
The one who gave love to me
Lyrics "Violet Fragrance in Hangul and Romanization
https://alwaysdreaminghigh.wordpress.com/2016/03/26/lyrics-wable-violet-fragrance-hangul-romanization-and-english-translation/
I don't know why there is always a coincidence of links between SSH and SJH.
On the broadcast on "I Live Alone", it seems that SJH really likes the violet.
fiona628 337 posts
huckleberrymoonriver 215 posts
SexyDolceVita 156 posts
hrkharis 141 posts
If you look back at SSH-SJH's interview on Japanese TV, we will see how actually SSH gave support to SJH in facing this interview and on the other hand SJH needed support from SSH considering this was
Song Seung Heon x Seo Ji Hye (Dinner Mate Couple) DRAMA INFO • Title: 저녁 같이 드실래요? / Dinner Mate • Also known as: Would You Like to Have Dinner Together? /
After seeing clips of SJH in ILA with the subs, I'm beginning to think the reason why she remains single and unattached until now is because of the kind of woman she is. She seems very independent and
fiona628 2,378
fiona628
@hrkharis
I found a link of "I Live Alone" with English subs.
The pop-ups are annoying so just ignore and click "x"
https://kshowonline.com/kshow/12595-[engsub]-i-live-alone-ep.368
I just finished watching and discovered more about SJH's personality.
She is so real, simple, down to earth, hilarious no pretensions and not to mention beautiful inside out.
Even Park Na Rae said she was so beautiful.
I so love her even more.
She is Woo Do Hee in real life
She said a lot of people around her recommended her to appear on the show (A lot of people is only SSH right?. Hehehe)
She is a minimalist and only keeps the essential things she needs that is why her house is simple.
She is very organized and tidy. Even her fridge is organized.
She easily gets swollen and it traumatized her one time since it showed on her pictures and people accused her of getting injections.
She loves animals and gets her simple happiness by just watching animal videos.
She like animal butts including Wilson's that is why Wilson was facing his back in ILA.
She is very nurturing. She cooks and takes care of her friends. (Funny she asked her friend why don't you just marry me and her friend said no since you will just scold me. Lol. But we know who likes getting scolded and get tough love right? Just marry him)
She takes walks when she's depressed to make her feel better.
She is currently obsessed with this brand of beer ( No wonder SJH beer was trending in Naver. I wonder which brand though)
She got lonely after she had virtual dinner with her friends.
She said her Mom will be worried after watching the show since she will not find anyone to marry her (not true. We know someone who will marry you in a heartbeat)
And the Highlight of the show
"I might get married one day"
"Might even have a kid".
I pretty much have a feeling it will happen very very soon
BTW, I find it suspicious that Lee Si Eon was not on SJH's part. He is a good friend of SSH and he appeared with SJH on "The Noblese". Hmmmhh
akhenaten 8,772
After seeing clips of SJH in ILA with the subs, I'm beginning to think the reason why she remains single and unattached until now is because of the kind of woman she is. She seems very independent and knows her worth and what she wants in a relationship. She won't settle for anything less. I think her mindset is that she'd rather stay single and wait rather than enter into relationships that she's (or the guy) not fully invested in. I think that kind of independent and strong-willed mindset intimidates most of the men who want to court her. That's maybe why she and SSH hit it off. He's not insecure about himself and he didn't hesitate to make known to her exactly how he feels. And he seems to allow her to be herself with him.
I think theirs is going to be a very good relationship because they're already both mature in their mindset. They're not out to look for anyone to complete them coz they're already secure about themselves as individuals. They're not perfect but they seem to complement each other perfectly.
Azaria Ko 91
Azaria Ko
I didn't watch all SJH's interviews, but so far, I didn't recall she has ever mentioned about having kids. We all know SSH loves kids. Did this comes to her mind after "discussed" with SSH. kekeke
And on ILA, SJH mentioned about marriage a few times, even asked her friend to marry her. I believe she is really ready to get married. Okay, I am ready for the news!
Thank you @fiona628 for your attention.
Poor me, until now I have not been able to see ILA with sub.
I still can't open the link that you provided because it's only "blank with numbers 404"
So just be able to see it without any sub in Kissasian and dramaBus
Maybe I should be patient for a moment
@Azaria Ko
Yes, she did, she mentioned "children" at the end before the closing of the program.
Although I don't understand Korean but I heard her mention the words "married" and "children".
airgelaal 959
airgelaal
12 hours ago, fiona628 said:
I find it suspicious, that others wished SJH to find a role, that will show her true personality. They all forgot about her resent role? It was MBC drama and this is MBC show. So strange.
huckleberrymoonriver 1,283
huckleberrymoonriver
Just saw this on Twitter about SJH possible new show.
#SeoJiHye and #SungJoon are in talks for @jtbclove's #Younger (based on the @tvland drama)
Production company: ZIUM Content
PD: Lee Tae Gon (#DiaryOfAProsecutor, #HelloMyTwenties series)
Writer: Ha Yeon Mi
2 hours ago, hrkharis said:
http://kshow123.net/show/i-live-alone/episode-378.html
Check out the link above for the English sub episode of SJH. Though it's available in VIU for the premium subscribers.
https://www.viu.com/ott/ph/index.php?r=vod/share&product_id=304890&language_flag_id=3&area_id=5
44 minutes ago, airgelaal said:
@airgelaal maybe they were referring to that part of her who likes to cook. Dohee couldn't cook.
It seems that SJH appearance on MBC "I Live Alone" has been widely talked by viewers and reported by entertainment media in Korea, including this YouTube channel.
Let's find out about the self-assured anti-war charm from the campus ulzzang, actor Seo Ji-hye!
We will introduce actor Seo Ji-hye who is loved with a completely different hairy appearance than when she was acting.
Seo Ji-hye was born in 1984 and is 37 years old this year (Korean age). Born and raised in Seoul, she is from Dongdaemun-gu. She was offered street casting when she was in her second year of high school.
"I started my career as an actor while filming a music video". She said that KBS "Ultraviolet Rays" in the past".
She appeared in a mountain hut meeting at a corner of the Soy milk Masterpiece War, The War of the Roses. The concept of this program is that male entertainers and female college students gather at the hut to play game. "You can choose a partner that you like each other".
The woman who appeared in this program at the time were usually introduced as female college students.
However, there were usually many celebrity wannabes or new actresses.
Seo Ji-hye was controversial with plastic surgery due to her distinct features, but as her graduation photo was released. She also certified that she was a natural beauty. In addition to photographs of graduating from elementary school, middle school, high school, and she was attending Sungkyunkwan University in 2003. She also modelled on the cover of the campus, and as the photos of the time were released, she boasted the exact same beauty as it is now and made the plastic theory disappear naturally.
Seo Ji-hye is an actor whose recognition has risen relatively late. Since her debut, she has appeared in many work in both formative and short roles, but one work a year.
"I bought a variety of filmography so I did this. In fact, the fact that the face was well known was when I took the judicial examination in the 2015 drama Punch. The role of Choi Yeon-jin who passed is acquired. After that in the 2016 drama The Incarnation of Jealousy".
All the dramas that made Seo Ji-hye fully supportive, ended earlier this year. It was "A Crash Landing of Love". She is the daughter of the president of a high-end department store in Pyongyang and the fiancee of Hyun Bin, the main character. She showed a bouncing performance in the role of Seo Dan. "After this work, we took the lead role with Song Seung-heon and served dinner together, and appeared"
Seo Ji-hye is also famous for her resemblance to one Red Velvet members.
She was praised with her big eyes and refreshing features. They also appeared on Radio Star.
Seo Ji-hye was a member of Samsung Lions in the 2017.
There was also a dating rumor with Yoon Sung-hwan (a starting pitcher for the Samsung Lions).
Through a meeting acquaintances, there was an article saying that she had a relationship and developed into a lover. Even to the position of being unpleasant, it is speculated that the still dating rumor is unfounded.
Seo Ji-hye is known as a best friend with actor Yoon So-yi, Shin So-yul, Seo Yu-rin. It is known that she is close to Nam Gyu-ri. Although there is a modifier of woman-beauty because of her urban appearance and intellectual image, she is actually said to have a hairy personality.
Seo Ji-hye appeared in MBC "I Live Alone" and showed off her cheeky and lively appearance, and surprised many with her anti-war charm.
We look forward to Seo Ji-Hye's activities that will show various charms in the future.
@hrkharis, someone uploaded SJH's "I Live Alone" guesting in IG.
You should be able to watch it now
https://www.instagram.com/tv/CGwjTSCJrXx/?igshid=jqmn8cbbj2tl
credit to krdrama413 IG
"What it's like living alone?
A time for me to focus on myself"
She proved living alone yes can be lonely but in the end reaps the benefits of working on your life goals, and improving yourself.
SJH became a strong, matured independent woman
"I might get married one day and might have a kid too"
Someone mentioned in IG that it seems like the way she mentioned about wanting to get married is a sign that she is not single anymore and is definitely ready for marriage. Just look at how her face lit up when she mentioned marriage. Plus she mentioned she does not get lonely that often anymore. Someone must be making her happy.
"There are days to come. But because I had time to focus on myself, I'll be having a better life"
"Better Life" is Married Life? Seems like she is sending a message to our guy.
Maybe one of the reason why guys are intimated with her is because of the cold city girl personality that most of her roles portrayed on screen which made her seemed unapproachable and snobbish.
Even SSH teased her about it saying "The Actress with the Bad Personality"
I am so glad that Dinner Mate and ILA happened.
We get to see SJH's true personality.
Funny, Simple, Honest, Down to Earth, Nurturing. She will make a great Mom someday.
And mostly I am glad SSH helped debunked SJH's bad personality misconception.
@fiona628 and @huckleberrymoonriver
Thank you for your attention
Finally I was able to watch ILA with a sub on dramabus.
After seeing SJH in ILA, my heart was suddenly touched.
1. SJH decided to live alone, not living with her parents anymore about seven years ago. That means when she was 29 years old (30 years old in Korean age).
2. Living alone was her wish for a long time, so that at that time she told her parents that before she got married in about three or five years, she wanted to fulfill that wish.
3. She needed her parents's approval to live alone considering they lived in the same city, Seoul.
Her parents might wonder why they should live separately if still in the same city.
4. So don't be surprised if she said "family was on her mind the most" when answering questions on Japanese TV interviews. That's why even though she lived separately, she would visit her parents once a week for the sake of having dinner together.
5. Her younger sister had married and had children, currently residing in Australia. This may also be the reason her parents didn't initially allow her to live alone.
6. Each year when her break from work, she visited her younger sister in Australia. Or otherwise her younger sister will come to Korea. She missed her niece/nephew.
7. She would take a walk around her neighborhood if she felt like her mood was down. Walking and looking around made her feel healing.
8. She was used to being alone so she didn't feel lonely living alone. But the feeling of loneliness came suddenly when she finished hanging out with her old friends via video call. She felt that her house had become quieter.
9. When it comes to the question "What's it like living alone"?
She said the time to focus on herself. She might be married one day and might have children as well so that she felt didn't have much time to herself later. She often thought that she should spend more time focusing on herself. She believed that by having time to herself, she would have a better life 10 or 20 years later.
10. Before the program ended, she said that her mother would be worried after seeing this show. When the hosts asked why? She said because she would not be able to find a man to marry her ........
(Ooh.. Ji-hye ssi, I'm touched)
My hope for her, hopefully someone who also lives alone, who has been a bachelor for too long, who is curious about her figure, who always looks at her with affection, immediately proposes and marries her.
SexyDolceVita 240
SexyDolceVita
You're making me cry with your post... :'(
I wish ssh can have the courage to go after her, take care of each other, enjoy their remaining time on earth together...
They just seem so right for each other...
I hope they can see what we have seen too...
They are so self-disciplined, love to exercise, have lots of friends and still stay in touch with longtime friends... luv tteoboki... luv animals and dogs... goofy in nature...
Whatever happens, i hope she can find her true love soon...
@hrkharis @SexyDolceVita I hope they finally found their true love in each other. I hope the reason why their previous relationships didn't work out was because they were just meant to prepare them for each other. And maybe the reason why they stayed single for so long and suddenly found themselves immediately close to each other after only knowing one another for a very short time is because they were destined to meet each other at this point in their lives.
After what we've seen in their BTS, I just can't imagine them being with anyone else anymore.
mtdgmend 907
mtdgmend
HI All!!!
I just finished watching ILA (with the english subs) and noticed something...from the beginning of the segment to the end, there seemed to be a LOT of CLOY references and clips but NONE from DM, in fact it wasn't even mentioned. There was even a clip of the scene where Dan confronts Capt Ri, hence a quick glimpse of HB. Even the background music were mostly from the CLOY OST. I guess one could make the argument that she's more widely known for CLOY, even if DM is her most recent work.
Of course, my theory is---- if they were to talk about DM, then SSH would come up as a topic of conversation, and it could be "burdensome" and perhaps awkward, as the "natural" progression of questioning would be 'So, what's your relationship status? Are you you guys dating" Just friends?" So to side step all that --- better NOT bring up DM at all, right?
For those who watched "Gaemsang Camping" with SSH as a guest, was the DM topic avoided as well?
My conclusion--- they must be in a relationship and a private one at that, and don't want to discuss it. The recent pictures from the Japanese magazine and the video of the interview, is proof of their relationship (as seen by their body language), hence, clearly that they are together. However the fact that neither mentions it in their respective guest appearances , send the message "Please don't ask us about it, because we want to keep it private".
And THAT is My 2 cent analysis.
Have a good week ALL!!! Wonder what is in store for us shippers?
Wishing and Praying that its something good.
On 10/25/2020 at 5:53 AM, airgelaal said:
@airgelaal --- I thought I was the only one who noticed this too...HHHMMMMM.
See my *analysis* above.
2 minutes ago, mtdgmend said:
To be honest, there were clips from DM in the very beginning. But I also mentioned earlier, that they avoided to talk about DM.
In the Kim Jung Hyun's vlog SJH was the first who mentioned DM. So I think, she is ok to talk about DM and even SSH. She is a smart girl. So I also think it's strange.
@mtdgmendI like your theory! We shippers all hope that is true.
It is indeed strange that they didn't talk abt DM...
DM is a mbc drama some more! I live alone is also a mbc program.
So mystery points are:
1) why dm's woo dohee role was not discussed? It is the role most like the goofy version of sjh in real life...
2) why lee si eon was not present in the sjh segment but he was there for hwasa's 30mins segment?
3) why narae and the other lady who are fans of ssh did not even ask sjh abt her drama shooting experience with ssh? Usually they will ask funny questions like how was it... how was it kissing this male god...? And how they envy her...
The only explanation i can think of is this episode is abt sjh so the focus shld be on her and not somebody else...
13 minutes ago, SexyDolceVita said:
It's ok, of course. But why they not even mentioned DM? As if she never played WDH.
But as far as I remember, they didn't talk about her career at all.
2 hours ago, airgelaal said:
@airgelaal - you're right. There were a a couple shots from DM in the beginning.
I guess for her segment of ILA, they chose on to focus on her daily routine. Of course, she wouldn't have the chance to bring up DM unless one of the hosts asked a question about it. But no one did. So, I will still go with my theory of "don't ask, won't tell" mentioned earlier.
Maybe it was due to time constraints....
She only appeared in 1 episode...
And they wanna focus on her cold image vs warm personality contrast...
[Current Drama 2020/2021] Lovestruck in the City, 도시남녀의 사랑법: 나의 사랑스런 카메라 도둑 - Tue & Fri @ 17:00 KST
By heolaaa
♥ Lee Yo Won 이요원♥
By lostkid
[Upcoming Drama 2021] Hong Chun Gi/Red Sky, 홍천기 - Kim Yoo Jung & Ahn Hyo Seop - Premieres in 2021 - FIRST TEASER IS OUT!!!
By Jillia


– E! Online offers their report of the Mel Gibson visit.
– Wiley Wiggins is one of the many who really got into William Friedkin's Bug.
– Jette at Cinematical reviews Tideland.
– Harry Knowles follows the love that's coming in for a film called Hatchet.
– Over at Twitch, Peter Martin gives his thoughts on The Host, among other selections at the fest.
– Cinema Strikes Back surveys a few titles, including Renaissance and Zhest.


Unlike most conventional doors which swing open on a hinge, folding doors, as their name suggests, fold open. These are an excellent choice to use when space is limited or when the surrounding space needs to be used for something else.
Many types of folding doors, called bi-fold doors, have only two folds. Others, often called accordion doors, have multiple folds. Interior folding doors are usually bi-fold doors. Since these doors are perfect for small spaces they are often used for closets, pantries and laundries. They can also be used to create two smaller rooms out of one larger room in the home.
Folding doors are usually comprised of two narrow doors on a track, attached by a center hinge. When opened, this type of door folds at its hinges and as it slides to one side, thus using limited space. This section contains helpful suggestions regarding folding doors and interior folding doors.
Folding door ideas usually start with a need to save space. They are often the optimal choice in areas with very limited space. A folding door has a wide sweep but can fold away to a space as small as your foot. This makes it ideal for many interior and exterior applications. For example, a deck, a patio or a closet in a hallway can benefit by using a folding door.
Folding doors are available in a variety of materials. They can also be quite attractive and even decorative depending on the style and design you choose. These doors originated with the Japanese Shoji screen. An idea you may want to consider is using a folding or accordion door as a frame to provide structure. Then add a beautiful panel to make it aesthetically appealing.
Many folding door ideas should be considered as a potential option when you want to open up an interior space to the outdoors. This is yet one more way to enhance your home.
What Are the Benefits of a Folding Door?


Digital Leadership is potentially the single most important success factor in any digital strategy or transformation. This hands-on, practical workshop has been designed to give executives, managers and senior management a clear understanding of how to successfully embrace a digital mindset. You will come away with a focus on what you can do to drive digital change and achieve a competitive advantage.
Identify the core digital capabilities needed to succeed in a digital landscape.


By News Tribune on Feb 7, 2019 at 7:29 p.m.
No. 9 Barron at No. 8 Menomonie, 7 p.m.
No. 10 Grantsburg at No. 7 Somerset, 7 p.m.
No. 7 St. Francis/North Branch (5-17-2) at No. 2 Andover (20-4), 5 p.m.
No. 5 Cambridge-Isanti Area (17-7) at No. 4 Grand Rapids-Greenway (17-8), 5 p.m.
No. 8 Princeton Area (8-15-1) at No. 1 Forest Lake (23-1), 5:30 p.m.
No. 5 North Shore (9-12-2) at No. 4 Hibbing-Chisholm (9-15), 4:30 p.m.
No. 7 International Falls (9-12-1) at No. 2 Duluth Marshall (17-8), 7 p.m.
Quarterfinal winners, 6 and 8 p.m.
No. 7 Superior at No. 2 Hudson, 5 p.m.
No. 5 Hayward-Ashland at No. 4 Somerset, 7 p.m.
Superior at Hudson (diving), 5 p.m.
Superior at Chippewa Falls, 10 a.m.
Ashland, Northwestern at Barron, 10:30 a.m.


Brittany Goings's passion for French was first inspired by her high school teachers. She went on to obtain a B.A. in French & Secondary Education with a minor in International Studies from Central College (Pella, IA) and a M.A. in French language, literature and culture from Colorado State University (Fort Collins, Colorado). Her scholarly work included a thesis on student motivation and cultural learning, a year of study in Paris at the Institut Catholique de Paris and Chambre de Commerce et d'Industrie de Paris and a Corporate Social Responsibility internship in France at SNCF (National society of French railways) where she learned about French commerce, politics, literature and daily life. These experiences form the approach of Goings as a French educator at an International Baccalaureate high school in Colorado.
Goings has been an integral part of the author team for two Wayside Publishing titles, APprenons with Elizabeth Zwanziger, Elizabeth Rench, and Brittany Selden Griffin, and EntreCultures 1 with Elizabeth Zwanziger, Hélène Schuster and Ed Weiss.


text:
Washington Nationals: Anthony Rendon Showing Good Patience At The Plate
Apr 24, 2017; Denver, CO, USA; Washington Nationals third baseman Anthony Rendon (6) hits a single during the eighth inning against the Colorado Rockies at Coors Field. The Rockies won 8-4. Mandatory Credit: Chris Humphreys-USA TODAY Sports /
While Anthony Rendon doesn't have a home run yet, the Washington Nationals third baseman has been making pitchers work during his at-bats
As we near the end of April, Washington Nationals third baseman Anthony Rendon has yet to hit a home run this season. Now, this isn't uncommon for Rendon since it took him till May 3 in Kansas City last season for him to hit his first home run. He isn't hitting the ball out of the park, but he is contributing in other ways.
During his first 20 games, Rendon has seen 4.48 pitches per plate appearance. Right now, that would be a career-high for him. It is too early to determine whether or not that will hold up all season, but he is currently seeing more pitches than anyone on the Nats, including outfielder Adam Eaton (4.15).
If we break down the sample size even smaller, Rendon has seen 151 pitches over the past seven games (4.87 pitches per plate appearance). That number is the most pitches any hitter in all of baseball has seen during that span.
More from District on Deck
Latest DraftKings Sportsbook Promo Code in Maryland: Bet $5, Win $200 Guaranteed
Nationals Claim Jeter Downs Off Waivers
Washington Nationals Minor League Spotlight: Robert Hassell III
Washington Nationals Tuesday Q&A
3 Free Agents the Nationals Should Gamble On
Now, he does only have two extra base hits and a .231 batting average so far this year. However, it would be easy for a hitter to press in a slump and swing at more pitches to try to snap out of it. That has been the opposite for Rendon.
One at-bat that has stood out over that span was Friday night against the Mets. In the 11th inning, With runners at the corners and one out against closer Jeurys Familia, Rendon ended up working a walk to load the bases. Why is that at-bat impressive? Well, the third baseman is 1-for-9 lifetime against Familia.
Historically, Rendon is a slow starter to the season. According to Baseball Reference, he has a career .268 batting average with four home runs in March/April (heading into yesterday). But, after July 1, he has hit 33 home runs out of the 53 he has in his career.
With his plus defense and good patience at the plate, Rendon can contribute to the Nats in other ways. At Coors Field this week, he is 4-for-13 with a RBI in three games and he has a hit in five of his last eight games overall.
So, while the Washington Nationals wait for Rendon's bat to heat up, keep an eye on how he takes pitches and sets up opportunity for others in the batting order. Since Dusty Baker likes to move him around the lineup, he has the ability to help anyone on a given day.


text:
Human Rights the Focus of Burma Film Festival
Former Thai PM Chavalit Discusses Investment in Naypyidaw
Land Rights Activists Sued for Protesting Without Permission
The Secretariat's Second Chance
Burma Cancels Amnesty for Former Political Prisoner
Signs of Coming Genocide in Burma?
Myanmar Times' Failure to Get Daily License Down to Internal Squabble
Eleven Media Responds to China's Accusations Over Arms Deal to Rebels Report
New Light of Myanmar Says 'No to Narcissistic Leaders'
Former Obama Asia Diplomat Writes Burma's 'Baby Tiger' Is Ready to Roar
Dalai Lama Decries Buddhist Attacks on Muslims in Burma
Bangladesh Garment Disaster Death Toll Reaches 761
China Calls US the 'Real Hacking Empire' after Pentagon Report
For the First Time, The Irrawaddy Hits Burma's Newsstands
DKBA Forces Refuse to Leave Dam Site
Central Burma Faces Water Shortage
Ethnic Armies' Role in Burma Drug Trade Off Table at Six-Nation Talks
Six Muslims Charged with Monk's Murder in Meikhtila Violence
Mon Youths Detained, Tortured for Attacking Officer, NGO Claims
Earthquake Hits Shan State
Burma's 'Drug-free' Deadline Postponed
Police Pursue Jakarta Bomb Maker
Burma Army Accused of Abuses in Shan State
US Recognizes Malaysia Vote despite Concerns
Burma President Vows to Protect Muslim Rights
Burma Embassy Bomb Plot Witnesses Freed in Indonesia
Burma gears up for an international film festival that will start in Rangoon and travel to cities across the country.
By Nadi Htike 8 May 2013
With the idea of connecting film and human rights, "The Human Rights Human Dignity International Film Festival" will launch in Rangoon next month, according to the festival's founder and director, Min Htin Ko Ko Gyi.
The award-winning filmmaker said the festival would run from June 15-19 in two movie theaters in Rangoon's Junction Square shopping center, while subsequent film screenings would be held in different states and divisions in the following months.
"It will be the main festival in Rangoon in June," he told The Irrawaddy. "From July to December, there will be traveling film festivals in 13 cities in 13 other states and divisions."
The deadline to submit documentaries, short films and animation films from Burma and abroad is May 10. So far, the festival has received more foreign films.
"To date, we have received films from Denmark, the United States, France, Germany, England and the Philippines," said Min Htin Ko Ko Gyi. "I think domestic films will be sent to us near the deadline."
Three awards will be given to the best documentary, short film and animation film—including the Aung San Suu Kyi Award in honor of the Burmese opposition leader, the Min Ko Naing Award in honor of the leading democracy activist, and the March13 Award.
"The March13 Award is to honor Phone Maw and Soe Naing, the university students who fell during the 1988 uprising for demanding fundamental human rights. March 13 is also the date widely recognized as Burma's human rights day," the filmmaker said.
The film festival is dedicated to Suu Kyi, who gained iconic status around the world as a promoter of human rights and democracy in Burma under the former military regime. The award ceremony will be on her birthday, June 19.
"Our intention is just to raise the awareness level of people in our country on human rights issues," said Min Htin Ko Ko Gyi.
Nadi Htike The Irrawaddy


text:
Oscar Trelles
CUATRECASAS Lima
oscar.trelles@cuatrecasas.com
Expert in advising national and international companies and funds on M&A transactions, private equity, and project finance.
Oscar Trelles heads the Cuatrecasas M&A Practice in Latin America and coordinates the Private Equity Practice in the Lima office. He also specializes in financing and project finance. He has participated in some of the most sophisticated and important national and international transactions, including multijurisdictional transactions, in recent years.
Before joining Cuatrecasas, he worked in different international law firms in Lima and New York, including Curtis, Mallet - Prevost, Colt & Mosle and Simpson Thacher & Bartlett, where he participated in complex multijurisdictional transactions.
He is a member of the New York and Lima bar associations.
He lectures on M&A and project finance in the Master of Laws at the Pontificia Universidad Católica del Perú and in the International Financial Management Program at Universidad de Piura.
He also contributes to publications and writes legal articles for different specialized journals and other written media.
Corporate and M&A Disputes
Private Equity Program
The Wharton School, Philadelphia, 2019
International Financial Management Program (PAD)
Universidad de Piura, Peru, 2014
Harvard Law School, Cambridge, Massachusetts, USA, 2007
Bachelor of Laws (summa cum laude)
Pontificia Universidad Católica del Perú, Peru, 2004
Directory Mentions
Recommended lawyer
Chambers Global, Chambers Latin America, IFLR, Legal 500 Latin America, Latin Lawyer, LACCA, Leaders League and Best Lawyers (categories: Corporate and M&A, Project finance and Private equity)
Delivery Hero enters Latin American market through Glovo
Cuatrecasas hires Domingo Rivarola as partner leading Litigation and Arbitration Practice in Peru
Cuatrecasas hires Juan Pablo Porto as partner leading Tax Practice in Peru
Investment opportunities in Colombia, Mexico and Peru
Oportunidades y retos de inversión en Chile, Colombia, México y Perú: El contexto en LATAM después del COVID-19
Oportunidades de inversión en México, Perú y Colombia | Barcelona
Oportunidades de inversión en México, Perú y Colombia | Madrid


Comments: To Be Built Strauss Courtyard SPEC at Greenleigh. Discover city living in Baltimore County. Greenleigh has a city like feel with all that you need within walking distance. An upscale urban community offering the perfect combination of lifestyle, location, and luxury for buyers who don't want to compromise! Amenity Rich. Enjoy exclusive access to the community~s state of the art amenities:- Clubhouse- Outdoor pool- Fitness center with separate yoga studio- Dog park, walking trails and pocket parks Contemporary Home Designs. Our well-appointed townhomes offer up to 5 bedrooms, up to 4.5 baths and a 2 car garage. They include 3 finished levels and optional fourth level lofts with a rooftop deck. Plus they come with all the high-end finishes you want in your brand new home.Photos are representative only. Other home sites available. To make an appointment, contact Sales Representatives Anthony Walters or Jordan Cohen at (410)777-8073, or visit ryanhomes.com. Model hours: Mon-Fri 11-6pm, Sat 11-5pm, Sun 12-5.


Assist auditor to vouch for the documents. Create a draft of financial statements. Verify the accuracy and reliability of documents. Responsible for checking the account receivable.
Built out a green-fields proof-of-concept project using React 16.x and Redux.
Maintained 100 +/- Business Development Managers Accounts and calculated approximately $5M of sales incentives per year. Very detailed spreadsheets were created and tracked. Daily, weekly and monthly reports of various kinds provided to upper management and BDM's. Daily phone contact, coordinating sales meetings, fielding questions and answers regarding commissions on a daily basis. Extensive email correspondence.
➢ Creativity and a good observer.
➢ Positive thinking along with Hard Work.
➢ Easily Cope up with environment.
➢ Participated in Techno Fest in various colleges.
➢ Participated in current affairs test in District level.
➢ Playing Cricket and Reading books.
Reporting Development. Thousands of various reports using SSRS, Crystal Reports and other reporting apps.


text:
Femelle.no | Våre bloggere | Blogge hos oss? | Ukens konkurranse | Få nyhetsbrev
søndag 20. desember 2020, 10:38
What`s A Legal Agreement Or Promise Made Between Two Parties
All I had to do was respond by saying «agreed» or «confirmed,» and I would have been legally bound. You know what I mean by Snap? In commercial cases, the courts do not readily accept that a company accepts an agreement that it considers unfair or that it includes inappropriate conditions. In a less technical sense, however, a condition is a generic term and a guarantee is a promise. [65] Not all contractual languages are defined as a contractual clause. Representations, which are often pretracted, are generally less strict than terms, and material misrepresentations have historically been one of the reasons for the intrusion. Guarantees have been implemented regardless of importance; In modern U.S. law, the distinction is less clear, but the safeguards can be applied more strictly. [68] Opinions can be considered a «simple mess.» In social situations, there is generally no intention that agreements become legally binding contracts (. B for example, friends who meet at a given time are not a valid contract).
There is also the fact that some people may not be able to legally hire a company or other registered corporation, for example. B a director of a company that has appointed a liquidator (this is a point related to the actual or alleged authority). Statements can be made before the drafting of the contract, there may be misunderstandings that undermine the legally binding nature of the treaty. Second, one of the parties could mislead its opponent (knowingly or not) with respect to a fact, the state of the situation or the length of the contract. The court may issue an order of the «specific benefit» that requires the performance of the contract. In certain circumstances, a court will order a party to keep its promise (a «specific benefit order») or to issue an injunction known as an «injunction of omission» that a party will refrain from doing something that would be contrary to the treaty. Some benefit is available for breach of a contract to sell land or real estate with reasons such that the property has a unique value. In the United States, through the 13th Amendment to the U.S. Constitution, the specific provision in personal service contracts is only legal, «as punishment for a crime whose criminal must be wrongly convicted.» [144] Acceptance of the offer must be unconditional (for example. B a signature on an employment contract) and must be communicated. All negotiations between the parties are counter-offers, not accepted.
The courts say that the parts of a contract are the best judges of the commercial fairness of a proposed contract. Companies are also the best judge in deciding whether the terms of an agreement are appropriate – before hiring it. The formation of a contract is not necessarily an intentional act. It can happen, even if you didn`t intend to enter into a contract. Factual allegations in a contract or when obtaining the contract are considered guarantees or insurance. Traditionally, guarantees are factual commitments imposed by a contractual remedy, regardless of importance, intent or trust. [68] Representations are traditionally pre-contract statements that permit an unlawful act (for example. (B) the unlawful act) where the misrepresced presentation is negligence or fraud; [73] Historically, an unlawful act was the only act available, but in 1778, the breach of the guarantee became a separate contractual action. [68] In American law, the distinction between the two is somewhat blurred; [68] Guarantees are viewed primarily as contract-based lawsuits, while false statements of negligence or fraud are due to unlawful acts, but there is a confusing mix of jurisprudence in the United States. [68] In modern English law, sellers often avoid using the term «represents» to avoid claims under the Misrepresentation Act 1967, whereas in America «Warrants and Represents» is relatively common.
[74] Some modern commentators suggest avoiding words and replacing
Click to share on Facebook(åpnes i en ny fane)
Klikk for å dele på Google+(åpnes i en ny fane)
Postet i: Ukategorisert
@marikabentzen


Super great oil for any gun! Really like this!!! A MUST buy!
Tres bonne huile, très efficace !!! merci DAA pour ce produit et pour la livraison rapide !!!!
There are many gun cleaning product lines, solvents and oils, but there is only one Shooter's Choice! Double-Alpha Academy is proud to be a European distributor for this fantastic product line.
Having used these products ourselves, we can say with full confidence that you will find no better for cleaning and maintaining your firearms. And this year, Shooter's Choice is proud to introduce their new line of water based cleaners – perfect for cleaning indoors or when odors and toxic fumes are unacceptable.
Simply the best and most versatile gun oil on the market today!