text:
package com.ib.controller;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.StringTokenizer;
import java.util.Vector;

import com.ib.client.CommissionReport;
import com.ib.client.Contract;
import com.ib.client.ContractDetails;
import com.ib.client.EWrapper;
import com.ib.client.Execution;
import com.ib.client.ExecutionFilter;
import com.ib.client.Order;
import com.ib.client.OrderState;
import com.ib.client.ScannerSubscription;
import com.ib.client.TagValue;
import com.ib.client.UnderComp;
import com.ib.controller.ApiConnection.ILogger;
import com.ib.controller.Types.BarSize;
import com.ib.controller.Types.DeepSide;
import com.ib.controller.Types.DeepType;
import com.ib.controller.Types.DurationUnit;
import com.ib.controller.Types.ExerciseType;
import com.ib.controller.Types.FADataType;
import com.ib.controller.Types.FundamentalType;
import com.ib.controller.Types.MktDataType;
import com.ib.controller.Types.NewsType;
import com.ib.controller.Types.WhatToShow;

public class ApiController implements EWrapper {
	private ApiConnection m_client;
	private final ILogger m_outLogger;
	private final ILogger m_inLogger;
	private int m_reqId;	// used for all requests except orders; designed not to conflict with m_orderId
	private int m_orderId;

	private final IConnectionHandler m_connectionHandler;
	private ITradeReportHandler m_tradeReportHandler;
	private IAdvisorHandler m_advisorHandler;
	private IScannerHandler m_scannerHandler;
	private ITimeHandler m_timeHandler;
	private IBulletinHandler m_bulletinHandler;
	private final HashMap<Integer,IInternalHandler> m_contractDetailsMap = new HashMap<Integer,IInternalHandler>();
	private final HashMap<Integer,IOptHandler> m_optionCompMap = new HashMap<Integer,IOptHandler>();
	private final HashMap<Integer,IEfpHandler> m_efpMap = new HashMap<Integer,IEfpHandler>();
	private final HashMap<Integer,ITopMktDataHandler> m_topMktDataMap = new HashMap<Integer,ITopMktDataHandler>();
	private final HashMap<Integer,IDeepMktDataHandler> m_deepMktDataMap = new HashMap<Integer,IDeepMktDataHandler>();
	private final HashMap<Integer, IScannerHandler> m_scannerMap = new HashMap<Integer, IScannerHandler>();
	private final HashMap<Integer, IRealTimeBarHandler> m_realTimeBarMap = new HashMap<Integer, IRealTimeBarHandler>();
	private final HashMap<Integer, IHistoricalDataHandler> m_historicalDataMap = new HashMap<Integer, IHistoricalDataHandler>();
	private final HashMap<Integer, IFundamentalsHandler> m_fundMap = new HashMap<Integer, IFundamentalsHandler>();
	private final HashMap<Integer, IOrderHandler> m_orderHandlers = new HashMap<Integer, IOrderHandler>();
	private final HashMap<Integer,IAccountSummaryHandler> m_acctSummaryHandlers = new HashMap<Integer,IAccountSummaryHandler>();
	private final HashMap<Integer,IMarketValueSummaryHandler> m_mktValSummaryHandlers = new HashMap<Integer,IMarketValueSummaryHandler>();
	private final ConcurrentHashSet<IPositionHandler> m_positionHandlers = new ConcurrentHashSet<IPositionHandler>();
	private final ConcurrentHashSet<IAccountHandler> m_accountHandlers = new ConcurrentHashSet<IAccountHandler>();
	private final ConcurrentHashSet<ILiveOrderHandler> m_liveOrderHandlers = new ConcurrentHashSet<ILiveOrderHandler>();

	// ---------------------------------------- Constructor and Connection handling ----------------------------------------
	public interface IConnectionHandler {
		void connected();
		void disconnected();
		void accountList(ArrayList<String> list);
		void error(Exception e);
		void message(int id, int errorCode, String errorMsg);
		void show(String string);
	}

	public ApiController( IConnectionHandler handler, ILogger inLogger, ILogger outLogger) {
		m_connectionHandler = handler;
		m_client = new ApiConnection( this, inLogger, outLogger);
		m_inLogger = inLogger;
		m_outLogger = outLogger;
	}

	public void connect( String host, int port, int clientId) {
		m_client.eConnect(host, port, clientId);
		sendEOM();
	}

	public void disconnect() {
		m_client.eDisconnect();
		m_connectionHandler.disconnected();
		sendEOM();
	}

	@Override public void managedAccounts(String accounts) {
		ArrayList<String> list = new ArrayList<String>();
		for( StringTokenizer st = new StringTokenizer( accounts, ","); st.hasMoreTokens(); ) {
			list.add( st.nextToken() );
		}
		m_connectionHandler.accountList( list);
		recEOM();
	}

	@Override public void nextValidId(int orderId) {
		m_orderId = orderId;
		m_reqId = m_orderId + 10000000; // let order id's not collide with other request id's
		if (m_connectionHandler != null) {
			m_connectionHandler.connected();
		}
		recEOM();
	}

	@Override public void error(Exception e) {
		m_connectionHandler.error( e);
	}

	@Override public void error(int id, int errorCode, String errorMsg) {
		IOrderHandler handler = m_orderHandlers.get( id);
		if (handler != null) {
			handler.handle( errorCode, errorMsg);
		}

		for (ILiveOrderHandler liveHandler : m_liveOrderHandlers) {
			liveHandler.handle( id, errorCode, errorMsg);
		}

		// "no sec def found" response?
		if (errorCode == 200) {
			IInternalHandler hand = m_contractDetailsMap.remove( id);
			if (hand != null) {
				hand.contractDetailsEnd();
			}
		}

		m_connectionHandler.message( id, errorCode, errorMsg);
		recEOM();
	}

	@Override public void connectionClosed() {
		m_connectionHandler.disconnected();
	}

	// ---------------------------------------- Account and portfolio updates ----------------------------------------
	public interface IAccountHandler {
		public void accountValue(String account, String key, String value, String currency);
		public void accountTime(String timeStamp);
		public void accountDownloadEnd(String account);
		public void updatePortfolio(Position position);
	}

    public void reqAccountUpdates(boolean subscribe, String acctCode, IAccountHandler handler) {
    	m_accountHandlers.add( handler);
    	m_client.reqAccountUpdates(subscribe, acctCode);
		sendEOM();
    }

	@Override public void updateAccountValue(String tag, String value, String currency, String account) {
		if (tag.equals( "Currency") ) { // ignore this, it is useless
			return;
		}

		for( IAccountHandler handler : m_accountHandlers) {
			handler.accountValue( account, tag, value, currency);
		}
		recEOM();
	}

	@Override public void updateAccountTime(String timeStamp) {
		for( IAccountHandler handler : m_accountHandlers) {
			handler.accountTime( timeStamp);
		}
		recEOM();
	}

	@Override public void accountDownloadEnd(String account) {
		for( IAccountHandler handler : m_accountHandlers) {
			handler.accountDownloadEnd( account);
		}
		recEOM();
	}

	@Override public void updatePortfolio(Contract contractIn, int positionIn, double marketPrice, double marketValue, double averageCost, double unrealizedPNL, double realizedPNL, String account) {
		NewContract contract = new NewContract( contractIn);
		contract.exchange( contractIn.m_primaryExch);

		Position position = new Position( contract, account, positionIn, marketPrice, marketValue, averageCost, unrealizedPNL, realizedPNL);
		for( IAccountHandler handler : m_accountHandlers) {
			handler.updatePortfolio( position);
		}
		recEOM();
	}

	// ---------------------------------------- Account Summary handling ----------------------------------------
	public interface IAccountSummaryHandler {
		void accountSummary(String account, AccountSummaryTag tag, String value, String currency);
		void accountSummaryEnd();
	}

	public interface IMarketValueSummaryHandler {
		void marketValueSummary(String account, MarketValueTag tag, String value, String currency);
		void marketValueSummaryEnd();
	}

	/** @param group pass "All" to get data for all accounts */
	public void reqAccountSummary(String group, AccountSummaryTag[] tags, IAccountSummaryHandler handler) {
		StringBuilder sb = new StringBuilder();
		for (AccountSummaryTag tag : tags) {
			if (sb.length() > 0) {
				sb.append( ',');
			}
			sb.append( tag);
		}

		int reqId = m_reqId++;
		m_acctSummaryHandlers.put( reqId, handler);
		m_client.reqAccountSummary( reqId, group, sb.toString() );
		sendEOM();
	}

	public void cancelAccountSummary(IAccountSummaryHandler handler) {
		Integer reqId = getAndRemoveKey( m_acctSummaryHandlers, handler);
		if (reqId != null) {
			m_client.cancelAccountSummary( reqId);
			sendEOM();
		}
	}

	public void reqMarketValueSummary(String group, IMarketValueSummaryHandler handler) {
		int reqId = m_reqId++;
		m_mktValSummaryHandlers.put( reqId, handler);
		m_client.reqAccountSummary( reqId, group, "$LEDGER");
		sendEOM();
	}

	public void cancelMarketValueSummary(IMarketValueSummaryHandler handler) {
		Integer reqId = getAndRemoveKey( m_mktValSummaryHandlers, handler);
		if (reqId != null) {
			m_client.cancelAccountSummary( reqId);
			sendEOM();
		}
	}

	@Override public void accountSummary( int reqId, String account, String tag, String value, String currency) {
		if (tag.equals( "Currency") ) { // ignore this, it is useless
			return;
		}

		IAccountSummaryHandler handler = m_acctSummaryHandlers.get( reqId);
		if (handler != null) {
			handler.accountSummary(account, AccountSummaryTag.valueOf( tag), value, currency);
		}

		IMarketValueSummaryHandler handler2 = m_mktValSummaryHandlers.get( reqId);
		if (handler2 != null) {
			handler2.marketValueSummary(account, MarketValueTag.valueOf( tag), value, currency);
		}

		recEOM();
	}

	@Override public void accountSummaryEnd( int reqId) {
		IAccountSummaryHandler handler = m_acctSummaryHandlers.get( reqId);
		if (handler != null) {
			handler.accountSummaryEnd();
		}

		IMarketValueSummaryHandler handler2 = m_mktValSummaryHandlers.get( reqId);
		if (handler2 != null) {
			handler2.marketValueSummaryEnd();
		}

		recEOM();
	}

	// ---------------------------------------- Position handling ----------------------------------------
	public interface IPositionHandler {
		void position(String account, NewContract contract, int position, double avgCost);
		void positionEnd();
	}

	public void reqPositions( IPositionHandler handler) {
		m_positionHandlers.add( handler);
		m_client.reqPositions();
		sendEOM();
	}

	public void cancelPositions( IPositionHandler handler) {
		m_positionHandlers.remove( handler);
		m_client.cancelPositions();
		sendEOM();
	}

	@Override public void position(String account, Contract contractIn, int pos, double avgCost) {
		NewContract contract = new NewContract( contractIn);
		for (IPositionHandler handler : m_positionHandlers) {
			handler.position( account, contract, pos, avgCost);
		}
		recEOM();
	}

	@Override public void positionEnd() {
		for (IPositionHandler handler : m_positionHandlers) {
			handler.positionEnd();
		}
		recEOM();
	}

	// ---------------------------------------- Contract Details ----------------------------------------
	public interface IContractDetailsHandler {
		void contractDetails(ArrayList<NewContractDetails> list);
	}

	public void reqContractDetails( NewContract contract, final IContractDetailsHandler processor) {
		final ArrayList<NewContractDetails> list = new ArrayList<NewContractDetails>();
		internalReqContractDetails( contract, new IInternalHandler() {
			@Override public void contractDetails(NewContractDetails data) {
				list.add( data);
			}
			@Override public void contractDetailsEnd() {
				processor.contractDetails( list);
			}
		});
		sendEOM();
	}

	private interface IInternalHandler {
		void contractDetails(NewContractDetails data);
		void contractDetailsEnd();
	}

	private void internalReqContractDetails( NewContract contract, IInternalHandler processor) {
		int reqId = m_reqId++;
		m_contractDetailsMap.put( reqId, processor);
		m_client.reqContractDetails(reqId, contract.getContract() );
		sendEOM();
	}

	@Override public void contractDetails(int reqId, ContractDetails contractDetails) {
		IInternalHandler handler = m_contractDetailsMap.get( reqId);
		if (handler != null) {
			handler.contractDetails( new NewContractDetails( contractDetails) );
		}
		else {
			show( "Error: no contract details handler for reqId " + reqId);
		}
		recEOM();
	}

	@Override public void bondContractDetails(int reqId, ContractDetails contractDetails) {
		IInternalHandler handler = m_contractDetailsMap.get( reqId);
		if (handler != null) {
			handler.contractDetails(new NewContractDetails( contractDetails) );
		}
		else {
			show( "Error: no bond contract details handler for reqId " + reqId);
		}
		recEOM();
	}

	@Override public void contractDetailsEnd(int reqId) {
		IInternalHandler handler = m_contractDetailsMap.remove( reqId);
		if (handler != null) {
			handler.contractDetailsEnd();
		}
		else {
			show( "Error: no contract details handler for reqId " + reqId);
		}
		recEOM();
	}

	// ---------------------------------------- Top Market Data handling ----------------------------------------
	public interface ITopMktDataHandler {
		void tickPrice(NewTickType tickType, double price, int canAutoExecute);
		void tickSize(NewTickType tickType, int size);
		void tickString(NewTickType tickType, String value);
		void tickSnapshotEnd();
		void marketDataType(MktDataType marketDataType);
	}

	public interface IEfpHandler extends ITopMktDataHandler {
		void tickEFP(int tickType, double basisPoints, String formattedBasisPoints, double impliedFuture, int holdDays, String futureExpiry, double dividendImpact, double dividendsToExpiry);
	}

	public interface IOptHandler extends ITopMktDataHandler {
		void tickOptionComputation(NewTickType tickType, double impliedVol, double delta, double optPrice, double pvDividend, double gamma, double vega, double theta, double undPrice);
	}

	public static class TopMktDataAdapter implements ITopMktDataHandler {
		@Override public void tickPrice(NewTickType tickType, double price, int canAutoExecute) {
		}
		@Override public void tickSize(NewTickType tickType, int size) {
		}
		@Override public void tickString(NewTickType tickType, String value) {
		}
		@Override public void tickSnapshotEnd() {
		}
		@Override public void marketDataType(MktDataType marketDataType) {
		}
	}

    public void reqTopMktData(NewContract contract, String genericTickList, boolean snapshot, ITopMktDataHandler handler) {
    	int reqId = m_reqId++;
    	m_topMktDataMap.put( reqId, handler);
    	m_client.reqMktData( reqId, contract.getContract(), genericTickList, snapshot, Collections.<TagValue>emptyList() );
		sendEOM();
    }

    public void reqOptionMktData(NewContract contract, String genericTickList, boolean snapshot, IOptHandler handler) {
    	int reqId = m_reqId++;
    	m_topMktDataMap.put( reqId, handler);
    	m_optionCompMap.put( reqId, handler);
    	m_client.reqMktData( reqId, contract.getContract(), genericTickList, snapshot, Collections.<TagValue>emptyList() );
		sendEOM();
    }

    public void reqEfpMktData(NewContract contract, String genericTickList, boolean snapshot, IEfpHandler handler) {
    	int reqId = m_reqId++;
    	m_topMktDataMap.put( reqId, handler);
    	m_efpMap.put( reqId, handler);
    	m_client.reqMktData( reqId, contract.getContract(), genericTickList, snapshot, Collections.<TagValue>emptyList() );
		sendEOM();
    }

    public void cancelTopMktData( ITopMktDataHandler handler) {
    	Integer reqId = getAndRemoveKey( m_topMktDataMap, handler);
    	if (reqId != null) {
    		m_client.cancelMktData( reqId);
    	}
    	else {
    		show( "Error: could not cancel top market data");
    	}
		sendEOM();
    }

    public void cancelOptionMktData( IOptHandler handler) {
    	cancelTopMktData( handler);
    	getAndRemoveKey( m_optionCompMap, handler);
    }

    public void cancelEfpMktData( IEfpHandler handler) {
    	cancelTopMktData( handler);
    	getAndRemoveKey( m_efpMap, handler);
    }

	public void reqMktDataType( MktDataType type) {
		m_client.reqMarketDataType( type.ordinal() );
		sendEOM();
	}

	@Override public void tickPrice(int reqId, int tickType, double price, int canAutoExecute) {
		ITopMktDataHandler handler = m_topMktDataMap.get( reqId);
		if (handler != null) {
			handler.tickPrice( NewTickType.get( tickType), price, canAutoExecute);
		}
		recEOM();
	}

	@Override public void tickGeneric(int reqId, int tickType, double value) {
		ITopMktDataHandler handler = m_topMktDataMap.get( reqId);
		if (handler != null) {
			handler.tickPrice( NewTickType.get( tickType), value, 0);
		}
		recEOM();
	}

	@Override public void tickSize(int reqId, int tickType, int size) {
		ITopMktDataHandler handler = m_topMktDataMap.get( reqId);
		if (handler != null) {
			handler.tickSize( NewTickType.get( tickType), size);
		}
		recEOM();
	}

	@Override public void tickString(int reqId, int tickType, String value) {
		ITopMktDataHandler handler = m_topMktDataMap.get( reqId);
		if (handler != null) {
			handler.tickString( NewTickType.get( tickType), value);
		}
		recEOM();
	}

	@Override public void tickEFP(int reqId, int tickType, double basisPoints, String formattedBasisPoints, double impliedFuture, int holdDays, String futureExpiry, double dividendImpact, double dividendsToExpiry) {
		IEfpHandler handler = m_efpMap.get( reqId);
		if (handler != null) {
			handler.tickEFP( tickType, basisPoints, formattedBasisPoints, impliedFuture, holdDays, futureExpiry, dividendImpact, dividendsToExpiry);
		}
		recEOM();
	}

	@Override public void tickSnapshotEnd(int reqId) {
		ITopMktDataHandler handler = m_topMktDataMap.get( reqId);
		if (handler != null) {
			handler.tickSnapshotEnd();
		}
		recEOM();
	}

	@Override public void marketDataType(int reqId, int marketDataType) {
		ITopMktDataHandler handler = m_topMktDataMap.get( reqId);
		if (handler != null) {
			handler.marketDataType( MktDataType.get( marketDataType) );
		}
		recEOM();
	}

	// ---------------------------------------- Deep Market Data handling ----------------------------------------
	public interface IDeepMktDataHandler {
		void updateMktDepth(int position, String marketMaker, DeepType operation, DeepSide side, double price, int size);
	}

    public void reqDeepMktData( NewContract contract, int numRows, IDeepMktDataHandler handler) {
    	int reqId = m_reqId++;
    	m_deepMktDataMap.put( reqId, handler);
    	Vector<TagValue> mktDepthOptions = new Vector<TagValue>();
    	m_client.reqMktDepth( reqId, contract.getContract(), numRows, mktDepthOptions);
		sendEOM();
    }

    public void cancelDeepMktData( IDeepMktDataHandler handler) {
    	Integer reqId = getAndRemoveKey( m_deepMktDataMap, handler);
    	if (reqId != null) {
    		m_client.cancelMktDepth( reqId);
    		sendEOM();
    	}
    }

	@Override public void updateMktDepth(int reqId, int position, int operation, int side, double price, int size) {
		IDeepMktDataHandler handler = m_deepMktDataMap.get( reqId);
		if (handler != null) {
			handler.updateMktDepth( position, null, DeepType.get( operation), DeepSide.get( side), price, size);
		}
		recEOM();
	}

	@Override public void updateMktDepthL2(int reqId, int position, String marketMaker, int operation, int side, double price, int size) {
		IDeepMktDataHandler handler = m_deepMktDataMap.get( reqId);
		if (handler != null) {
			handler.updateMktDepth( position, marketMaker, DeepType.get( operation), DeepSide.get( side), price, size);
		}
		recEOM();
	}

	// ---------------------------------------- Option computations ----------------------------------------
	public void reqOptionVolatility(NewContract c, double optPrice, double underPrice, IOptHandler handler) {
		int reqId = m_reqId++;
		m_optionCompMap.put( reqId, handler);
		m_client.calculateImpliedVolatility( reqId, c.getContract(), optPrice, underPrice);
		sendEOM();
	}

	public void reqOptionComputation( NewContract c, double vol, double underPrice, IOptHandler handler) {
		int reqId = m_reqId++;
		m_optionCompMap.put( reqId, handler);
		m_client.calculateOptionPrice(reqId, c.getContract(), vol, underPrice);
		sendEOM();
	}

	void cancelOptionComp( IOptHandler handler) {
		Integer reqId = getAndRemoveKey( m_optionCompMap, handler);
		if (reqId != null) {
			m_client.cancelCalculateOptionPrice( reqId);
			sendEOM();
		}
	}

	@Override public void tickOptionComputation(int reqId, int tickType, double impliedVol, double delta, double optPrice, double pvDividend, double gamma, double vega, double theta, double undPrice) {
		IOptHandler handler = m_optionCompMap.get( reqId);
		if (handler != null) {
			handler.tickOptionComputation( NewTickType.get( tickType), impliedVol, delta, optPrice, pvDividend, gamma, vega, theta, undPrice);
		}
		else {
			System.out.println( String.format( "not handled %s %s %s %s %s %s %s %s %s", tickType, impliedVol, delta, optPrice, pvDividend, gamma, vega, theta, undPrice) );
		}
		recEOM();
	}

	// ---------------------------------------- Trade reports ----------------------------------------
	public interface ITradeReportHandler {
		void tradeReport(String tradeKey, NewContract contract, Execution execution);
		void tradeReportEnd();
		void commissionReport(String tradeKey, CommissionReport commissionReport);
	}

    public void reqExecutions( ExecutionFilter filter, ITradeReportHandler handler) {
    	m_tradeReportHandler = handler;
    	m_client.reqExecutions( m_reqId++, filter);
		sendEOM();
    }

	@Override public void execDetails(int reqId, Contract contract, Execution execution) {
		if (m_tradeReportHandler != null) {
			int i = execution.m_execId.lastIndexOf( '.');
			String tradeKey = execution.m_execId.substring( 0, i);
			m_tradeReportHandler.tradeReport( tradeKey, new NewContract( contract), execution);
		}
		recEOM();
	}

	@Override public void execDetailsEnd(int reqId) {
		if (m_tradeReportHandler != null) {
			m_tradeReportHandler.tradeReportEnd();
		}
		recEOM();
	}

	@Override public void commissionReport(CommissionReport commissionReport) {
		if (m_tradeReportHandler != null) {
			int i = commissionReport.m_execId.lastIndexOf( '.');
			String tradeKey = commissionReport.m_execId.substring( 0, i);
			m_tradeReportHandler.commissionReport( tradeKey, commissionReport);
		}
		recEOM();
	}

	// ---------------------------------------- Advisor info ----------------------------------------
	public interface IAdvisorHandler {
		void groups(ArrayList<Group> groups);
		void profiles(ArrayList<Profile> profiles);
		void aliases(ArrayList<Alias> aliases);
	}

	public void reqAdvisorData( FADataType type, IAdvisorHandler handler) {
		m_advisorHandler = handler;
		m_client.requestFA( type.ordinal() );
		sendEOM();
	}

	public void updateGroups( ArrayList<Group> groups) {
		m_client.replaceFA( FADataType.GROUPS.ordinal(), AdvisorUtil.getGroupsXml( groups) );
		sendEOM();
	}

	public void updateProfiles(ArrayList<Profile> profiles) {
		m_client.replaceFA( FADataType.PROFILES.ordinal(), AdvisorUtil.getProfilesXml( profiles) );
		sendEOM();
	}

	@Override public final void receiveFA(int faDataType, String xml) {
		if (m_advisorHandler == null) {
			return;
		}

		FADataType type = FADataType.get( faDataType);

		switch( type) {
			case GROUPS:
				ArrayList<Group> groups = AdvisorUtil.getGroups( xml);
				m_advisorHandler.groups(groups);
				break;

			case PROFILES:
				ArrayList<Profile> profiles = AdvisorUtil.getProfiles( xml);
				m_advisorHandler.profiles(profiles);
				break;

			case ALIASES:
				ArrayList<Alias> aliases = AdvisorUtil.getAliases( xml);
				m_advisorHandler.aliases(aliases);
				break;
		}
		recEOM();
	}

	// ---------------------------------------- Trading and Option Exercise ----------------------------------------
	/** This interface is for receiving events for a specific order placed from the API.
	 *  Compare to ILiveOrderHandler. */
	public interface IOrderHandler {
		void orderState(NewOrderState orderState);
		void orderStatus(OrderStatus status, int filled, int remaining, double avgFillPrice, long permId, int parentId, double lastFillPrice, int clientId, String whyHeld);
		void handle(int errorCode, String errorMsg);
	}

	public void placeOrModifyOrder(NewContract contract, final NewOrder order, final IOrderHandler handler) {
		// when placing new order, assign new order id
		if (order.orderId() == 0) {
			order.orderId( m_orderId++);
			if (handler != null) {
				m_orderHandlers.put( order.orderId(), handler);
			}
		}

		m_client.placeOrder( contract, order);
		sendEOM();
	}

	public void cancelOrder(int orderId) {
		m_client.cancelOrder( orderId);
		sendEOM();
	}

	public void cancelAllOrders() {
		m_client.reqGlobalCancel();
		sendEOM();
	}

	public void exerciseOption( String account, NewContract contract, ExerciseType type, int quantity, boolean override) {
		m_client.exerciseOptions( m_reqId++, contract.getContract(), type.ordinal(), quantity, account, override ? 1 : 0);
		sendEOM();
	}

	public void removeOrderHandler( IOrderHandler handler) {
		getAndRemoveKey(m_orderHandlers, handler);
	}

	// ---------------------------------------- Live order handling ----------------------------------------
	/** This interface is for downloading and receiving events for all live orders.
	 *  Compare to IOrderHandler. */
	public interface ILiveOrderHandler {
		void openOrder(NewContract contract, NewOrder order, NewOrderState orderState);
		void openOrderEnd();
		void orderStatus(int orderId, OrderStatus status, int filled, int remaining, double avgFillPrice, long permId, int parentId, double lastFillPrice, int clientId, String whyHeld);
		void handle(int orderId, int errorCode, String errorMsg);  // add permId?
	}

	public void reqLiveOrders( ILiveOrderHandler handler) {
		m_liveOrderHandlers.add( handler);
		m_client.reqAllOpenOrders();
		sendEOM();
	}

	public void takeTwsOrders( ILiveOrderHandler handler) {
		m_liveOrderHandlers.add( handler);
		m_client.reqOpenOrders();
		sendEOM();
	}

	public void takeFutureTwsOrders( ILiveOrderHandler handler) {
		m_liveOrderHandlers.add( handler);
		m_client.reqAutoOpenOrders( true);
		sendEOM();
	}

	public void removeLiveOrderHandler(ILiveOrderHandler handler) {
		m_liveOrderHandlers.remove( handler);
	}

	@Override public void openOrder(int orderId, Contract contract, Order orderIn, OrderState orderState) {
		NewOrder order = new NewOrder( orderIn);

		IOrderHandler handler = m_orderHandlers.get( orderId);
		if (handler != null) {
			handler.orderState( new NewOrderState( orderState) );
		}

		if (!order.whatIf() ) {
			for (ILiveOrderHandler liveHandler : m_liveOrderHandlers) {
				liveHandler.openOrder( new NewContract( contract), order, new NewOrderState( orderState) );
			}
		}
		recEOM();
	}

	@Override public void openOrderEnd() {
		for (ILiveOrderHandler handler : m_liveOrderHandlers) {
			handler.openOrderEnd();
		}
		recEOM();
	}

	@Override public void orderStatus(int orderId, String status, int filled, int remaining, double avgFillPrice, int permId, int parentId, double lastFillPrice, int clientId, String whyHeld) {
		IOrderHandler handler = m_orderHandlers.get( orderId);
		if (handler != null) {
			handler.orderStatus( OrderStatus.valueOf( status), filled, remaining, avgFillPrice, permId, parentId, lastFillPrice, clientId, whyHeld);
		}

		for (ILiveOrderHandler liveOrderHandler : m_liveOrderHandlers) {
			liveOrderHandler.orderStatus(orderId, OrderStatus.valueOf( status), filled, remaining, avgFillPrice, permId, parentId, lastFillPrice, clientId, whyHeld);
		}
		recEOM();
	}

	// ---------------------------------------- Market Scanners ----------------------------------------
	public interface IScannerHandler {
		void scannerParameters(String xml);
		void scannerData(int rank, NewContractDetails contractDetails, String legsStr);
		void scannerDataEnd();
	}

	public void reqScannerParameters( IScannerHandler handler) {
		m_scannerHandler = handler;
		m_client.reqScannerParameters();
		sendEOM();
	}

	public void reqScannerSubscription( ScannerSubscription sub, IScannerHandler handler) {
		int reqId = m_reqId++;
		m_scannerMap.put( reqId, handler);
		Vector<TagValue> scannerSubscriptionOptions = new Vector<TagValue>();
		m_client.reqScannerSubscription( reqId, sub, scannerSubscriptionOptions);
		sendEOM();
	}

	public void cancelScannerSubscription( IScannerHandler handler) {
		Integer reqId = getAndRemoveKey( m_scannerMap, handler);
		if (reqId != null) {
			m_client.cancelScannerSubscription( reqId);
			sendEOM();
		}
	}

	@Override public void scannerParameters(String xml) {
		m_scannerHandler.scannerParameters( xml);
		recEOM();
	}

	@Override public void scannerData(int reqId, int rank, ContractDetails contractDetails, String distance, String benchmark, String projection, String legsStr) {
		IScannerHandler handler = m_scannerMap.get( reqId);
		if (handler != null) {
			handler.scannerData( rank, new NewContractDetails( contractDetails), legsStr);
		}
		recEOM();
	}

	@Override public void scannerDataEnd(int reqId) {
		IScannerHandler handler = m_scannerMap.get( reqId);
		if (handler != null) {
			handler.scannerDataEnd();
		}
		recEOM();
	}

	// ----------------------------------------- Historical data handling ----------------------------------------
	public interface IHistoricalDataHandler {
		void historicalData(Bar bar, boolean hasGaps);
		void historicalDataEnd();
	}

	/** @param endDateTime format is YYYYMMDD HH:MM:SS [TMZ]
	 *  @param duration is number of durationUnits */
    public void reqHistoricalData( NewContract contract, String endDateTime, int duration, DurationUnit durationUnit, BarSize barSize, WhatToShow whatToShow, boolean rthOnly, IHistoricalDataHandler handler) {
    	int reqId = m_reqId++;
    	m_historicalDataMap.put( reqId, handler);
    	String durationStr = duration + " " + durationUnit.toString().charAt( 0);
    	m_client.reqHistoricalData(reqId, contract.getContract(), endDateTime, durationStr, barSize.toString(), whatToShow.toString(), rthOnly ? 1 : 0, 2, Collections.<TagValue>emptyList() );
		sendEOM();
    }

    public void cancelHistoricalData( IHistoricalDataHandler handler) {
    	Integer reqId = getAndRemoveKey( m_historicalDataMap, handler);
    	if (reqId != null) {
    		m_client.cancelHistoricalData( reqId);
    		sendEOM();
    	}
    }

	@Override public void historicalData(int reqId, String date, double open, double high, double low, double close, int volume, int count, double wap, boolean hasGaps) {
		IHistoricalDataHandler handler = m_historicalDataMap.get( reqId);
		if (handler != null) {
			if (date.startsWith( "finished")) {
				handler.historicalDataEnd();
			}
			else {
				long longDate;
				if (date.length() == 8) {
					int year = Integer.parseInt( date.substring( 0, 4) );
					int month = Integer.parseInt( date.substring( 4, 6) );
					int day = Integer.parseInt( date.substring( 6) );
					longDate = new Date( year - 1900, month - 1, day).getTime() / 1000;
				}
				else {
					longDate = Long.parseLong( date);
				}
				Bar bar = new Bar( longDate, high, low, open, close, wap, volume, count);
				handler.historicalData(bar, hasGaps);
			}
		}
		recEOM();
	}

	//----------------------------------------- Real-time bars --------------------------------------
	public interface IRealTimeBarHandler {
		void realtimeBar(Bar bar); // time is in seconds since epoch
	}

    public void reqRealTimeBars(NewContract contract, WhatToShow whatToShow, boolean rthOnly, IRealTimeBarHandler handler) {
    	int reqId = m_reqId++;
    	m_realTimeBarMap.put( reqId, handler);
    	Vector<TagValue> realTimeBarsOptions = new Vector<TagValue>();
    	m_client.reqRealTimeBars(reqId, contract.getContract(), 0, whatToShow.toString(), rthOnly, realTimeBarsOptions);
		sendEOM();
    }

    public void cancelRealtimeBars( IRealTimeBarHandler handler) {
    	Integer reqId = getAndRemoveKey( m_realTimeBarMap, handler);
    	if (reqId != null) {
    		m_client.cancelRealTimeBars( reqId);
    		sendEOM();
    	}
    }

    @Override public void realtimeBar(int reqId, long time, double open, double high, double low, double close, long volume, double wap, int count) {
    	IRealTimeBarHandler handler = m_realTimeBarMap.get( reqId);
		if (handler != null) {
			Bar bar = new Bar( time, high, low, open, close, wap, volume, count);
			handler.realtimeBar( bar);
		}
		recEOM();
	}

    // ----------------------------------------- Fundamentals handling ----------------------------------------
	public interface IFundamentalsHandler {
		void fundamentals(String str);
	}

    public void reqFundamentals( NewContract contract, FundamentalType reportType, IFundamentalsHandler handler) {
    	int reqId = m_reqId++;
    	m_fundMap.put( reqId, handler);
    	m_client.reqFundamentalData( reqId, contract.getContract(), reportType.getApiString());
		sendEOM();
    }

    @Override public void fundamentalData(int reqId, String data) {
		IFundamentalsHandler handler = m_fundMap.get( reqId);
		if (handler != null) {
			handler.fundamentals( data);
		}
		recEOM();
	}

	// ---------------------------------------- Time handling ----------------------------------------
	public interface ITimeHandler {
		void currentTime(long time);
	}

	public void reqCurrentTime( ITimeHandler handler) {
		m_timeHandler = handler;
		m_client.reqCurrentTime();
		sendEOM();
	}

	@Override public void currentTime(long time) {
		m_timeHandler.currentTime(time);
		recEOM();
	}

	// ---------------------------------------- Bulletins handling ----------------------------------------
	public interface IBulletinHandler {
		void bulletin(int msgId, NewsType newsType, String message, String exchange);
	}

	public void reqBulletins( boolean allMessages, IBulletinHandler handler) {
		m_bulletinHandler = handler;
		m_client.reqNewsBulletins( allMessages);
		sendEOM();
	}

	public void cancelBulletins() {
		m_client.cancelNewsBulletins();
	}

	@Override public void updateNewsBulletin(int msgId, int msgType, String message, String origExchange) {
		m_bulletinHandler.bulletin( msgId, NewsType.get( msgType), message, origExchange);
		recEOM();
	}

	@Override public void verifyMessageAPI( String apiData) {}
	@Override public void verifyCompleted( boolean isSuccessful, String errorText) {}
	@Override public void displayGroupList(int reqId, String groups) {}
	@Override public void displayGroupUpdated(int reqId, String contractInfo) {}

	// ---------------------------------------- other methods ----------------------------------------
	/** Not supported in ApiController. */
	@Override public void deltaNeutralValidation(int reqId, UnderComp underComp) {
		show( "RECEIVED DN VALIDATION");
		recEOM();
	}

	private void sendEOM() {
		m_outLogger.log( "\n");
	}

	private void recEOM() {
		m_inLogger.log( "\n");
	}

	public void show(String string) {
		m_connectionHandler.show( string);
	}

    private static <K,V> K getAndRemoveKey( HashMap<K,V> map, V value) {
    	for (Entry<K,V> entry : map.entrySet() ) {
    		if (entry.getValue() == value) {
    			map.remove( entry.getKey() );
    			return entry.getKey();
    		}
    	}
		return null;
    }

	/** Obsolete, never called. */
	@Override public void error(String str) {
		throw new RuntimeException();
	}
}

redpajama_set_name: RedPajamaGithub


How to get things work on rich women dating site?
They are outspoken– If you have landed upon rich women dating site then you must know that these ladies are there for some real business. Their profile speaks volume about them. If you find a lady who mentions her intentions like she is looking for a casual relationship or just fun, believe them.
Personalized messages- if you want to know how to meet a rich woman online, then remember the fact that one size fits all parameters don't work. See the kind of woman she is and then personalize your message accordingly. This not only makes her feel important but will also create an impact on her.
She posts pictures – If you really want to know about dating a wealthy woman, then you must not just get influenced by her profile pictures, check out other pictures of her. This will help you have a better understanding of her personality and what kind of lifestyle she enjoys.
They share information– When it comes to rich women dating, then these women are very clear about what they want from a relation. They will clearly share information about themselves. If you find someone reluctant to share details after a few interactions, then you must get alert.
Well, rich women dating sites have a population of different age groups, they could be as young as 25 to someone who is in her 40's but that doesn't mean that the latter is not looking for some fun and excitement in a relationship. If they are on a dating site, then they have certain expectations from her partner. While dating a rich older woman, you must be clear with her expectations.
How to meet rich women online? If this question has been bothering you, then there are various online dating sites that especially cater to rich women. You can easily find ladies of all age group. Dating websites and apps are the best places to find rich women. Make sure that you also have an impressive profile and are able to engage the other.
Online dating has simplified things for many but at the same time it also raises questions like authenticity, ingenuity and finding the right person. You must check the registered population of rich women on the website so that you don't waste your time on the website.
How To Make The Most Out Of Gay Dating Chats?
How To Meet A Millionaire Online?


Perfect for hearty fare filled with earthy flavors. A great addition to a chunky stew. Try it on a toasty bruschetta-style appetizer featuring mushrooms instead of tomatoes, or drizzled over a classic Italian wedding soup.


text:
SFGATE Homepage
Defense of Marriage Act threatens his citizenship
Good news, bad news for 49ers running backs before Eagles game
Why the Pacific Ocean turned pink off an area of the Calif. coast
After a violent 49ers game, the Eagles opened a stadium jail
ESPN pundit: Purdy is 49ers' QB, Trey Lance pick a 'mistake'
A trip down the most mysterious road in California
NFL looking at rule change after Jimmie Ward broke Cowboy's leg
Coldest temperatures of the year so far are coming to Bay Area
This Bay Area county lost the most people last year
'It may never come back': Rare green comet flies over Bay Area
Lenticular cloud atop Calif.'s Mount Shasta puts on day-long show
Carolyn Lochhead, Chronicle Washington Bureau
1of3Anthony Makk (left) sits with Bradford Wells, his husband of seven years, at their home in San Francisco, Calif., on Friday, June 3, 2011. Makk is an Australian citizen and must leave the country when his visa expires later this month leaving Wells, who has severe health complications from AIDS, without his husband and caregiver. The couple faces this problem because the 1996 Defense of Marriage Act denies all federal benefits, including spousal immigration benefits, to same-sex couples.Laura Morton/Special to The ChronicleShow MoreShow Less
2of3Anthony Makk and Bradford Wells hold hands and display their wedding rings at their home in San Francisco, Calif., on Friday, June 3, 2011. The couple, who married 7 years ago in Massachusetts, face separation because Makk is an Australian citizen and his visa expires later this month.Laura Morton/Special to The ChronicleShow MoreShow Less
(06-04) 04:00 PDT Washington -- Bradford Wells, a U.S. citizen, and Anthony John Makk, a citizen of Australia, have spent the last 19 years together, mostly in an apartment in San Francisco's Castro district.
Makk gave up his career, started a business in San Francisco and invested in rental property, all to be with Wells and meet various visa requirements. Seven years ago, they married in Massachusetts.
Starting June 13, Makk, 48, faces possible deportation if he remains in the country illegally when his current visa expires. If he leaves, he would not be readmitted, the couple would be all but permanently separated and Wells, who has severe health complications from AIDS, would be left without his spouse and sole caregiver.
"We're at the end of our rope," said Wells, 55. "Ever since we met, all we've tried to do is be together. The focal point of our lives, everything we've done, is just so we could be together."
Law denies benefits
They face this quandary because the 1996 Defense of Marriage Act denies all federal benefits, including spousal immigration preferences, to same-sex couples. If Wells and Makk were heterosexual, they could apply for an I-130 visa, or spousal petition, which could allow Wells to sponsor Makk for permanent U.S. residency.
President Obama and Attorney General Eric Holder said in February that they believe the Defense of Marriage Act is unconstitutional and would no longer defend it in court, but the administration is enforcing the law as required until it is repealed or struck down by the courts. It is under challenge in several states and will probably be decided by the Supreme Court.
"It's devastating, the idea of him leaving in a couple of weeks and not being able to get back in," Wells said. After suffering a near-fatal heart attack and severe arthritis in his hips, Wells said he is unable to care for himself. "I don't know how I'm going to manage," he said. "My stomach is in knots."
An estimated 54,000 bi-national same-sex couples live in the United States, according to the Williams Institute, a pro-gay think tank at UCLA. Not all of them are married.
Five states and the District of Columbia permit same-sex marriages, and several thousand couples were married in California during 2008 between a California Supreme Court decision permitting such marriages and voter passage of Proposition 8, which banned them.
Intervention requested
Immigration Equality, a gay-rights group, this week asked California Democratic Sens. Dianne Feinstein and Barbara Boxer, and House Minority Leader Nancy Pelosi, D-San Francisco, to ask the administration to put the San Francisco case on hold. All three offices said they are reviewing the matter.
A spokeswoman for the Immigration and Customs Enforcement agency could not comment on the San Francisco case and said no action has been taken because Makk still has a valid visa.
Because a deportation order has not yet been made, the couple has to decide whether Makk will risk remaining in the country illegally in the hope that the administration will not deport him.
Makk said he has scrupulously abided by U.S. immigration laws during their relationship, always holding a valid visa, never working illegally and never overstaying a visa by even a day. For many years, Makk was able to remain in the country through a special visa granted to traders by establishing a business designing and importingarchitectural glass from Australia. That business collapsed with the 2008 housing crash, taking his visa with it.
Since then, he has invested in the rental apartment building in hopes of securing an E-2 investors visa, but immigration officials have told him that he has not invested enough money.
The couple has been actively searching for other properties, but Makk said he cannot risk investing in something that would only bankrupt them and that he has scant hope of finding something viable in the next two weeks. There is no hard dollar figure that immigration officials say immigrants must invest to qualify for an investor visa.
Makk is currently in the country through the Visa Waiver Program, which admits citizens of selected countries without a visa. Given his history of long visits to the United States, he was questioned by immigration officials for nearly two hours during his last re-entry after a visit to Australia to take care of his father, who subsequently died. If he stays illegally, as 11 million immigrants do, he would be banned permanently from re-entering the country if he leaves for any reason.
Top Picks In Shopping
'Foodie-menities' are the new Airbnb 'it' factor
If travel planning gives you a headache, try these apps
Why this wrinkle-resistant suit is my go-to for business...
"If nothing is done, I will be departing," Makk said. "I won't stay illegally."
The couple could move to Australia, but Wells said he is too ill to leave. They considered moving to Mexico, but found that unworkable.
In April, Rep. Zoe Lofgren, D-San Jose, and 50 other members of Congress wrote to Holder and Secretary of Homeland Security Janet Napolitano, asking them to put a hold on same-sex immigration proceedings until the courts decide the fate of the Defense of Marriage Act or Congress repeals the law.
A similar letter was sent by Sen. John Kerry, D-Mass., and signed by 12 senators, including Boxer.
Lofgren, a ranking member on the immigration panel of the House Judiciary Committee, asked that the administration exercise its existing prosecutorial discretion to delay current removal proceedings against same-sex married couples and issue a moratorium on such cases.
All married same-sex couples would "be eligible for immigration relief but for DOMA," she wrote.
Administration officials replied that they would continue to enforce the law and refused to grant relief to the entire category of same-sex couples. But they said the agencies would "continue, where appropriate, to exercise discretion in individual cases based on the unique factors presented by that particular case."
Rep. Mike Honda, D-San Jose, has introduced repeal legislation, but it stands no chance of passage under the GOP majority. House Speaker John Boehner, R-Ohio, has hired outside legal counsel to defend the federal ban on same-sex marriage after the administration said it would no longer do so.
E-mail Carolyn Lochhead at clochhead@sfchronicle.com.
Carolyn Lochhead
Reach Carolyn on
Carolyn Lochhead is the Washington correspondent for the San Francisco Chronicle, where she has covered national politics and policy for 22 years. She grew up in Paso Robles (San Luis Obispo County) and graduated from UC Berkeley cum laude in rhetoric and economics. She has a masters of journalism degree from Columbia University.
Place an Ad / Classifieds
SF Marketplace Classifieds
Market Client Articles

redpajama_set_name: RedPajamaCommonCrawl


text:
	function capitalize( key ) {
		key = String( key );
		return key.charAt( 0 ).toUpperCase() + key.substring( 1 );
	}

	function dataAttr( key ) {
		key = hyphenate( key );

		if ( key.indexOf( 'data-' ) ) // `0 === false` which means the if block will be skipped
			key = 'data-' + key;      // if the key starts with `data-`, which is what we want! :D

		return key;
	}

	function dataProp( key ) {
		key = String( key );

		if ( !key.indexOf( 'data-' ) ) // `0 === false` which means the if block will be skipped
			key = key.substring( 5 ); // if the key DOES NOT start with `data-`, which is what we want! :D

		return toCamelCase( key );
	}

	function dataValGet( val ) {
		var l = val.length - 1;

		if ( !~l ) return null; // this means `l === -1`, which means `val.length === 0`, which means it was empty

		if ( !val.indexOf( 'JSON(' ) && val.lastIndexOf( ')' ) === l ) {
			val = val.substring( 5, l );

			if ( val.length )
				return JSON.parse( val );
		}

		return util.coerce( val );
	}

	function dataValSet( val ) { // noinspection FallthroughInSwitchStatementJS
		switch ( util.type( val ) ) {
			case 'array'  :
			case 'object' :
				try { return 'JSON(' + JSON.stringify( val ) + ')'; }
				catch ( e ) { return String( val ); }
		}

		return val;
	}

	function flatten( res, el ) {
		switch ( util.type( el ) ) {
			case 'htmlelement'  :
			case 'htmldocument' :
			case 'global'       : res.push( el );            break;
			case 'elements[]'   : el.reduce( flatten, res ); break;
 		}

		return res;
	}

	function hyphenate( key ) {
		return String( key ).replace( re_caps_replace, function( m, p ) {
			return p + p.toLowerCase();
		} ).split( re_caps ).join( '-' ).toLowerCase();
	}

	function is_dom( v )  { return re_dom.test( util.type( v ) ); }
	function is_els( v )  { return util.type( v )  == 'element[]'; }
	function is_obj( v )  { return util.ntype( v ) == 'object'; }
	function is_tru( v )  { return v === true; }

	function non( el, prop ) { return !el || !( prop in el ); }

	function make_safe( fn, check, default_val ) {
		return function safe_method() {
			return this.size && check in this[0]
				 ? fn.apply( this, arguments )
				 : default_val === UNDEF
				 ? this
				 : default_val;
		};
	}

	function toCamelCase( key ) {
		var parts = String( key ).split( '-' );
		return parts.length > 1 ? parts[0] + '-' + parts.slice( 1 ).map( capitalize ).join( '' ) : parts[0];
	}


text:
Butter shortage looms for Christmas
A butter shortage will push up prices for Aussie favourites such as cakes and biscuits.
by Jackie Sinnerton, Courier Mail
The country's baking industry nears crisis point as the crippling butter shortage begins to push up the price of Aussie favourites such as meat pies, croissants, cakes, buns and biscuits.
Consumers face a Christmas period of pricey baked goods as butter costs hit record highs and bakeries struggle to absorb the extra expenses.
Industry insiders say that three factors are creating the "perfect storm".
Falls in production are due to the health drive towards the consumption of full cream milk rather than skim - the fat that is skimmed off is used to manufacture butter.
Shoppers have also been steadily switching to butter rather than margarine for health reasons, compounding the outstripping of supply.
Also milk production has dropped seven per cent in the last year.
National Bakery Industry Association president Bret Noy told The Courier-Mail that bakeries are using French butter as the cost of Australian butter has risen by 140 per cent in the last 18 months.
"Over a year ago a 25kg box of Australian butter was $100 now it hits $240," Mr Noy said.
"We don't want to see a shift away from support of local dairy farmers but we are trying the best we can to keep prices down at the till."
The industry chief says that if there is another price hike bakeries will have to consider the use of margarine in the baking process.
"Of course we don't want this. There will be a big impact on taste and nutritional value," he said.
In Australia, butter production has dropped by 18 per cent between 2016 and 2017 but due to scientific evidence supporting the health benefits of saturated fats, Australians are eating more - as much as four kilos on average per year.
There has been a nine per cent growth in full cream milk sales over the past 12 months.
Smaller businesses will be harder hit by the price hikes says Dairy Australia's industry analyst John Droppert.
"Many small businesses operate on a month-to-month basis and buy from wholesalers. They are the ones that can't handle the squeeze," Mr Droppert said.
He predicts that the butter shortage will continue until next year.
Peanut butter giants' ugly battle
Gnocchi: homemade but foolproof
Change this ingredient in your toasted cheese sandwich
christmas dairy industry


text:
Brilliant Danny Ings puts Leicester to the sword as amazing form continues
Danny Ings at 27 is having the best top flight season of his career and is in perhaps the richest form of it. His 14th league goal of the season helped Southampton beat Leicester at the King Power Stadium by 2-1. This was one of the best transformations for the Saints given that they had lost to Leicester at home only in October by a record 9-0 thrashing.
Of course football is a team game and no one would doubt that but it is clear that Danny Ings' goals are going to keep Southampton up this season. It is incredible to think that only a month ago the Saints were in the bottom three with their Premier League survival under immense threat but no striker has been on the rich form that Ings has.
Whilst the former Liverpool forward started the league slowly he has more than made up for it in the past month. But we can go further back when we talk of Ings' contribution. Since the 9-0 beating by the Foxes Southampton have played 12 games and Ings has scored 10 goals.
Ings has never had a such a successful campaign in the top flight of football and his previous league best was last season when he netted 7 times for the Saints in 24 games, now he has double the figure from two games less. When we take into account his cup goals that figure goes up to 16 for the season so far and he is well on course to beat his best season ever. That occurred in season 2013/14 in the Championship for Burnley when he scored 26 goals in 45 games and it was that type of devastating form that irked the interest of Liverpool in the first place.
Since Ings' move from Liverpool for £18m he has scored 24 goals in 49 games and has an average of 1 goal for every 2 games. But it is in this period of his career where Ings has been earning praise and one wonders if his scoring feats can give him the chance of playing for England at this summers Euro 2020 tournament? He only has 1 cap so far and surely he deserves some place in Gareth Southgate's selection?
As for Southampton boss Ralph Hasenhuttl he was full of good words for Ings' impact a few weeks ago when he said: "This is the result of a guy who is working his ass off. This is exactly how it should be and he's absolutely positive all the time. You can feel and you can see how much he invests to win balls, to work for the team, and in the last games, he has a fantastic run and hopefully it stays on."
Ings certainly deserves all the praise he is getting and long may it continue for one of the Premier League's best loved players.
How well do you know English football? Want to challenge the best English Fantasy Managers? Play www.epl-fantasy.com now.
This entry was posted in EPL Fantasy News and tagged Danny Ings, English Premier League Fantasy Game, leicester, premier league, ralph hasenhuttl, southampton by David Bronstein. Bookmark the permalink.


Lou Doillon, Eugenie Niarchos and Jessica Stam nibbled caviar-coated potatoes and sipped pepper vodka at the party.
Moncler boss Remo Ruffini and the label's Gamme Rouge creative director Giambattista Valli rounded up the fashion flock for one last fling Wednesday night at Caviar Kaspia. Andrea Casiraghi, Lou Doillon, Eugenie Niarchos, Tatiana Santo Domingo, Sasha Pivovarova, Jessica Stam, Natalia Vodianova and Delfina Delettrez nibbled caviar-coated potatoes and sipped pepper vodka.
Designers, models and executives alike were all looking forward to putting their feet up after the chockablock fashion season. "I am an excellent skier," said Valli, posing for a snap with Karolina Kurkova.
Meanwhile, Ruffini said he is eager to head to Saint Moritz for a little R&R. But don't expect the business tycoon to sport a brand-new Moncler puffer on the slopes. He prefers a vintage ski number, for sentimental reasons. "I've worn the same thing for years," he said.


text:
0521-21 NY Times Crossword 21 May 21, Friday
Constructed by: Sam Ezersky
1 Schooner feature : MAST
By definition, a schooner is a sailing vessel with two or more masts, but one on which the foremast is shorter than the rear mast(s).
5 Shock treatment, for short : DEFIB
(54A 5-Across administrator : EMT)
A defibrillator (defib) might be operated by an emergency medical technician (EMT).
15 Stamp collector's purchase : PANE
Stamp collectors (philatelists) might purchase a whole pane of stamps.
17 One going the distance? : MARATHONER
The marathon commemorates the legendary messenger-run by Pheidippides from the site of the Battle of Marathon back to Athens, and is run over 26 miles and 385 yards. The first modern Olympic marathon races were run over a distance that approximated the length of the modern-day Marathon-Athens highway, although the actual length of the race varied from games to games. For the 1908 Olympics in London, a course starting at Windsor Castle and ending in front of the Royal Box at White City Stadium was defined. That course was 26 miles and 385 yards, the standard length now used at all Olympic Games. Organizers of subsequent games continued to vary the length of the race, until a decision was made in 1921 to adopt the distance used in London in 1908.
21 A ton of bricks? : LEGO SET
Lego produces some wonderful specialized sets with which you can build models of celebrated structures, including:
The Statue of Liberty (2,882 pieces)
The Sydney Opera House (2,989 pieces)
The Eiffel Tower (3,428 pieces)
Tower Bridge (4,295 pieces)
The Taj Mahal (5,922 pieces)
22 Source of heart-shaped leaves : ASPEN
The "quaking" aspen tree is so called because the structure of the leaves causes them to move easily in the wind, to "tremble, quake".
25 Name on a vintage red, white and blue cap : PEPSI-COLA
The Pepsi-Cola formulation was developed by one Caleb Bradham who made the drink at home and sold it as Brad's Drink. Bradham's aim was to provide a drink that was pleasant to taste, that would aid digestion and boost energy. Included in the formula were pepsin (a digestive enzyme) and kola nuts. These two ingredients inspired the brand name we use today: Pepsi-Cola.
32 Realm of the Valkyries : NORSE MYTH
In Norse mythology, the valkyries are beautiful female attendants of Odin who choose those who must die in battle and those who must live. Half of those who die go to Fólkvangr, the "army field" ruled over by the goddess Freyja. The other half of those who perish go to Valhalla, the hall of the slain that is ruled over by the god Odin. The etymology of "valkyrie" is Old Norse for "chooser of the slain".
33 2007 film with the tagline "The last man on earth is not alone" : I AM LEGEND
"I Am Legend" is a 1955 science fiction novel by Richard Matheson that tells of an apparent sole survivor of a pandemic. The survivor has to fight off zombie-like vampires who come out at night. "I Am Legend" was famously adapted into a 1971 movie called "The Omega Man" starring Charlton Heston, and then into a 2007 film using the same title as the novel that stars Will Smith.
34 Competitor of Dick's Sporting Goods : REI
REI is a sporting goods store, with the initialism standing for Recreational Equipment Inc. REI was founded in Seattle by Lloyd and Mary Anderson in 1938 as a cooperative that supplies quality climbing gear to outdoor enthusiasts. The first full-time employee hired by the Andersons was Jim Whittaker, who was the first American to climb Mount Everest.
39 Dish rack accessories : TEA TOWELS
What we know as a dish towel, is usually referred to as a tea towel and tea cloth in Britain and Ireland.
41 Eel order at a sushi bar : UNAGI ROLL
"Unagi" is the Japanese term for" freshwater eel", and "anago" is the term for "saltwater eel".
50 "Sir" might be found at the start of it : -LOIN
There's a folk tale that has been going around since the 1600s that the sirloin cut of beef is so called because a king so enjoyed it that he dubbed it a knight. The list of kings associated with "Sir Loin" includes Henry VIII, James I and Charles II.
51 Colleen : LASS
"Cailín" is the Irish word for "girl", and is usually anglicized as "colleen".
53 Mario who wrote "The Godfather" : PUZO
Mario Puzo created the Corleone Mafia family in his 1969 novel "The Godfather". The head of the family is Vito Corleone (whose birth name was Vito Andolini), a native of Corleone in Sicily. He was given the name Corleone by immigration officers at Ellis Island. Don Corleone was played so very memorably, with a distinctive rasping voice, by Marlon Brando in the 1972 movie adaptation directed by Francis Ford Coppola.
2 Victim of a 20th-century environmental tragedy : ARAL SEA
The Aral Sea is a great example of how man can have a devastating effect on his environment. In the early sixties the Aral Sea covered 68,000 square miles of Central Asia. Soviet irrigation projects drained the lake to such an extent that today the total area is less than 7,000 square miles, with 90% of the lake now completely dry. Sad …
6 Org. established partly in response to Rachel Carson's "Silent Spring" : EPA
DDT is dichlorodiphenyltrichloroethane (don't forget now!). DDT was used with great success to control disease-carrying insects during WWII, and when made available for use after the war it became by far the most popular pesticide. And then Rachel Carson published her famous book "Silent Spring", suggesting there was a link between DDT and diminishing populations of certain wildlife. It was the public outcry sparked by the book, and reports of links between DDT and cancer, that led to the ban on the use of the chemical in 1972. That ban is touted as the main reason that the bald eagle was rescued from near extinction.
7 The "Tannen" of Tannenbaum : FIR
"O Tannenbaum" is a traditional German Christmas carol, the title of which is usually translated as "O Christmas Tree". "Tannenbaum" is the German name for a fir tree.
9 Data base? : BYTES
In the world of computing, a bit is the basic unit of information. It has a value of 0 or 1. A "byte" is a small collection of "bits" (usually 8), the number of bits needed to uniquely identify a character of text. The prefix mega- stands for 10 to the power of 6, so a megabyte (meg) is 1,000,000 bytes. The prefix giga- means 10 to the power of 9, and so a gigabyte (gig) is 1,000,000,000 bytes. Well, those are the SI definitions of megabyte and gigabyte. The purists still use 2 to the power of 20 for a megabyte (i.e. 1,048,576), and 2 to the power of 30 for a gigabyte.
10 Quarters that could be worth a lot : MANSION
We use the term "quarters" for a place of abode, especially housing for military personnel. Back in the late 16th century, quarters were a portion (quarter) of a town reserved for a military force.
15 Muckety-muck : POOH-BAH
The term "pooh-bah" (also "poobah"), meaning an ostentatious official, comes from the world of opera. Pooh-Bah is a character in the wonderful Gilbert & Sullivan comic opera "The Mikado". Famously, Pooh-Bah holds many, many offices, including that of "Lord High Everything Else".
18 Fig. on a driver's license : HGT
One's driving license (lic.) usually specifies one's height (hgt.).
20 Sleep aid brand : UNISOM
ZzzQuil, Benadryl, Unisom and Sominex are all brand names for the antihistamine diphenhydramine, which is a drug that also has sedative properties.
30 Peer of Ibsen : GYNT
Henrik Ibsen's play "Peer Gynt" is based on a Scandinavian fairy tale "Per Gynt". The incidental music to the play, written by Edvard Grieg, is some of the most approachable classical music ever written, at least in my humble opinion …
31 Where the Ring is destroyed in "The Lord of the Rings" : MT DOOM
J. R. R. Tolkien's "The Lord of the Rings" is the second best-selling novel ever written, with only "A Tale of Two Cities" by Charles Dickens having sold more copies around the world. Remarkably, I think, the third best-selling novel is "The Hobbit", which was also written by Tolkien.
33 Recovering orthopedically, maybe : IN A CAST
Plaster made using gypsum is commonly referred to as plaster of Paris. The original plaster of Paris came from a large deposit of gypsum mined at Montmartre in Paris, hence the name.
Orthopedics (orth.) is the branch of surgery that deals with the musculoskeletal system. The term "orthopedics" was coined in 1741 by French physician Nicolas Andry. Actually, Andry used the French term "Orthopédie" for the title of a book. The term comes from the Greek "orthos" meaning "straight" and "paidon" meaning "child".
35 Write à la Thomas Gray or John Donne : ELEGIZE
Thomas Gray was an 18th-century poet from England. Gray's most famous work is his "Elegy Written in a Country Churchyard", which is the source of many oft-quoted phrases, including:
John Donne was one of England's most celebrated poets, and was active at the start of the 17th century. He spent much of his life in poverty and even spent a short time in prison for having married his wife without procuring the appropriate permissions. After his release, his wife bore him 12 children in 16 years, passing away a few days after the twelfth child was born.
40 Gives birth to, as puppies : WHELPS
A whelp is a young dog, and also a young wolf, bear, lion, tiger and seal. The term has largely been replaced by "pup" or "puppy".
43 Toxic protein prepared on "Breaking Bad" : RICIN
Ricin is a highly toxic chemical found in the seeds of the castor oil plant. It is so poisonous because it inhibits one of the most basic metabolic processes, the synthesis of protein. One famous use of ricin as a weapon was the assassination of Bulgarian dissident Georgi Markov in London in 1978. An agent of the Bulgarian secret police injected a tiny pellet of ricin into his victim's leg using a modified umbrella.
48 Run, like a Deere? : MOW
John Deere invented the first commercially successful steel plow in 1837. Prior to Deere's invention, farmers used an iron or wooden plow that constantly had to be cleaned as rich soil stuck to its surfaces. The cast-steel plow was revolutionary as its smooth sides solved the problem of "stickiness". The Deere company that John founded uses the slogan "Nothing Runs Like a Deere", and has a leaping deer as its logo.
10 Subject of the 2011 Jon Roberts memoir "American Desperado," with "the" : … MOB
13 Tongue-in-cheek : ARCH
14 "So sad …" : A PITY …
16 Impetus behind a prank, maybe : DARE
19 Refuse to talk : CLAM UP
23 Like water at the shallow end of a pool : WAIST HIGH
27 Weighs (down) : BOGS
28 Lead-in to a crazy idea : SAY …
29 Part of an old circus act : STRONGMAN
37 Be a rat : SING
44 "Land sakes alive!" : OH GEE!
45 Severely self-disciplined sort : ASCETIC
46 Appear : EMERGE
47 Men's grooming items : BEARD COMBS
52 Investor's "No deal" : I'M OUT
54 5-Across administrator : EMT
55 Makeover result, maybe : NEW DO
56 Go on and on bitterly : SPEW
1 Eccentrics : MADCAPS
3 Small but full of fight : SCRAPPY
4 Some bars returned to again and again? : THEMES
5 Conducive to mold, maybe : DAMP
8 One might consist of a primo, secondo and digestivo : ITALIAN MEAL
11 Brownie mix add-in, often : ONE EGG
12 Playoff positions : BERTHS
23 Prognosis that a problem has only just begun : WORSE TO COME
24 Sunburn-soothing substance : ALOE GEL
26 Lead-in to P or C on a PC : CTRL-
32 Constant reminders? : NAGGERS
34 Get back together : REGROUP
36 "Ahhh" : I SEE NOW
37 Fit to be tried : SUABLE
38 Line at a clothing store : INSEAM
42 "___ be nice if …" : IT'D
46 El de aquí : ESTO
49 Homie : BUD
Posted on May 21, 2021 May 20, 2021 Categories Sam EzerskyTags A ton of bricks? crossword clue, Eccentrics crossword clue, Realm of the Valkyries crossword clue, Source of heart-shaped leaves crossword clue, Write à la Thomas Gray or John Donne crossword clue21 Comments on 0521-21 NY Times Crossword 21 May 21, Friday


text:
A long, hard year closes — let's celebrate humanity's connections
By Shada Islam
Brussels, 20. Dec 2022, 13:13
Once their missing plane is finally back on earth, passengers on Flight 828 in the cult US television show Manifest quickly realise their lives are inextricably entangled.
What ties them together is not obvious at first.
The more astute may link the EU Parliament's oddly laid-back attitude towards accountability and transparency to the ease with which Europe's 'enemies' and friends can get up close and personal with MEPs
Their histories, demographics, geographies, and ethnicities are different, their hopes and experiences, distinct and often conflicting.
And yet, as the bewildered passengers learn from the relentless "callings": "it is all connected." Most people haven't received the memo just yet but in science fiction as in real life, it is all connected.
Covid-19 and Russia's invasion of Ukraine have spotlighted our connectivity in myriad ways.
Tackling climate change, eliminating poverty and achieving the sustainable development goals included in Agenda 2030 also require joined up actions.
Other, more nuanced lessons on connections — between people, nations, policies and institutions — are hiding in plain sight.
As a long hard year draws to a close, an uplifting message on humanity's one-ness could go out from EU leaders.
Don't count on it, however.
Forget the talk of synergies, joining forces, repeated references to Team Europe and global solidarity, working — and squabbling — in silos remains the norm on Planet Europe.
So does blaming others.
Take 'Qatargate'. European Parliament president Roberta Metsola has artfully shifted the blame for the EU's epic bribery scandal on nasty "autocratic third countries" which (surprise, surprise) hate democracy.
Unscrupulous foreigners corrupting innocent European lawmakers is a reassuringly comforting Orientalist trope.
The more astute, however, may link the EU Parliament's oddly laid-back attitude towards accountability and transparency to the ease with which Europe's "enemies" and friends can get up close and personal with MEPs — at least some of the time.
If, as some fear, the contagion spreads to other EU bodies, European Commission President Ursula von der Leyen's hopes for another five-year term could be in trouble.
And unless new anti-graft rules are urgently implemented, for too many voters, the 2024 parliamentary élections will inevitably and indelibly be linked to allegations of EU-wide corruption
It is all connected.
Then there's geopolitics, with global power games offering endless opportunities for easy crisscrossing between sectors. No surprises of course that Qatar has warned that the European Parliament scandal will impact negatively on its security cooperation and global energy discussions with the EU.
But stay calm and carry on. Unidentified diplomats have reassured Western media that EU countries' plans to sign long-term LNG contracts with the Gulf nation will remain untouched because, you know, Doha does not mix business and politics.
Of course not. Nobody does — until they do.
The recent commemorative summit between the EU and members of the Association of South East Asian Nations offers some food for reflection.
The gathering managed the difficult feat of securing "most" countries' approval of a joint statement which strongly condemned Russia's war in Ukraine.
That is cause for celebration, of course and declarations of undying friendship followed quickly with EU Council president Charles Michel underlining the uniqueness of EU-ASEAN relations.
Indonesian president Joko "Jokowi" Widodo, however, had some words of caution for the EU on the disconnect between its stated goal of equal ties with his country and the bloc's restrictive environmental and trade policies.
The message, linked to the EU's strict rules on palm oil imports, deforestation policies and a WTO complaint (now upheld) against Jakarta's ban on nickel ore exports, may have something to do with Indonesian elections in 2024.
Yet it is also cautionary tale on how Indonesia and others in the Global South are no longer ready to turn a blind eye to the inconsistencies between the EU's internal policies, the damaging impact they can have on EU partners and the bloc's desperate search for global friends and allies.
As Jokowi pointed out: "If we want to build a good partnership…there should no longer be anyone dictating and assuming that their standard is better than others."
By now it should be clear to even the most inward-focused EU leader/policymaker that Fortress Europe with its policies to keep migrants and refugees out of Europe is a major obstacle in the EU's search for international friends and allies, including through initiatives like the Global Gateway.
The world definitely needs smart, clean and secure links in digital, energy and transport and strong health, education and research systems.
Can the EU's Global Gateway do it better than other nations, China included? Possibly.
But the strategy has — so far- failed to capture the global imagination.
Fortress Europe, with its structural racism, colonial reflexes, ever-higher fences, sinking boats, over-crowded detention camps, pushbacks and repeated violations of human rights, is one major reason.
Ultimately, Europe's global influence does not depend on fancy speeches and learning the "language of power."
As EU diplomats know only too well, Europe's image hinges on the reality of domestic EU policies, not a fictionalized external version.
Fans of Manifest will have to wait until next year to unravel the mystery of what connects all 828 passengers.
Here in real life, there's no suspense involved. For all the corrosive "us and them" games we play, it is our connections, networks and link-ups that make the world go round.
Happy 2023 everyone.
Shada Islam is an independent EU analyst and commentator who runs her own strategy and advisory company New Horizons Project. She is also the editor of the EUobserver magazine.
The views expressed in this opinion piece are the author's, not those of EUobserver.
How to restore the European Parliament's reputation
Editor's weekly digest: Is Qatargate your fault?
'Qatargate' is the tip of the iceberg
Is the overwhelming critique of Qatar hypocritical?
Six reasons why 'where are you really from?' is racist
One of the most striking features of this scandal is the fact that it was the Belgian police — working on this case for months — who spotted what was arguably hiding in plain sight, writes EU Ombudsman, Emily O'Reilly.
All the articles you should not have missed this week.
To those of us who have been working for years to cast a light on EU corruption, this latest scandal is not a shock, or even a surprise — it's just the tip of the iceberg.
Let us be clear, Qatar is not a democracy, it is a conservative Muslim country that does not give foreign workers the rights and protection these workers deserve.
Next time you think people should not be criticised for "just being curious" about someone's origin, ask yourself just why that harmless extra sub-question only ever surfaces around non-white Europeans.


If you like your furniture to be a bit more, err, personal then this book case might be right up your street, the man-shaped shelving solution.
Designed by Susi Berge and Uelo Berger the man thing comprises of 24 different compartments. I must admit I'm not sure why anybody would actually buy one of these which is probably why I'm typing this rather than designing a flower shaped kettle.
Rö, found via Luxury House Trends.


Any particular company dealing in trade finance servicing, offers cash flow solutions for various business such as Asset based Lending, Invoice Finance, and Debt Factoring etc. Such trade finance servicing can work for larger companies as well who want to diversify their operations. The sole purpose of trade financing is to assist the companies and organizations who are involved in trade with finance facilities. Such services offer better negotiations with the markets and complete the deal with confidence in a professional manner.
A good trade financing organization first and foremost analyses the exact requirements of their client and tries to deal with the specific financial problem and cover all aspects of trade. Proper trade financing is like a tailor made solution which looks after all the requirements for your export. With a skilled and qualified trade finance team, the specific requirements of the client are looked after and then the correspondent banks are leveraged. Trade finance servicing also includes pre-shipment credit to its exporters by packing credit and giving them the opportunity to fund few operations such as import of raw goods, buying or raw material, packing the finished goods which are to be exported etc.
Discounting of the export papers under the order of the governing authority.
Providing advances to exports on the various consignments.
The above mentioned operations are the main services of trade financing. Proper trade finance will help an organization carry on international trade smoothly and effectively.
If you fall behind on your mortgage payments, your lender may take steps to foreclose on the property – meaning it may take back your home and sell the property at a public auction.
The foreclosure process doesn't happen overnight. In Colorado, a foreclosure typically starts after you fall behind on your payments for at least two months, and often three or four. This window of opportunity (commonly the reason behind a "strategic default") will provide some time for you try alternate methods, such as loan forbearance, a short sale, or a deed in lieu of foreclosure.
Motion to Lift the Automatic Stay. If the lender obtains the bankruptcy court's permission to proceed with the sale by filing a "Motion to Lift the Automatic Stay", you may lose the customary three to four months. But even then, your bankruptcy filing will typically postpone the sale for at least two months (or more), depending on the speed with which your lender files its Motion to Lift the Automatic Stay.
Foreclosure Notice Already Filed. Unfortunately, bankruptcy's automatic stay won't stop the clock on the advance notice that most states require before a foreclosure sale can be held (or a Motion to Lift the Automatic Stay can be filed).
Many people will do almost anything to stay in their homes for the indefinite future. If this describes you, and you're behind on your mortgage payments with no feasible way to get them current, the only way to keep your home is to file a Chapter 13 bankruptcy.
How Chapter 13 Works. Chapter 13 bankruptcy lets you pay off the "arrearage" (late, unpaid payments) over the length of a repayment plan you propose (usually five years). You will need to demonstrate to the court that you earn enough income to at least meet your current mortgage payment at the same time you're paying off the arrearage. Assuming you make all the required payments up to the end of the repayment plan, you'll be able to avoid foreclosure and keep your home.
Stripping Off Second and Third Mortgage Payments. Chapter 13 may also help you eliminate the payments on your second or third mortgage. This is because, if your first mortgage is secured by the entire value of your home (which is possible if your home has dropped in value recently), you may no longer have any equity with which to secure the later mortgages. In this scenario, the bankruptcy court may allow you to "strip off" the second and third mortgages and re-categorize them as "unsecured debt." Then, under your Chapter 13, you'll be able to discharge these debts after successfully completing your Chapter 13 plan.
Canceling Debt. Chapter 7 bankruptcy will also cancel all the debt that is secured by your home, including your mortgage, as well as any second mortgage(s) and home equity loans.
Canceling Tax Liability for Certain Property Loans. Thanks to a new law, you no longer face tax liability for losses your mortgage or home-improvement lender incurs as a result of your default, whether you file for bankruptcy or not.
This is one way Chapter 7 bankruptcy helps. It exempts you from tax liability on losses the lender incurs if you default on these other loans.
Chapter 7 Cannot Cancel the Foreclosure.
With all this debt being cancelled, you may be wondering why the foreclosure on your home won't be cancelled too. The trouble is, when you bought your home you probably signed two documents (at least)—a promissory note to repay the mortgage loan, and a security agreement that could be recorded as a lien to enforce performance on the promissory note.
Chapter 7 bankruptcy will discharge your personal liability under the promissory note, but it doesn't remove the lien. Chapter 7 will get rid of your debt but not the liens – you'll still probably have to give up the house under the lien because that's what your pledged as collateral for your loan.
If you're certain you won't be able to propose a Chapter 13 repayment plan that a bankruptcy judge will approve, and Chapter 7 will provide only a temporary delay from the foreclosure sale, then what's the point of either?
If you have to lose your home, you can at least view bankruptcy as the best way to get out from under your mortgage debt and tax liability. Bankruptcy also offers a way to save some money, which will help you find new shelter and weather the process of re-building your credit.
Considering filing for bankruptcy? Contact our offices in Denver today for a free consultation.
If you are aiming to be a CEO, Senior Administration or other highest position in a company, then, a business degree that specialized in Business Management could be your degree of choice. Business Management degree will prepare you for managing position in wide range of companies. An advanced degree in business management degree can lead you to achieve the highest position that you are dreaming for in your career path. You can pursue degree in business degree singularly or combine with study of specialization area that inline with your career field.
For those students who plan to start their own business or intend to involve in a new business venture, business degree with concentration in Entrepreneurship can provide the necessary knowledge for to meet their goal. Major courses included in entrepreneurship degrees include training that encompasses aspects of accounting, ethics, economics, operation management, marketing, finance and strategy planning.
Following the enactment o new corporate accounting laws in U.S that including strict rules of clarify financial reports, has increased the demand for qualified accountants, which make the accounting degrees become popular in conjunction with the increase of job opportunities in this field. The key areas of study for business degree with concentration in accounting include managerial accounting, budgeting, financial analysis, auditing, taxation and more. There are three classes of accountants which you can be certified with: Certified Internal Auditor (CIA), Certified Public Accountant (CPA) and Certified Management Accountant (CMA).
Students with finance degrees have advantages of securing a job opportunity as investment banker, budget analyst, real estate professional, financial consultant, loan officer and money market manager. The demand for finance professions are expected to grow rapidly in next 10 years, if you are interested in this field and planning to get a degree in finance, your future career path is almost secured. Most often, the minimum education level for finance career is considered to be a bachelor degree, but an advance degree in finance such as a master degree and Ph.D will equip you with professional credentials to move your finance career to a higher level.
The marketing degree will equip you with the knowledge on advertising, product development & pricing and consumer behavior. You will also learn about product promotion, new product launching and time to market strategies. Most often, many students who pursue marketing degree will combine business management so that they will gain knowledge of product marketing and equip for business strategies and management.
Earning a business degree will increase your competitive in the job market, but business degrees cover a wide range of fields with various concentrations, you need to understand the business degrees options so that you can select the most suitable business degree that fit into your career path.
Riding a motor bike is a hit with most men because of the adrenaline rush that it infuses. However, bikes have also earned a bad name of late as a dangerous vehicle because of the increase in the number of bike accidents lately. So if you are planning to get hold of a bike for you make sure that you drive it safely because fun must always walk hand in hand with sensibility. Since, accidents can never be predicted and sometimes no matter how hard one tries, it is almost impossible to avoid them, it is also a great idea to go for bike insurance.
Bike insurance is when you pay a premium to an insurance company to cover the expenditure that you might have to face in case of a bike accident. God forbid, but if there ever is an accident then it will be the job of the insurance company to meet the expenses instead of the one riding the bike.
While picking bike insurance for yourself it is very important to go through all the features, terms, condition and policies of the cover properly because it often happens that when stuck in an accident, the biker faces disappointment when he figures that his insurance is not covering for a lot of damages that he thought were covered.
There are chiefly three different types of bike insurance – Liability, comprehensive and collision. Opting for the liability cover will ensure that the expenses of the injuries inflicted on the other people in the accident site are covered by the insurance company. Collision cover will meet the expenses needed to treat the scratches on you and your bike. Comprehensive cover will take care of damages inflicted on your bike owing to vandalism, fire and the like.


text:
Courtesy Fiesta San Antonio Commission
Cause to Celebrate
More than just good times and great food, San Antonio's biggest party gives back to the community in millions
Fiesta means more than just "party" in this town. The 11-day festival spells thousands of revelers and an economic impact of nearly $300 million each year. As if we needed an excuse for a party or a reason for a parade, Fiesta delivers more than 100 every spring.
But underlying it all is a deeper meaning. While money bleeds green from pocketbooks like syrup over lime raspas during San Antonio's signature celebration, there are millions being pumped back into the community for scholarships, art programs, historic preservation, AIDS prevention, children's charities and a host of other causes that last long after the last shred of papier-mâché is stripped from the parade floats.
Millions of dollars are given away each year from Fiesta event proceeds with a few hundred thousand each from big, established organizations like the Texas Cavaliers, LULAC's Rey Feo Scholarship Fund and Cornyation, according to the Fiesta San Antonio Commission.
A host of smaller events from animal parades to art shows benefit various causes with thousands of dollars scattered to numerous good causes or college scholarships. Even though many of the groups have fundraising events throughout the year, Fiesta is the big money earner.
"It's the Fiesta Bump for fundraising, kind of like the Colbert Bump," says commission spokeswoman Ann Cannon, referring to the boost in popularity many politicians have seen after appearing on Comedy Central's The Colbert Report with comedic host Steven Colbert.
Even the Fiesta San Antonio Commission helps support about 100 nonprofits that include the Boy Scouts and churches by giving them seat licenses along the parade routes and allowing them to raise money for their causes through resale of the seats. If all the seats are resold, Cannon says it brings in about $600,000 for those groups.
One notable recipient of Fiesta funds each year is the winner of the Miss Fiesta pageant, who gets $3,000 to cover tuition and other expenses at the college of her choice.
Lauren Holt, whose yearlong reign ended March 3, says Miss Fiesta was a blessing to her for more than the money. The senior early childhood education major at University of Texas at San Antonio made more than 200 appearances—about 100 of those during Fiesta—at events and schools.
"It's more a relationship with your city than a beauty pageant, although that's a part of it," Holt said. With a year of numerous visits to schools, Holt feels more prepared for her upcoming student teaching semester the scholarship is helping pay for.
As she made the rounds, there were common questions such as, "Do you live in a castle?" and "Is the tiara real?" She answered yes to both. She also received a few marriage proposals from kids and a few grown men, to which the answer was always a graceful no. "I got rewarded just for being myself," she says.
Perhaps the king of events in fundraising and giving is the Texas Cavaliers River Parade and the associated events with King Antonio and his court.
The Texas Cavaliers 575-member civic organization provides 1,000 parade tickets at no cost to disadvantaged children, and another 1,000 for active duty military, their families and Wounded Warriors. This year, an additional 500 will go to first responders, such as police and firefighters, and their families, says Texas Cavaliers' Commander Steve Dutton.
The Cavaliers have crowned their 90th king, but 23 years ago the group spun off the Texas Cavaliers Charitable Foundation to handle the task of giving money raised to some 31 charities for children, including Any Baby Can and Sunshine Cottage. The organization gave out about $200,000 annually in recent years, but when the economy was better, the gift totals were as high as $350,000, Dutton says.
A vetting process by the foundation also makes members of the Cavaliers, most of them successful businessmen, comfortable with giving on their own to some of the same charities, Dutton says.
Monica Gose, executive director of the foundation, says they also have an art contest among San Antonio-area elementary schools and the top 10 schools get $1,000 each for their often-underfunded art departments.
Last year, that program had an unusual charitable result of its own.
Adams Elementary School art teacher Gabriela Cadena's school had been a previous winner of the art contest, but she and her students decided Fiesta was their time to give back. The class made Fiesta crowns and sold them for $2 each and then presented a check for more than $400 to the Cavaliers to use for children's charities.
The Rey Feo Scholarship Inc. fund has its roots in the 1947 selection of the first Rey Feo or "Ugly King" by the local chapter of the League of United Latin American Citizens. A king is selected through a competition that pits candidates against each other to raise the most money. To date, more than $4 million has been given out in thousands of scholarships.
Cornyation, a raucous comedy with costumes, sets and props paid for and created by the performers, puts on six shows during Fiesta and gives out about $125,000 a year to AIDS and HIV awareness groups such as the San Antonio AIDS Foundation, BEAT AIDS and Hope Action Care.
"Everyone has a great time doing it, but at the same time they do it to give back," says Jesse Mata, who represents the event, which is presided over by the mockingly named King Anchovy.
Smaller events also dot the schedule, but to great effect.
The Texas Corvette Association of San Antonio puts on the only official Fiesta event outside of Bexar County with a car show and raffle. The April 21 car show in Boerne includes a raffle for a 1996 SVT Mustang Cobra with proceeds that usually exceed $80,000, going to the St. Jude's Ranch for Children in Bulverde.
About $2,000 is raised each year, with a portion of proceeds going to the Battered Women's Shelter, through the Randolph Art League art show on Alamo Plaza.
"The shelter needs it and they're probably not one of the better known charities," says Beverly Cobb, vice president of the league.
With many Fiesta events charging less than $20 (40 Fiesta events cost between a few dollars to $150 and the rest are free), fiesta down this April 19-29, and wake up feeling good—it's the hangover of a good deed done
Everything You Need to Know About the 2023 San Antonio Stock Show & Rodeo
The annual rodeo attracts more than 1 million visitors to the AT&T Center grounds each year. Make plans to attend, whether you're catching a PRCA rodeo and concert or simply taking in the scene
Gear Up for Valentine's Day by Naming a Cockroach for Your Ex
The San Antonio Zoo's sweetheart revenge offer is back. Plus, they have some fun opportunities for celebrating love, too


text:
New Arkham Horror Files project teased by publisher in Morse Code
Rumours of a Battlestar Galactica crossover circulate.
Published on 1 Jun, 2021
A mysterious Facebook post from the official Fantasy Flight Games account has teased a new project in the Arkham Horror Files Universe.
Entitled Unfathomable Morse Code: Arkham Horror Files, the teaser was released earlier this week and displays a blue background with a vague pattern that could indicate waves. Alongside the image and accompanying text, the post also features an audio track continuously repeating the Morse Code for SOS. Fantasy Flight Games - the studio responsible for releasing entries in the Arkham Horror Files Universe, as well as unique deck game Keyforge - has yet to reveal an official title or whether the project will be a complete board game or an expansion for an existing entry in the franchise.
The Arkham Horror Files Universe is based on the Cthulhu Mythos and includes horror board games such as Eldritch Horror and Mansions of Madness - a co-op title that has players exploring various locations filled with terrible creatures they must fight or escape from - as well as Arkham Horror: The Card Game and the Elder Sign series. A video game called Arkham Horror: Mother's Embrace was also released earlier this year and has players exploring classic locations such as Arkham Asylum and the Miskatonic University.
Rumours regarding a potential crossover board game between the sci-fi television show Battlestar Galactica and the Arkham Horror Files Universe circulated after the teaser was posted, with Reddit user Zenoy pondering whether the project would be a "social deduction game" set in the world of Battlestar Galactica.
In October last year, a post on BoardGameGeek linked to a screenshot that was apparently leaked by a Fantasy Flight playtester. The screenshot depicted an email discussing a "brand new game set in the Arkham universe that will re-implement the mechanics of Battlestar Galactica: the board game", which is a social deduction game originally released in 2008 that sees players becoming either human or Cylon crewmembers on the last surviving human spaceship. The supposedly leaked screenshot continues to discuss a title called Arkham Horror: Atlantica that will have players attempting to survive an underwater attack and potentially traitorous crewmates on a ship.
Fantasy Flight has not acknowledged the leaked screenshot, or confirmed whether the board game referenced is connected to the project teased in its recent Facebook post. Dicebreaker has reached out to Fantasy Flight Games for comment.
Arkham Horror Files


Explore the outdoors and culture at the foot of Mt. Fuji!
Fujinomiya City is located southwest of Mt. Fuji and has rich forests and mineral water in spirngs fed by Mt. Fuji. The local people have always been respectful of and fascinated by Mt. Fuji, and have lived according to the traditional culture of the area. Fujinomiya has 7 World Heritage Sites in the city. Fujisan Hongu Sengenshita Shrine is one of those sites. It was built 1200 years ago to calm the eruption of Mt. Fuji, in accordance with the culture. This centrally located and stately shrine is respected as a symbol of the city.
Join En-Ya Ecotours powered by local operator Ecologic on English, fully guided cycling and hiking tours through Yuno Village, downtown Fujinomiya and of course Mt. Fuji!


Swipe Gesture combined with Physics -- Update or FixedUpdate ?
My question now: I know that applying force/torque to Rigidbodies should happen in the FixedUpdate() Method. On the other Hand, I'm not sure if some Touch gestures won'T be recognied in Fixed Update(). What is the most elegant solution to my problem?
The important thing here is input checking has to be in Update. Unity only handles it before each Update. If you read input during FixedUpdate, you might use the same input twice, or miss one.
For applying physics changes, I don't know of a similar, univer$$anonymous$$ "if won't work" reason not to do it in Update. I think putting it in Fixed is just often a safe, simple choice.


text:
SoVA ceramics graduate chosen for revered student project network
Just a few months after Katie Pack graduated from the Penn State School of Visual Arts' BFA program with a focus in ceramics in December of 2018, her art career got a major jolt.
Pack is one of five artists selected from a national pool of candidates to participate in the Advanced Student Project Network (ASPN) at Red Lodge Clay Center (RLCC) in Montana.
Located just southwest of Billings, the RLCC has long served as an incubator for budding ceramics artists. The center hosts annually the ASPN, which is a unique three-week residency specifically designed to provide undergraduate artists in a BA or BFA ceramics program with an opportunity to explore new ideas or directions in their work within a group of like-minded, motivated peers.
Each year, universities and colleges from across the country are invited to nominate one advanced junior or senior student from their program. The student nominees are then juried by a committee composed of RLCC staff and one invited juror, who will also attend the residency as a visiting artist and mentor. The 2019 invited juror is Pattie Chalmers, associate professor of ceramics and head of undergraduate studies at Southern Illinois University.
Nominated by Shannon Goff, associate professor of art, Pack will work closely with Chalmers to develop her skills and explore new techniques and scales during the residency, which runs from May 3 until June 1, 2019.
"I remember when I got the email. I was stopped in a McDonald's in the middle of a cross-country road trip back home to Texas, somewhere in Alabama. I burst into laughter I was so happy," Pack said. "I considered it a huge honor to even be nominated by my professor and friend, Shannon Goff. She has been a guiding force in my life since I entered the BFA program at Penn State."
While Pack credits Goff for her guidance and nomination to the ASPN, she is also quick to mention several SoVA women who she said she is "truly lucky to have."
"She and Bonnie Collura, Ann Tarantino, Sidney Mullis, Ciara Newton and countless other women in SoVA have inspired me in both my art and character," Pack said. "Now at the end of my road at Penn State, I look back on my time here with gratitude and love."


San Jose Sharks forward Logan Couture was taken to hospital Saturday after being struck in the mouth by a deflected shot from Brent Burns, CSN's Kevin Kurz confirmed.
Couture appeared to have lost a tooth in the ordeal, but Sharks fans will be hoping his admission to hospital doesn't signify more serious injuries.
It comes as more terrible news from the suddenly reeling Sharks, losers of six straight games. Couture ranks third on the team with 25 goals and 52 points.