text:
#ifndef SUBROUTE_RM_H_
#define SUBROUTE_RM_H_

#include "config.h"
#include "RouteConstants.h"

/**
 * Class containing compact subroutes. Each subroute has an id that
 * identifies it in a list.
 *
 */
class RMSubRoute
{
   friend class SubRouteList;
   friend class LeaderSubRouteList;

   public:
      /**
       * Creates an empty RMSubRoute. The type is SUBROUTELIST.
       */
      RMSubRoute();

      /**
       *   Creates a copy of another subroute. The type is SUBROUTELIST.
       *
       *   @param subRoute the subroute to copy.
       *   @param copyVisitedAndComplete False if visited and complete
       *                                 should be set to false as in the old
       *                                 "copyconstructor".
       */
      RMSubRoute( RMSubRoute* subRoute, bool copyVisitedAndComplete = true );

      /**
       * Deletes the RMSubRoute and releases the used memory.
       */
      virtual ~RMSubRoute() {}

      /**
       * Adds info about a connection that leads to another map.
       *
       * @param mapID wich map the connection leads to.
       * @param nodeID id of the node the connection leads to.
       * @param cost what it costs to reach the node.
       * @param estimatedCost the estimated cost to reach a destination.
       */
      void addExternal(uint32 mapID,
                       uint32 nodeID,
                       uint32 cost,
                       uint32 estimatedCost,
                       int32 lat,
                       int32 lon,
                       uint32 costAsum,
                       uint32 costBsum,
                       uint32 costCsum);

      /**
       * Gets info about a connection that leads to another map.
       *
       * @param index         The index in the connectionvector.
       * @param mapID         The map that the connection leads to
       *                      (outparameter).
       * @param nodeID        The id of the node the connection leads to
       *                      (outparameter).
       * @param cost          The cost if reaching the node (outparameter).
       * @param estimatedCost The estimated cost to reach a destination
       *                      (outparameter).
       * @param lat           The latitude of the (prev) node.
       * @param lon           The longitude of the (prev) node.
       */
      inline void getExternal(uint32 index,
                              uint32 &mapID,
                              uint32 &nodeID,
                              uint32 &cost,
                              uint32 &estimatedCost,
                              int32& lat,
                              int32& lon,
                              uint32& costASum,
                              uint32& costBSum,
                              uint32& costCsum);

      /**
       *   Returns the cost-sums for the costs a-c. (For sortdist).
       *   @param index The index in the connectionvector.
       *   @param costA The sum for cost A.
       *   @param costB The sum for cost B.
       *   @param costC The sum for cost C.
       */
      inline void getCostSums(uint32 index,
                              uint32& costA,
                              uint32& costB,
                              uint32& costC);

      /**
       * Gets info about a connection that leads to another map.
       *
       * @param index         The index in the connectionvector.
       * @param mapID         The map that the connection leads to
       *                      (outparameter).
       * @param nodeID        The id of the node the connection leads to
       *                      (outparameter).
       * @param cost          The cost if reaching the node (outparameter).
       * @param estimatedCost The estimated cost to reach a destination
       *                      (outparameter).
       */
      void getExternal(uint32 index,
                       uint32 &mapID,
                       uint32 &nodeID,
                       uint32 &cost,
                       uint32 &estimatedCost);

      /**
       * Updates the cost variables!!!
       *
       * @param index index in the connectionvector.
       * @param cost what it costs to reach the node.
       * @param estimatedCost the estimated cost to reach a destination.
       */
      void setCost( uint32 index,
                    uint32 cost,
                    uint32 estimatedCost );
      /**
       * Get number of connections in a bordernode.
       *
       * @return The number of connections in a bordernode.
       */
      inline uint32 getNbrConnections() const;

      /**
       *    Set the ID of this sub route.
       *    @param   id  The new ID of this subroute.
       */
      inline void setSubRouteID( uint32 id );

      /**
       *    Get the ID of this sub route.
       *    @return  The ID of this subroute.
       */
      inline uint32 getSubRouteID();

      /**
       *    Set the ID of the RMSubRoute prevoius to this one in the
       *    calculated route.
       *    @param   id The ID of the previous RMSubRoute.
       */
      inline void setPrevSubRouteID( uint32 id );

      /**
       *    Get the ID of the RMSubRoute previous to this one in the
       *    calculated route.
       *    @return  The ID of the previous RMSubRoute.
       */
      inline uint32 getPrevSubRouteID();

      /**
       * @name Get- and set functions for the sucSubRouteID.
       * @memo Get and set the sucSucRouteID.
       * @doc  Get and set the sucSubRouteID.
       */
      //@{
         /**
          * Get the ID of the RMSubRoute sucessive to this one in the
          * calculated route.
          *
          * @return The value of sucSubRouteID.
          */
         inline uint32 getSucSubRouteID();

         /**
          * Set the ID of the RMSubRoute sucessive to this one in the
          * calculated route.
          *
          * @param The new value of sucSubRouteID.
          */
         inline void setSucSubRouteID(uint32 subRouteID);
      //@}

      /**
       *    Find out of this RMSubRoute has been developed for further
       *    routing.
       *    @return True if this RMSubRoute has been developed on other maps.
       */
      inline bool isVisited();

      /**
       *    Set the value of m_visited.
       *    @param visited True if this RMSubRoute is evaluated, false
       *                   otherwise.
       */
      inline void setVisited( bool visited );

      /**
       *    @name Offsets.
       *    @memo Get- and Set-methods for the offsets.
       *    @doc  Some methods to get and set the values of the start
       *          and end offset for this route.
       */
      //@{
         /**
          *    Set the start offset for this route.
          *    @param   offset   The new value of the start offset.
          */
         inline void setStartOffset( uint16 offset );

         /**
          *    Get the start offset for this route.
          *    @return The value of the start offset.
          */
         inline uint16 getStartOffset();

         /**
          *    Set the end offset for this route.
          *    @param   offset   The new value of the start offset.
          */
         inline void setEndOffset( uint16 offset );

         /**
          *    Get the end offset for this route.
          *    @return The value of the end offset.
          */
         inline uint16 getEndOffset();
      //@}

      /**
       *    @name Directions
       *    @memo Get- and Set-methods for the directions.
       *    @doc  Some methods to get and set the values of the start
       *          and end directions for this route.
       */
      //@{
         /**
          *    Set the start direction for this route.
          *    @param   toNode0  True if starting towards node 0, false
          *                      otherwise.
          */
         inline void setStartToNode0( bool toNode0 );

         /**
          *    Get the start direction for this route.
          *    @return True if starting towards node 0, false otherwise.
          */
         inline bool getStartToNode0();

         /**
          *    Set the end direction for this route.
          *    @param   toNode0  True if ending towards node 0, false
          *                      otherwise.
          */
         inline void setEndToNode0( bool toNode0 );

         /**
          *    Get the end direction for this route.
          *    @return True if ending towards node 0, false otherwise.
          */
         inline bool getEndToNode0();
      //@}

      /**
       *    Print data about this subroute to standard out.
       *    @param   simple   Optional parameter that if set to false
       *                      gives more output.
       */
      virtual void dump(bool simple = true);

      /**
       */
      bool checkExternalMapID( uint32 mapID );

      /**
       *    Set the routeComplete.
       *    @param   routeComplete  The new value of the route-compleete
       *                            attribute.
       *    @return  True if the rout is a complete route on one map.
       */
      inline void setRouteComplete(bool complete);

      /**
       *    Get the status of routeComplete.
       *    @return True if the CompleteRMSubRoute is indeed a complete
       *            route.
       */
      inline bool getRouteComplete();

      /**
       */
      void updateFinishedRoutes();

      /**
       */
      inline bool isForward();

      /**
       */
      inline void setForward( bool forward );

      /**
       */
      inline bool isNodeOnLowLevel( uint32 index );

      /**
       *    Get the size of this subroute when saving it in a packet.
       *    @return  The size (in bytes) of this sub route.
       */
      virtual inline uint32 getPacketSize();

      /**
       * @name Get- and set functions for the m_nbrMapsVisited.
       */
      //@{
         /**
          * Get the number of maps visited by this route (this and
          * previous subroutes) so far.
          *
          * @return The number of maps visited.
          */
         inline uint16 getNbrMapsVisited();

         /**
          * Set the number of maps visited so far by the route (this and
          * previous subroutes).
          *
          * @param nbrMaps The new value of number of maps visited.
          */
         inline void setNbrMapsVisited(uint16 nbrMaps);
      //@}

      /**
       * Find out if this RMSubRoute has an external connection to the
       * specified segment.
       *
       * @param mapID  The ID of the map to check if any connection leads
       *               to.
       * @param nodeID The ID of the node to check if any connection leads
       *               to.
       * @return       True if an external connection leads to the segment
       *               with given mapID and nodeID.
       */
      bool findExternal(uint32 mapID, uint32 nodeID) const;

      /**
       * Find out if this RMSubRoute has the same external connections as
       * the one given as parameter.
       *
       * @param  subRoute The RMSubRoute to match external connections with.
       * @return          True if all external connections
       *                  (and their number) are equal, false otherwise.
       */
      bool externalEquals(const RMSubRoute& subRoute) const;

  protected:
      /**
       *    @name External nodes
       *    @memo Vectors with info about the nodes on other maps.
       *    @doc  Vectors with info about the nodes on other maps.
       */
      //@{
         /**
          *    The mapIDs that the nodes belongs to.
          */
         Vector m_extMapID;

         /**
          *    The ID of the node of the external nodes.
          */
         Vector m_extNodeID;

         /**
          *    The cost of getting to one of the external nodes.
          */
         Vector m_extCost;

         /**
          * The estimated cost of getting to one of the external nodes.
          */
         Vector m_extEstimatedCost;

         /**
          *    The latitudes.
          */
         Vector m_lats;

         /**
          *    The longitudes.
          */
         Vector m_lons;

         /**
          *    Sums for costA.
          */
         Vector m_costsA;

         /**
          *    Sums for costB.
          */
         Vector m_costsB;

         /**
          *    Sums for costC.
          */
         Vector m_costsC;

      //@}

      /**
       *    ID of a subroute, in reality this is a vectorindex.
       */
      uint32 m_subRouteID;

      /**
       *    ID of the subroute's ancestor.
       */
      uint32 m_prevSubRouteID;

      /**
       * ID of the RMSubRoute's sucessor in the route. Will only be set when
       * a route is calculated and is to be sent.
       */
      uint32 m_sucSubRouteID;

      /**
       *    True if this subroute is evaluated, false otherwise.
       */
      bool m_visited;

      /**
       *    @name Directions.
       *    @memo The start and end directions.
       *    @doc  Members to store the directions at the start and end
       *          of this subroute.
       */
      //@{
         /**
          *    True if starting towards node0.
          */
         bool m_endToNode0;

         /**
          *    True if ending towards node0.
          */
         bool m_startToNode0;
      //@}

      /**
       *    @name Offsets
       *    @memo The start and end offsets.
       *    @doc  Members to store the offsets at the start and end
       *          of this subroute. Offset is the way to describe the
       *          exact point on the segment in terms of parts of
       *          $2^16$.
       */
      //@{
         /**
          *    The start offset.
          */
         uint16 m_startOffset;

         /**
          *    The end offset.
          */
         uint16 m_endOffset;
      //@}

      /**
       * The number of maps visited by this subroute and all the previous
       * subroutes. (The number of maps the route has passed so forth.)
       */
      uint16 m_nbrMapsVisited;

     /**
      */
      bool m_routeComplete;

      /**
       */
      bool m_forwardRoute;
}; // RMSubRoute

/**
 * Class containing the calculated subroute. Use when sending
 * replypackets to the leader.
 *
 */
class CompleteRMSubRoute : public RMSubRoute
{
   ///Instances will always be stored in a SubRouteList
   friend class SubRouteList;

   public:
      /**
       * Default constructor. Sets members to default values.
       */
      CompleteRMSubRoute();

      /**
       * Constructor. Sets the mapID.
       */
      CompleteRMSubRoute( uint32 mapID );

      /**
       * Constructor. Copies the members from parameter instance.
       *
       * @param subRoute instance to copy.
       * @param completeCopy False if we are supposed to use the old
       *                     "copy"-constructor in RMSubRoute.
       */
      CompleteRMSubRoute( RMSubRoute* subRoute,
                        bool completeCopy = true);

      /**
       * Constructor. Copies the members from parameter instance.
       *
       * @param CompactRMSubRoute instance to copy.
       * @param completeCopy False if we are supposed to use the old
       *                     "copy"-constructor in RMSubRoute.
       */
      CompleteRMSubRoute( CompleteRMSubRoute* completeSubRoute,
                        bool completeCopy );

      /**
       * Destructor. Doesn't do anything at the moment.
       */
      virtual ~CompleteRMSubRoute() {};

      /**
       * Functions that converts an ordinary result list to
       * a CompleteRMSubRoute.
       * @see CalcRoute
       * @param map the map where the route lies
       * @param result the result list that is to be converted
       */
//      void makeRMSubRouteFromRoute( RoutingMap* map, Head* result );

      /**
       * Retrives the itemID of the subroute's origin. Declared as inline.
       */
      inline Vector* getNodeIDs();

      /**
       *    Make sure that the size of the internal node array is at
       *    least as big as a given value.
       *    @param   n  The minimum of positions in the internal node
       *                array.
       */
      inline void setAllocSize(int n);

      /**
       *    Set the element at a given position to a given value.
       *    {\it {\bf NB!} The internal array must be large enough
       *                   before calling this method!}
       *
       *    @param   value The value to insert into node array.
       *    @param   index The position of value in node array.
       */
      inline void setElementAt( uint32 value, uint32 index );

      /**
       * Adds value last.
       */
      inline void addLast( uint32 value );

      /**
       * Retrives the mapID. Declared as inline.
       */
      inline uint32 getMapID();

      /**
       * Retrieve number of nodes in the subroute. Declared as inline.
       *
       * @return number of nodes in the subroute (so far).
       */
      inline uint32 getNbrNodesInRoute();

      /**
       * Adds one node to end this sub route. Declared as inline.
       *
       * @param nodeID Id of the new node.
       */
      inline void addEndNode( uint32 nodeID );

      /**
       *   Returns the last node in the CompleteRMSubRoute.
       */
      inline uint32 getLast() const;

      /**
       * Sets the mapID. Declared as inline.
       */
      inline void setMapID( uint32 mapID );

      /**
       *    Pront data about this compleete sub route to standard
       *    out.
       *    @param   simple   Optional parameter, that if set to false
       *                      give more outdata.
       */
      virtual void dump(bool simple = true);

      /**
       *    Get the size of this subroute when storing in a packet.
       *    @return  The size of this subroute in bytes.
       */
      virtual inline uint32 getPacketSize();

   private:
      /**
       *    The subroute as itemIDs.
       */
      Vector m_nodeIDs;

      /**
       *    The id of the subroute's map.
       */
      uint32 m_mapID;
}; // CompleteRMSubRoute

/**
 * Class that describes a complete proximity route with offset for all
 * the nodes in the route. Most offsets will be MAX\_UINT16 (one can reach
 * the entire segment within the specified cutoff).
 *
 */
class CompleteProximityRMSubRoute : public CompleteRMSubRoute
{
  public:

   /**
    * Default constructor.
    */
   CompleteProximityRMSubRoute();

   /**
    * Constructor that constructs a CompleteRMProximitySubRoute
    * from a CompleteRMSubRoute.
    *
    * @param completeRoute A CompleteRoute to copy and give some extra
    *        fields.
    * @param completeCopy False if the old "copy"-constructor for RMSubRoute
    *                     should be used.
    */
   CompleteProximityRMSubRoute(CompleteRMSubRoute* completeRoute,
                             bool completeCopy);

   /**
    * Destructor for this class.
    */
   ~CompleteProximityRMSubRoute();

   /**
    * Gets the total size this subroute will take in a packet.
    *
    * @return The total size of this subroute (in bytes).
    */
   virtual inline uint32 getPacketSize();

   /**
    * Get the offsets of the nodes in the route.
    *
    * @return A Vector with the offsets in the route.
    */
   inline Vector& getOffsets();

   /**
    * Get the cost vector.
    *
    * @return A Vector with the costs to reach the respective nodes in
    *         the route.
    */
   inline Vector& getNodeCosts();

  private:

// ========================================================================
//                                                       Member variables =
// ========================================================================

   /**
    * A vector with the offsets of the nodes in the route.
    */
   Vector m_offsets;

   /**
    * A vector containing the costs to reach the respective node. The cost
    * for the origin node is zero.
    */
   Vector m_nodeCosts;

}; // CompleteProximityRMSubRoute

// =======================================================================
//                                     Implementation of inlined methods =

// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
//                                                      CompleteRMSubRoute =
inline uint32
CompleteRMSubRoute::getPacketSize()
{
   return RMSubRoute::getPacketSize() + 8 + m_nodeIDs.getSize()*4;
}

inline Vector* CompleteRMSubRoute::getNodeIDs()
{
   return &m_nodeIDs;
}

inline void
CompleteRMSubRoute::setAllocSize(int n)
{
   m_nodeIDs.setAllocSize(n);
}

inline void
CompleteRMSubRoute::setElementAt( uint32 value, uint32 index )
{
   m_nodeIDs.setElementAt( index, value);
}

inline void
CompleteRMSubRoute::addLast( uint32 value )
{
   m_nodeIDs.addLast( value );
}

inline uint32
CompleteRMSubRoute::getMapID()
{
   return m_mapID;
}

inline uint32
CompleteRMSubRoute::getNbrNodesInRoute()
{
   return m_nodeIDs.getSize();
}

inline void
CompleteRMSubRoute::addEndNode( uint32 nodeID )
{
   m_nodeIDs.addLast(nodeID);
}

inline uint32
CompleteRMSubRoute::getLast() const
{
   return m_nodeIDs[m_nodeIDs.getSize() - 1];
}

inline void
CompleteRMSubRoute::setMapID( uint32 mapID )
{
   m_mapID = mapID;
}

// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
//                                             CompleteProximityRMSubRoute =
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

inline uint32
CompleteProximityRMSubRoute::getPacketSize()
{
   return (8 * m_offsets.getSize() + CompleteRMSubRoute::getPacketSize());
      // Same as 4 * (m_offsets.getSize() + m_nodeCosts.getSize())
}

inline Vector&
CompleteProximityRMSubRoute::getOffsets()
{
   return m_offsets;
}

inline Vector&
CompleteProximityRMSubRoute::getNodeCosts()
{
   return m_nodeCosts;
}

// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
//                                                              RMSubRoute =
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

inline uint32
RMSubRoute::getNbrConnections() const
{
   return m_extMapID.getSize();
}

inline void
RMSubRoute::setSubRouteID( uint32 id )
{
   m_subRouteID =  id;
}

inline uint32
RMSubRoute::getSubRouteID()
{
   return m_subRouteID;
}

inline void
RMSubRoute::setPrevSubRouteID( uint32 id )
{
   m_prevSubRouteID =  id;
}

inline uint32
RMSubRoute::getPrevSubRouteID()
{
   return m_prevSubRouteID;
}

inline uint32
RMSubRoute::getSucSubRouteID()
{
   return m_sucSubRouteID;
}

inline void
RMSubRoute::setSucSubRouteID(uint32 subRouteID)
{
   m_sucSubRouteID = subRouteID;
}

inline bool
RMSubRoute::isVisited()
{
   return m_visited;
}

inline void
RMSubRoute::setVisited( bool visited )
{
   m_visited = visited;
}

inline void
RMSubRoute::setStartOffset( uint16 offset )
{
   m_startOffset = offset;
}

inline uint16
RMSubRoute::getStartOffset()
{
   return m_startOffset;
}

inline void
RMSubRoute::setEndOffset( uint16 offset )
{
   m_endOffset = offset;
}

inline uint16
RMSubRoute::getEndOffset()
{
   return m_endOffset;
}

inline void
RMSubRoute::setStartToNode0( bool toNode0 )
{
   m_startToNode0 = toNode0;
}

inline bool
RMSubRoute::getStartToNode0()
{
   return m_startToNode0;
}

inline void
RMSubRoute::setEndToNode0( bool toNode0 )
{
   m_endToNode0 = toNode0;
}

inline bool
RMSubRoute::getEndToNode0()
{
   return m_endToNode0;
}

inline void
RMSubRoute::setRouteComplete(bool complete)
{
   m_routeComplete = complete;
}

inline bool
RMSubRoute::getRouteComplete()
{
   return m_routeComplete;
}

inline bool
RMSubRoute::isForward()
{
   return m_forwardRoute;
}

inline void
RMSubRoute::setForward( bool forward )
{
   m_forwardRoute = forward;
}

inline bool
RMSubRoute::isNodeOnLowLevel( uint32 index )
{
   return IS_LOWER_LEVEL(m_extNodeID[index]);
}

inline uint32
RMSubRoute::getPacketSize()
{
   return 16 + m_extMapID.getSize()*(28+16);
}

inline uint16
RMSubRoute::getNbrMapsVisited()
{
   return m_nbrMapsVisited;
}

inline void
RMSubRoute::setNbrMapsVisited( uint16 nbrMaps )
{
   m_nbrMapsVisited = nbrMaps;
}

inline void
RMSubRoute::getExternal(uint32 index,
                        uint32 &mapID,
                        uint32 &nodeID,
                        uint32 &cost,
                        uint32 &estimatedCost,
                        int32& lat,
                        int32& lon,
                        uint32& costASum,
                        uint32& costBSum,
                        uint32& costCSum)
{
   mapID         = m_extMapID[index];
   nodeID        = m_extNodeID[index];
   cost          = m_extCost[index];
   estimatedCost = m_extEstimatedCost[index];
   lat           = m_lats[index];
   lon           = m_lons[index];
   costASum      = m_costsA[index];
   costBSum      = m_costsB[index];
   costCSum      = m_costsC[index];
}

inline void
RMSubRoute::getCostSums(uint32 index,
                        uint32& costA,
                        uint32& costB,
                        uint32& costC)
{
   if ( index < m_costsA.getSize() ) {
      costA = m_costsA[index];
      costB = m_costsB[index];
      costC = m_costsC[index];
   } else {
      mc2log << error << "RMSR: Reading costs outside vector " << endl;
      costA = costB = costC = 0;
   }
}

inline void
RMSubRoute::getExternal(uint32 index,
                        uint32 &mapID,
                        uint32 &nodeID,
                        uint32 &cost,
                        uint32 &estimatedCost)
{
   int32 lat,lon;
   uint32 dummy;
   getExternal(index, mapID, nodeID, cost, estimatedCost, lat, lon, dummy,
               dummy, dummy);
}

#endif


text:
Q: How can you test command line arguments used? I have some code that creates a configuration, adds some environment variables and then, if they exist, add some command line args. The purpose here is that a command line arg could override an environment variable. So I want to test that if an environment variable and command line arg of the same name are used, that the command line arg overrides the environment variable.
This would most likely be for things like uris and such.
So my code is something like this:
public static DoSomeConfigStuff()
{
    var builder = new ConfigurationBuilder();
    builder.AddEnvironmentVariables();
    var commandLineArgs = Environment.GetCommandLineArgs();

    if(commandLineArgs != null)
    {
        builder.AddCommandLine(commandLineArgs);
    }

    var root = builder.build();

    // set various uris using root.GetValue<string>("some uri name")
}

I want to test this so that when a command line argument is supplied that the uri it has supplied is used, particularly in the situation that it's supplied both as an environment variable and a command line param. Is there anyway to do that? I read that people are effectively mocking command line params by using environment variables but that won't work here as I want to test when both are set.

A: Do you even need this logic? Just add the command line arguments unconditionally, and the IConfiguration will take care of using command line arguments first, then fall back to environment variables. You don't really need to unit test this because this is a function of ConfigurationBuilder, not your code (but you can test it if you want).
var root = new ConfigurationBuilder()
  .AddEnvironmentVariables()
  .AddCommandLine(Environment.GetCommandLineArgs())
  .Build();

If you do need to do this, then separate building the IConfigurationRoot from getting the data from the environment. The former step can be unit tested, the latter does not need to be:
// This method can be unit tested
IConfigurationRoot BuildConfiguration(string[] commandLineArgs)
{
    var builder = new ConfigurationBuilder();
    builder.AddEnvironmentVariables();
    if (commandLineArgs != null)
    {
         builder.AddCommandLine(commandLineArgs);
    }

    return builder.Build()
}

// This method is NOT unit tested
public static DoSomeConfigStuff()
{
    var root = BuildConfiguration(Environment.GetCommandLineArgs());
    // set various uris using root.GetValue<string>("some uri name")
}

redpajama_set_name: RedPajamaStackExchange


Incorporating the key feature of the award winning Ghost wetsuit the SR offers outstanding flexibility, speed, comfort and durability along with Yonda's unrivalled build quality. The removable arms allow you to adapt to the changing environment without having to cut the suit. The SR comes with both whistle and compass and front inner and rear internal pockets.
Incorporating the key feature of the award winning Ghost wetsuit, the SR offers outstanding flexibility, speed, comfort and durability along with Yonda's unrivalled build quality.
The removable arms allow you to adapt to the changing environment without having to cut the suit.
The SR comes with a compass and front inner and rear internal pockets.
Using Yamamoto 1.5mm Cell 39 AQUA PULL neoprene in the arms, shoulders, underarm and separate arms you will not find a more flexible suit. Add the 7mm Aerodome thigh side panels where you wont need to carry a pull bouy and other features such as front zip for ultra lung expansion and comfort on the run and a high tenacity nylon backside panel for sliding down the slopes we have everything covered to give you the edge.


text:
Water Journeys CD Release Party/Al Parrish of Tanglefoot
Sunday, June 6, 2010 @ 12:00AM Sun, Jun 6, 2010 @ 12:00AM
Hugh's Room, 2261 Dundas St. West, Toronto, ON
Coole Park
A fusion of Rock and Celtic from the innovative fire of Aaron Solomon (violinist with Shania Twain, Big Sugar, Jeff Healey). Add Russell Edward Williams ("flawless...inspired guitar playing"-Whole Note magazine), Steve Heathcote (drummer with jazz legends Holly Cole, Guido Basso and Oliver Jones) and you have the magic of Coole Park. Coole Park - a Yeats poem, the intensity of Zeppelin, the enchantment of Jethro Tull - musical storytelling at its best ! This concert launches Coole Park's debut CD. "Water Journeys" pays tribute to our sea-faring history, especially in the tragic tale of "The Empress of Ireland"-Canada's greatest maritime disaster. Yet, it is distinctly contemporary with fiery fiddle tunes, alt-rock originals ("River Song"/"Castaway")and a spirited punk-metal version of Al Parrish's "Traighli Bay". There's truly something for everyone in this multi-genre fusion album, undefinable at it's core, yet if pushed might fall under "New Celtic Rock". Not to be missed!
For those of you Tanglefoot fans who said, "I want to hear that bass player sing more", here's your big chance!
Al Parrish
Al Parrish grew up in Toronto singing in church choirs and playing tuba in the high school band. A friend convinced him to join an after-school rock band, the first of many bands in many genres. In 1989, Al entered the world of folk/roots music when he and three friends created Brean Derg Muc, a Toronto-based, pseudo-Irish band that took the Ontario folk festival scene by storm during two years of brilliant success. A couple of years of freelancing followed. Al met Aaron Solomon, while performing with David Stone, October Browne, Kirk Elliot, Jamie Snider and many others. In 1994, Al joined Tanglefoot and toured across Canada, the US, and the UK until December 2009 when they disbanded. Since then Al has been writing books, recording voice-overs for commercial television and radio, video games and movies, and has launched a solo musical career. Join us as Al kicks it off with Coole Park backing him up. For Coole Park's set, he will join the band on bass. It's going to be a great show! MUSICIANS: Aaron Solomon (vocals,fiddle, guitar, fearless leader)
Russell Edward Williams (lead guitars, coolness personified)
Steve Heathcote (drums, easily the most together of this bunch)
Al Parrish (vocals, big red bass, big red beard)
Rick Bauer (guitar, button accordion, mandolin, tosses tree trunks for fun)
Ray Caldwell (tin whistles, uilleann pipes, citern, only plays instruments that are hard to spell)
$15 advance, $17 at the door

redpajama_set_name: RedPajamaCommonCrawl


text:
Clovis Toons
Jnr Study Centre
Editoral Code of Conduct
Local Gov't Elections set to be postponed again 7:41 am
Suspected hit-and-run on Washington Boulevard 7:24 am
Pfizer-BioNTech begin Omicron vaccine trial 7:12 am
Bullet-riddled body of man found in St James 7:06 am
Abka Fitz-Henley leaves Nationwide after 11 Years 6:52 am
US reports nearly 2 million migrant apprehensions at southern border in 2021 9:44 pm
One laptop per child initiative just 12 per cent of target; minister still confident
WITH lower school students in public schools forced away from face-to-face classes because of the spike in the number of COVID-19 cases across the island, the Ministry of Education is pushing even more on its One Laptop or Tablet per Child Initiative.
The initiative, which is spearheaded by the National Education Trust, has already seen 12,700 devices collected, with the vast majority being distributed. But that is just over 12 per cent of the 100,000 targeted.
Private sector entities, social and service clubs, and individuals have been stepping up to the plate and Minister of Education Fayval Williams is confident that others will donate.
"The One Laptop or Tablet per Child Initiative is going to be an ongoing one. Our goal is to ensure that all of our students have a device… and that they are able to have that as their own to take it home with them so that they will have access to it on weekends or holidays and to be able to use it as an educational device.
"Technology is going to remain an important part of the teaching and learning experience. We have seen a significant adoption of that in the education sector," said Williams on Wednesday at her National Heroes' Circle, Kingston office as she collected 100 tablets donated by the construction firm Stone Plus Limited.
The donation was arranged through the American Chamber of Commerce of Jamaica, and Stone Plus specified that the tablets should go to students of the Dalvey Primary, Lyssons Primary and Trinityville Primary in St Thomas and Georges Plain Primary and Grange Hill Primary in Westmoreland.
Addressing the handover, administrative manager of Stone Plus, Saccherine Chin, said these schools were specially selected after the company decided to make the donation.
"Our director… wanted us to focus on schools that are less likely to be first choice for some organisations [and] I thought it would be prudent to use two of the schools which he attended, Lyssons Primary and Grange Hill Primary," said Chin as she appealed to other entities to provide devices for the children.
"These are our children, this is our legacy. This is our future. Let us together join hands in an effort to preserve it," added Chin. Earlier on Wednesday the education minister participated in the handover of 25 tablets to students of the Gregory Park Primary School in St Catherine. Those tablets were donated by the Kiwanis Club of South St Catherine.
The One Laptop or Tablet per Child Initiative is designed to promote inclusivity in the education sector. By providing needy students with tools to function in the online teaching and learning environment.
We welcome reader comments on the top stories of the day. Some comments may be republished on the website or in the newspaper; email addresses will not be published.
Please understand that comments are moderated and it is not always possible to publish all that have been submitted. We will, however, try to publish comments that are representative of all received.
We ask that comments are civil and free of libellous or hateful material. Also please stick to the topic under discussion.
Please do not write in block capitals since this makes your comment hard to read.
Please don't use the comments to advertise. However, our advertising department can be more than accommodating if emailed: advertising@jamaicaobserver.com.
If readers wish to report offensive comments, suggest a correction or share a story then please email: community@jamaicaobserver.com.
Lastly, read our Terms and Conditions and Privacy Policy
Now you can read the Jamaica Observer ePaper anytime, anywhere. The Jamaica Observer ePaper is available to you at home or at work, and is the same edition as the printed copy available at https://bit.ly/epaper-login
Insensitive!
PAC to hear from PICA bosses about information security breaches
Blackman's top teenage marksman, bodyguard was 'A Mess'
Crime caucus
No retreat!
This Day in History — January 25
Sav mayor refuses to evict squatters
4 killed, 1 hurt in 'ambush' shooting at US house party
Lawmaker's claim of anti-Muslim bias is new blow to UK Gov't
Previous Cartoons »
Copyright © 2020 Jamaica Observer. All Rights Reserved.


It's Time for Career Fairs!
E&A / E&A Life / It's Time for Career Fairs!
We love participating in career fairs, it gives us a chance to meet some really talented future professionals. Look for the E&A booth at the following career fairs over the next few months. We hope to see you there!
Interested in an Internship with E&A?


text:
Business & Practice
They've Got Next: 40 Under 40 Honoree Renee Zaytsev of Thompson Hine
Jonathan Hurtarte / Bloomberg Law
They've Got Next: The 40 Under 40 - Renee Zaytsev of Thompson Hine
By Lisa Helem and Kibkabe Araya
Renee Zaytsev
Age: 39
Law Firm: Thompson Hine
Practice Area: Securities
Title: Partner
Law School: Georgetown University Law Center
Please describe two of your most substantial, recent wins in practice.
I recently won dismissals of multiple shareholder suits filed against Vaxart Inc. and its directors and officers. The suits alleged that Vaxart's board breached its fiduciary duty by granting "spring-loaded" options and amending warrants with an institutional investor while allegedly in possession of material nonpublic information. I argued the motions and, working hand-in-hand with my securities litigation co-chair Riccardo DeBari, we persuaded the Delaware Court of Chancery and the California Superior Court that the shareholder-plaintiffs had not adequately pleaded demand futility and that the claims lacked merit.
I also recently litigated claims brought by Carl Icahn's firm, Icahn Partners, in connection with a proxy contest against Southwest Gas. The litigation helped Icahn secure a settlement with the company in which Icahn gained board seats and succeeded in replacing Southwest's CEO.
What is the most important lesson you learned as a first-year attorney and how does it inform your practice today?
Ignorance is bliss, but knowledge is power. As a first-year associate, I was blissfully unaware of law firm economics and power dynamics. I threw myself into my cases, believing that smarts and hard work were all it took to succeed. This approach served me well as a junior lawyer: I was a standout associate and took pride in the quality of my work and the praise I received for it. But as I rose through the ranks and looked to the future, I could not imagine continuing on a path that left me dependent on the success of others for the rest of my career. I wanted to take the reins of my future by honing my expertise in Delaware corporate litigation, building a brand, and developing my own clients. Looking back to my first year as an attorney, the lesson learned is that naïve contentment is not a substitute for deliberate career choices. In my practice today, I don't let myself get complacent and instead strive to create opportunities for success—for myself and for my colleagues.
How do you define success in your practice?
As a litigator, it would be easy to measure success by wins or losses. But win or lose, success is when I do the best job I can do, when my clients feel confident in their representation, and when the people on my team feel supported and fulfilled. Success for me also means accomplishing these goals without sacrificing my values. I earn my clients' trust by being forthright, not by being a yes woman. I earn the respect of the judges I appear before by being prepared and even keeled, not by being bombastic or indignant. I do my best to create opportunities for younger lawyers, rather than hoard work and experiences. And I try foster good relationships with my opposing counsel, rather than let our clients' disputes get personal.
What are you most proud of as a lawyer?
I am very proud of the way that I have overcome adversity in the workplace and of my efforts to pay forward the lessons I have learned forward through active mentorship of younger attorneys. As a very junior lawyer, I was on the receiving end of inappropriate behavior from a male senior partner. Though I knew it would put my job at risk, I reported the issue and took back my dignity by confronting the senior partner directly. Later in my career, I spoke up when I witnessed certain race- and gender-related injustices inflicted upon others, even though these actions were not without consequences. These experiences have defined the kind of partner that I want to be and inspired me to want to help others—especially women and minorities—who may be facing similar issues. I have spoken about my experiences within the Women's Excellence Network, and I strive to help younger lawyers navigate their own obstacles through my work as a mentor both within my firm and externally through the Legal Mentor Network.
Who is your greatest mentor in the law and what have they taught you?
After the birth of my daughter in 2017, I returned to work with a newfound drive. No longer content with just doing a job, I wanted to build a practice and take control of my career. But with this newfound drive also came new roadblocks from a firm that wasn't equipped to support my ambitions. I overcame these challenges with the support of Ellen Holloman, then a partner at my former firm and now a partner in Cadwalader's Global Litigation Group. Ellen led by example. As a Black woman, she dealt with adversity head-on, confronting injustice with grace and dignity and without ever doubting her own self-worth. Ellen gave me the confidence to lean into my ambition, overcome the obstacles put in my path, and ultimately embrace a new opportunity with a firm that aligns with my values and supports my vision.
Just for fun, tell us your two favorite songs on your summer music playlist.
Stevie Wonder, "Don't You Worry 'Bout a Thing"—I love Stevie Wonder, and thanks to "Sing" now so does my 5-year-old.
Beyoncé, "Love on Top"—It's such a happy song, and it's impossible not to move with the beat.
Renee Zaytsev has tried multiple cases to verdict in federal and state courts. She founded her firm's securities and shareholder litigation group and currently serves as co-chair of the group. As the daughter of Ukrainian immigrants, Renee is especially proud to be involved in humanitarian relief efforts for Ukrainian refugees.
To contact the reporters on this story: Lisa Helem at lhelem@bloombergindustry.com; Kibkabe Araya in Washington at karaya@bloombergindustry.com
Lisa Helem
Kibkabe Araya
Special Projects Assistant Editor
Thompson Hine
state corporate regulation
pleading requirements
demand futility
duties to investors
composition of board
director duties


text:
Court Ruling Against Restaurant Reviewer Leaves French Bloggers Reeling
"Please don't feed the writers." Photo by Flickr user Michelle. CC BY-NC-SA 2.0
If a blogger writes a scathing review of a restaurant, it's natural that the headline would match the tone of the article. After all, a unique, accurate title is part of Google's official advice for improving the positioning of a webpage in its search results.
But a blogger in France called "L'Irrégulière" was ordered to pay damages and court fees totaling 2,500 euros (3,400 U.S. dollars) for doing just that after the restaurant filed a complaint.
Appalled by what she considered to be unwelcoming staff and poor service during a meal at the end of August 2013 in Cap Ferret, the blogger published a biting review of Il Giardino on her French-language literary blog Cultur'elle. The article, titled "The place to avoid in Cap Ferret: Il Giardino", ranked highly in the results of a Google search for the eatery.
This angered the restaurant owner, so she took the blogger to court. The Bordeaux High Court ruled in the owner's favour on 30 June 2014 during an emergency hearing not because of the review itself, which "falls within the scope of freedom of expression" according to the judgement, but because of its title, which was considered to be defamatory.
The blogger, who had no lawyer, withdrew the review on her own accord, although the court did not request her to do so. However, it can be read on tuxicoman's blog here or as a cached version. Reeling from the experience, "L'Irrégulière" decided not to appeal.
Under the French system for emergency hearings, the court rules chiefly on the basis of whether the plaintiff suffered wrongdoing as a result of the actions of the defendant — in this case, an emergency measure was issued, but could be overturned if a full hearing is to take place. Why did the case merit an emergency hearing in the first place? Well-known lawyer and blogger Maître Eolas, who has 142,000 followers on Twitter, offered one answer:
Nouveau : des restaurants poursuivent leurs clients qui osent les critiquer. Il faut dire qu'ils trouvent des juges pour leur donner raison.
— Maitre Eolas (@Maitre_Eolas) 7 Juillet 2014
Newsflash: restaurants are suing customers who dare to criticise them. And it has to be said, they are finding judges who will decide in their favour.
He went on to analyse the case in further detail for L'Express magazine:
Il ne faut pas donner à cette décision une portée plus large qu'elle n'a […] Le droit de critique existe. Il peut être sanctionné en cas d'abus. La distinction classique est quand il y a intention de nuire ou concurrence déloyale si le dénigrement est fait par un concurrent. Ainsi, si cet article avait été publié par quelqu'un qui tient un autre restaurant de pizza du Cap Ferret, on aurait été dans le cas de la concurrence déloyale puisqu'il y aurait volonté de dénigrer pour faire fuir le client. Or ici, c'est une cliente mécontente qui raconte une expérience malheureuse. On a tout à fait le droit d'expliquer pourquoi on n'est pas satisfaits, en mettant le titre que l'on veut.
This ruling should not be given more significance than it actually has […] There is such a thing as a right to criticise. This criticism can be penalised, however, if it becomes abusive. Usually, the distinction lies in whether there is intention to cause harm or, in the case of defamation by a competitor, the creation of unfair competition. So, had this article been published by someone who runs another pizza restaurant in Cap Ferret, it would have been a matter of unfair competition. This is because there would have been intention to defame in order to drive customers away. But in this case, it is a dissatisfied customer describing an unhappy experience. People have every right to explain why they are not satisfied, using whatever title they like.
When other bloggers heard about the matter, they pointed out this type of legal action could overload the justice system. Lady Waterloo, for instance, wrote:
Les juges ont donc condamné cette malheureuse blogueuse, pour L'endroit à éviter au Cap Ferret: Il Giardino, cela en valait il la peine? Je ne le pense pas. Si les juges commencent à s'occuper des blogs qui dénoncent des apéros servis avec du retard sans cacahuètes et du vin trop froid ou trop chaud, j'ai oublié, la Justice sera complètement paralysée.
So the courts have ruled against this poor blogger, for The place to avoid in Cap Ferret: Il Giardino. Was it worth the trouble? I don't think so. If judges start getting involved with blogs criticising delays in serving aperitifs with no peanuts, and wine that's too cold or too warm (I can't remember which), the justice system will grind to a complete halt.
Others referred to the frequent misunderstandings between tourists, restaurateurs and the Internet, like Le Parisien libéral:
La vérité, c'est que désormais, tout resto, tout hôtel, doit faire avec l'existence du Net. Au lieu de faire une pub monstrueuse pour l'Irrégulière, pourquoi Il Giardino n'a pas crée son propre site web, ou fait le dos rond en attendant que ses clients qui ont aimé le resto s'expriment, comme Berthomeau.
The truth of the matter is that from now on, every restaurant and hotel must take account of the existence of the Internet. Instead of creating massive publicity for l'Irrégulière, why didn't Il Giardino create its own website, or weather the storm while waiting for favourable customers to give their opinions, like Berthomeau.
Google search result for "Il Giardino Cap-Ferret", 18 July 2014: post still visible – screenshot taken by author
Can Google results be used to attack a blogger? The owner of the restaurant justified herself, saying the article was doing her business harm. "People are allowed to criticise, but there is a way of doing it, with respect, and that was not the case here. Now the court has made a decision and as far as I'm concerned, the matter is closed," she said.
In fact, the article and the controversy over the judgement still have a high position in the Google search results. SEO expert Tubbydev was amazed at the lack of knowledge of how a search engines work:
Mais surtout, le vrai scandale à notre humble avis est tout entier dans le bout de phrase de la restauratrice: Mais cet article montait dans les résultats Google ..C'est Google qui montre le résultat, avec et par ses algorithmes mais c'est le contenu initial qui est "puni". Personne ne demande à Google de corriger .. Et a priori aucune demande n'a été faite à Google. […]
Google est devenu un Dieu ou tout du moins un des éléments de la nature…Non seulement, il est donc IRRESPONSABLE mais en plus, sa force est telle qu'il attise encore plus la censure et les problèmes contre les malheureux qui y sont bien considérés .. Le monde à l'envers non ?
But the real scandal, in our humble opinion, lies in the remark made by the restaurant owner: "But this article was rising in the Google search results." It's Google that displays the result, with and through its algorithms, and yet it is the original content that gets "punished". Nobody asks Google to make corrections. And, a priori, no request has been made to Google. […]
Google has turned into some kind of god, or force of nature. Not only is it IRRESPONSIBLE, but its power is such that it encourages more censorship and creates problems for those unfortunate enough to be well regarded. The world has turned upside down, no?
While efficacitic.fr advises caution when it comes to reviews, Elisabeth Porteneuve, a self-described "Internet veteran," anticipates that businesses may begin exploiting the so-called "right to be forgotten".
@Maitre_Eolas L'étape suivante: droit à l'oubli, enlever la critique de @Google avec l'aide de la @CNIL … des juges et législateurs!
— Elisabeth Porteneuve (@EPorteneuve) 7 Juillet 2014
The next step: the right to be forgotten, removal of the review from Google with the help of the [French data privacy authority] National Commission on Informatics and Liberty … the judges and the legislators!
The European Court of Justice ruled in May that individuals may request that search engines delete certain search results if they are found to be "inadequate, irrelevant or no longer relevant, or excessive in relation to the purposes for which they were processed." Google, the plaintiff in the case before the court, has now implemented systems for reviewing and enacting requests. Modifications to search results will be implemented only within the EU.
While the implications of this case regarding freedom of expression on the Internet are still a matter for debate, the publicity continues to have a detrimental effect on the restaurant. Although it is no longer readable on Culturelle, the controversial post title remains visible in Google.fr search results.
Written bySuzanne Lehn
Translated (en) byElizabeth Tamblin
Read this post in English, Català, Español, Français


This Kichler Piper oval 6 light island chandelier pendant in espresso finish with glass rods and drops boasts modern feminine style and graceful good looks. Featuring a circular ceiling mount, rod suspension and oval frame housing the lamp bulbs, with an outer rim of espresso finish hanging metal rods tipped with delicate glass drops. Linear clear glass rods feature in between each of the metal rods to create a wonderful sparkling light.
The Piper mixes modern style and feminine grace by the use of delicate glass accents and rich espresso finish. This distinctive design makes an eye-catching focal point in any room with sufficient ceiling height and supplies stunning illumination that reflects beautifully through the glass beads. Ideal as an island chandelier over a dining table, in a hallway, bedroom or living room.
Supplied with two 25cm and two 30cm rods that can be used in any combination to achieve the perfect drop; please see the technical information for exact dimensions. A truly magnificent feature addition that complements any style of interior.
There are matching fittings in the Piper lighting collection that includes a long drop eighteen-light stairwell chandelier, a six-light pendant chandelier, semi-flush mount and wall light; please see below to view the complete range.
This stunning light is supplied by Elstead Lighting and designed in the USA by Feiss, founded in New York in 1955. They have become well known over the years for their contemporary yet classic styling, quality and great original designs like the Piper oval 6 light island chandelier pendant in espresso finish with glass rods and drops you see here.


Sounds like an intro to an AA meeting, doesn't it?
Electric blue is super hot and goes deliciously with my soul mate.
Who's spruced up to their wardrobe collection for the New Year?
You don't need to go to Disney Land to meet Mickey.Who's been to the pop-up Disney Store and Disney Cafe in Harrods?
I don't know who was more stuffed, me or the turkey! I had an awesome dinner. Hope you all had a great christmas.
No Christmas is complete without a Christmas cake!


text:
200 years of The Lancet
The Lancet Child & Adolescent Health
The Lancet Diabetes & Endocrinology
The Lancet Digital Health
The Lancet Gastroenterology & Hepatology
The Lancet Global Health
The Lancet Haematology
The Lancet Healthy Longevity
The Lancet HIV
The Lancet Infectious Diseases
The Lancet Microbe
The Lancet Neurology
The Lancet Oncology
The Lancet Planetary Health
The Lancet Public Health
The Lancet Regional Health – Americas
The Lancet Regional Health – Europe
The Lancet Regional Health – Southeast Asia
The Lancet Regional Health – Western Pacific
The Lancet Respiratory Medicine
The Lancet Rheumatology
eBioMedicine
eClinicalMedicine
The Lancet Clinic
Picture Quiz
Lancet Countdown
The Lancet Discovery Science
The Lancet Regional Health
Publishing excellence
Preprints with The Lancet
The Lancet Home
Comment| Volume 388, ISSUE 10049, P1032-1033, September 10, 2016
On both sides of the prison walls—prisoners and HIV
Pamela Das
The Lancet, London EC2Y 5AS, UK
Richard Horton
Published:July 14, 2016DOI:https://doi.org/10.1016/S0140-6736(16)30892-3
Previous ArticleThe global burden of viral hepatitis: better estimates to guide hepatitis elimination efforts
Next ArticlePrisoners, prisons, and HIV: time for reform
Few would refute that the most neglected and vulnerable of all populations in the global HIV/AIDS response are people who are incarcerated. Today, The Lancet continues its ongoing attention to HIV in marginalised populations with a collection of reviews on HIV and related infections in prisoners.
Dolan K
Wirtz AL
Moazen B
Global burden of HIV, viral hepatitis, and tuberculosis in prisoners and detainees.
Lancet. 2016; (published online July 14.)
http://dx.doi.org/10.1016/S0140-6736(16)30466-4
Rich JD
Beckwith CG
Macmadu A
Clinical care of incarcerated people with HIV, viral hepatitis, or tuberculosis.
Kamarulzaman A
Reid SE
Schwitters A
Prevention of transmission of HIV, hepatitis B virus, hepatitis C virus, and tuberculosis in prisoners.
Rubenstein LS
Amon JJ
McLemore M
HIV, prisoners, and human rights.
Telisinghe L
Charalambous S
Topp SM
HIV and tuberculosis in prisons in sub-Saharan Africa.
Altice FL
Azbel L
Stone J
The perfect storm: incarceration and the high-risk environment perpetuating transmission of HIV, hepatitis C virus, and tuberculosis in Eastern Europe and Central Asia.
http://dx.doi.org/10.1016/S0140-6736(16)30856-X7
Prison populations are at especially high risk of HIV infections as a consequence of risk factors that are in play both before incarceration and once in prison where there are frequent opportunities for further transmission. Consequently, prisoners experience high HIV disease burdens. They have little or no access to HIV treatment, prevention, and care, and due to their legal status they are discriminated against by the criminal justice system, which in turn perpetuates the high HIV transmission rates. Globally, about 10·2 million men, women, and children are in prisons, detention, or some form of government custody at any given time.
Annually, an estimated 30 million people pass through some form of detention.
UNODCILOUNDPWHOUNAIDS
HIV prevention, treatment and care in prisons and other closed settings: a comprehensive package of interventions. United Nations Office on Drugs and Crime, Vienna2013
This article is available free of charge.
Simply log in to access the full article, or register for free if you do not yet have a username and password.
Log in to existing account
One-time access price info
For academic or personal research use, select 'Academic and Personal'
For corporate R&D use, select 'Corporate R&D Professionals'
UNODC
UNAIDS
Csete J
Kazatchkine M
Public health and international drug policy.
Global AIDS update 2016.
http://www.unaids.org/en/resources/documents/2016/Global-AIDS-update-2016
(accessed June 21, 2016).
Political declaration on HIV and AIDS: on the fast-track to accelerate the fight against HIV and to end the AIDS epidemic by 2030.
http://www.unaids.org/en/resources/documents/2016/2016-political-declaration-HIV-AIDS
Beyrer C
McKee M
for the Lancet HIV in Prisoners Group
Prisoners, prisons, and HIV: time for reform.
DOI: https://doi.org/10.1016/S0140-6736(16)30892-3
© 2016 Elsevier Ltd. All rights reserved.
Prisoners, prisons, and HIV: time for reform
Prisoners and detainees worldwide have higher burdens of HIV, viral hepatitis, and tuberculosis than the communities from which they come. This disease burden among prisoners has been recognised since the early years of these inter-related pandemics.1 Yet the health needs of prisoners receive little attention from researchers or advocates working to improve responses for these diseases, and scant funding for prevention or treatment interventions. This Lancet Series on HIV and related infections in prisoners1–6 shows that the reasons for this neglect include the very factors that make prisoners and detainees vulnerable to infection and unable to get treatment: unjust and inappropriate laws; underfunded and overcrowded prisons with large numbers of individuals in lengthy pre-trial detention; policing practices that lead to imprisonment with compulsory drug detention centres that provide no evidence-based treatment for substance use disorders and inadequate health care; and discriminatory criminal justice systems.
African Americans, HIV, and mass incarceration
The disproportionate rates of HIV infection among African Americans are perplexing. In 2014, about 44% of new HIV infections and 48% of AIDS diagnoses in the USA were among African Americans, although they represent just 12% of the overall population.1 The US Centers for Disease Control and Prevention (CDC) reports, in 2016, that the HIV incidence rate for black men is more than six times that of white men, and more than twice that of Hispanic men.2 The HIV incidence rate for black women is 20 times that of white women, and nearly five times that of Hispanic women.
Global burden of HIV, viral hepatitis, and tuberculosis in prisoners and detainees
The prison setting presents not only challenges, but also opportunities, for the prevention and treatment of HIV, viral hepatitis, and tuberculosis. We did a comprehensive literature search of data published between 2005 and 2015 to understand the global epidemiology of HIV, hepatitis C virus (HCV), hepatitis B virus (HBV), and tuberculosis in prisoners. We further modelled the contribution of imprisonment and the potential impact of prevention interventions on HIV transmission in this population.
Clinical care of incarcerated people with HIV, viral hepatitis, or tuberculosis
The burden of HIV/AIDS and other transmissible diseases is higher in prison and jail settings than in the non-incarcerated communities that surround them. In this comprehensive review, we discuss available literature on the topic of clinical management of people infected with HIV, hepatitis B and C viruses, and tuberculosis in incarcerated settings in addition to co-occurrence of one or more of these infections. Methods such as screening practices and provision of treatment during detainment periods are reviewed to identify the effect of community-based treatment when returning inmates into the general population.
Prevention of transmission of HIV, hepatitis B virus, hepatitis C virus, and tuberculosis in prisoners
The prevalence of HIV, hepatitis B virus, hepatitis C virus, and tuberculosis are higher in prisons than in the general population in most countries worldwide. Prisons have emerged as a risk environment for these infections to be further concentrated, amplified, and then transmitted to the community after prisoners are released. In the absence of alternatives to incarceration, prisons and detention facilities could be leveraged to promote primary and secondary prevention strategies for these infections to improve prisoners health and reduce risk throughout incarceration and on release.
HIV, prisoners, and human rights
Worldwide, a disproportionate burden of HIV, tuberculosis, and hepatitis is present among current and former prisoners. This problem results from laws, policies, and policing practices that unjustly and discriminatorily detain individuals and fail to ensure continuity of prevention, care, and treatment upon detention, throughout imprisonment, and upon release. These government actions, and the failure to ensure humane prison conditions, constitute violations of human rights to be free of discrimination and cruel and inhuman treatment, to due process of law, and to health.
HIV and tuberculosis in prisons in sub-Saharan Africa
Given the dual epidemics of HIV and tuberculosis in sub-Saharan Africa and evidence suggesting a disproportionate burden of these diseases among detainees in the region, we aimed to investigate the epidemiology of HIV and tuberculosis in prison populations, describe services available and challenges to service delivery, and identify priority areas for programmatically relevant research in sub-Saharan African prisons. To this end, we reviewed literature on HIV and tuberculosis in sub-Saharan African prisons published between 2011 and 2015, and identified data from only 24 of the 49 countries in the region.
The perfect storm: incarceration and the high-risk environment perpetuating transmission of HIV, hepatitis C virus, and tuberculosis in Eastern Europe and Central Asia
Despite global reductions in HIV incidence and mortality, the 15 UNAIDS-designated countries of Eastern Europe and Central Asia (EECA) that gained independence from the Soviet Union in 1991 constitute the only region where both continue to rise. HIV transmission in EECA is fuelled primarily by injection of opioids, with harsh criminalisation of drug use that has resulted in extraordinarily high levels of incarceration. Consequently, people who inject drugs, including those with HIV, hepatitis C virus, and tuberculosis, are concentrated within prisons.
Lancet Journals
CLINICAL INITIATIVES
GLOBAL HEALTH INITIATIVES
Global Health Hub
Climate Countdown
Statement on offensive historical content
Access our content
Existing print subscribers
Request institutional access
Lancet Alerts
Our global team
We use cookies to help provide and enhance our service and tailor content and ads. To update your cookie settings, please visit the Cookie Preference Center for this site.
Privacy Policy Terms and Conditions Accessibility


For years, marketers have watched as Google has changed its algorithms, and they have adjusted accordingly. Why? Because they want to get on at least first page of results when a search is performed.
They have researched the best keywords/phrases and carefully placed them into their content; they have written gobs of great content, hoping to get enough interest in what they are saying; they have used influencers; they have posted on others' blogs; they have found their possible customers on social media and use those channels to attract them; they have tried to get lots of backlinks from good, solid sites and blogs.
But here's the thing. Every other marketer is following the same "rules." And the ocean of content out there is all competing for a great SERP position.
So, as a marketer, how do you get to your target audience, and, even more important, how do you pop up on the first page of search results? It's going to involve data and analyzing that data carefully.
It's not just search engine algorithms that have changed. Consumers no longer search the same way either. In the past, they might type in a generic product such as "laundry detergent." You can imagine how many websites popped up. And, in the past, the website that had that term most often in its content, would get a good position.
But no one searches that way anymore. Now, consumers use longer phrases to be more specific. For example, the results for "Best laundry detergents for sensitive skin" will still bring up the paid advertisers in the top positions. But, once those few are listed, the remaining listings will be a blend of websites that feature those products and blog posts that address the topic too.
What this means for marketers is that they must produce content that is really going to answer the types of questions that consumers have.
Finding those questions is what data research and analysis are all about.
Fortunately, for marketers today, there are some great data gathering tools that make this quite easy. Marketers can use them to find out exactly what types of issues or problems their possible customers have, what their needs are, and what questions they are asking. When this data is all gathered, marketers can address issues and questions specifically in their content.
Take a bank that makes mortgage loans as an example. Consumers may be asking questions such as, "Where can I find a no-money down loan?" or "Where can I find the best interest rate for a 15-year fixed rate mortgage?" Data will tell lending marketers how many people are asking for these things. If the numbers warrant it, then content should be created that addresses those lending products that the marketer's institution offers. Or, it may even drive decisions about new loan products that should be offered.
When content addresses issues and answers questions that consumers are asking, the chances of moving up on those SERP results get a great boost.
Data gathering and analysis will give marketers topics for content. Once they have ideas for writing, they need to figure out how to best create and format the content. There are several things to remember about how consumers want to receive and digest content.
Consumers are using mobile devices more and more, and they do not want to read walls of text. And, what's more important, they will not share such content, nor will they return to your website for more.These things matter for SEO.
#1. Titles and headings. These are nothing new but they are still important. If you do have to have text, then it has to be broken up. Readers/viewers want to scan and "snack" on content. When you have that content broken up with headings, they can do just that. And if you number or bullet-list your points, they can read easily.
Who really wants to read through this wall of text to figure out what this restaurant offers?
#2. Keywords on each page. These keywords should be based on the data you collected on what your audience's issues or questions are. Obviously, they will be longer-tail phrases. Getting them on every page will attract those search bots.
#3. Include technology trends for content. It means giving your readers/viewers a chance to interact with your content through surveys, contests, etc. With newer AR/VR tools, you can easily give them great experiences. Again, they will share, link, and spread your content, and you will increase your visitor numbers.
#5. Remember this: search engine bots do not rank visuals; they index text. So, every visual must have alt text. This is how those visuals can make a difference in your content.
#6. Use Google Analytics or other analytical tools to find out which of your content pieces are the most popular with your audience. You will then know what types of content you should continue to produce.
There are plenty of tools to test your website performance. Google Analytics will give you an amazing amount of data.
You will be able to identify what search terms are bringing visitors to your site and where those visitors are coming from.
All of this data will tell you what you need to improve, as well as what is working well.
#1. What keywords/phrases are they ranking for? These will give you ideas for content topics along with keyword phrases you should be using.
#2. What phrases are the bidding on in PPC and other digital advertising? This may tell you where to invest direct advertising dollars.
#4. What content is getting the most shares on social media? And who is following and sharing their content? This will give you idea for topics, as well as who to target with your content.
#5. If you are competing for a global audience, are they getting more play? This may tell you to look for the best translation site you can find to get better localization for your site.
#6. You can get data on traffic estimates, the visitor demographics, when visitors are most active, etc. When you have this information, you will be able to target your audience when and where they are online. This is especially helpful when posting on social media.
There are a good number of tools that will analyze your competition. They make it easy to get the data you need.
If you can link out to reputable sources that are related to your niche, you will check off another SEO ranking factor. Here's how you do that. You find those resources through keyword phrases that relate to your niche.
And when you find solid resources, you link out to them from your content, using the same keyword phrases you used to find them in the first place. This alerts search engines that your links are to reputable sources.
Things change quickly. What is the most popular keyword phrase today may not be popular next month. Consumer issues and pain points may change. New competition may raise its head. You have to stay on top of the data because it will drive your marketing decisions and strategies.
If there is one thing to take away from all of this information, it is this: SEO algorithms are becoming more and more sophisticated. And they cannot be ignored. Gathering the data that shows you what will be most effective for marketing is not optional.
Your goal is to stay competitive and to grow your customer base. That base is grown when potential customers can find you through their searches. And today, you must use data and act on it to improve those search rankings.


With Andy Narell–who's been playing calypso music from Trinidad since he was barely tall enough to reach the pan–it's always been about expanding the role of the steelpan in jazz. Now, with the release of University of Calypso, Narell joins forces with calypso legend Relator to explore the role of jazz in vintage calypso. Together, they perform 15 classic compositions by Lord Kitchener, Lord Melody, Mighty Terror, Roaring Lion, Spider, and Relator, supported by a group of world-class Latin-jazz cats who can swing the calypso and blow le jazz hot. It's been over 50 years since a major calypsonian went into the studio with a bunch of jazz players. This CD is cause for serious celebration!
Hopefully, University of Calypso will help Narell and Relator bring this marvelous music to a new audience, all year round. "I believe this project has great potential to reach people," says Narell. "The music is so accessible, people can latch on to so many different things–the beautiful melodies, the groove for dancing, the stories told in the lyrics, the humor, the jazz elements, how the band plays together and interacts, the soloing–and on top of it all, we've got an incredibly dynamic guy out front singing these songs, a real storyteller in the great calypso tradition. I wanted to record some of this music right away in order to breathe life into the project and get it off the ground, but the real goal in my mind is to get in front of people and play it live.


Multifunctional protein which is primarily part of the aminoacyl-tRNA synthetase multienzyme complex, also know as multisynthetase complex, that catalyzes the attachment of the cognate amino acid to the corresponding tRNA in a two-step reaction: the amino acid is first activated by ATP to form a covalent intermediate with AMP and is then transferred to the acceptor end of the cognate tRNA (PubMed:1756734, PubMed:24100331, PubMed:23263184). The phosphorylation of EPRS, induced by interferon-gamma, dissociates the protein from the aminoacyl-tRNA synthetase multienzyme complex and recruits it to the GAIT complex that binds to stem loop-containing GAIT elements in the 3'-UTR of diverse inflammatory mRNAs (such as ceruplasmin), suppressing their translation. Interferon-gamma can therefore redirect, in specific cells, the EPRS function from protein synthesis to translation inhibition (PubMed:15479637, PubMed:23071094). Also functions as an effector of the mTORC1 signaling pathway by promoting, through SLC27A1, the uptake of long-chain fatty acid by adipocytes. Thereby, it also plays a role in fat metabolism and more indirectly influences lifespan (PubMed:28178239).


Let's face it, meetings are (usually) boring. You either play with your phone, yawn excessively or count imaginary sheep right above your head. I guess the biggest challenge in every meeting is how to engage the audience with your content. So, when I received our department meeting invite that was coincidentally scheduled on Halloween's Day, I got super excited and pitched the idea of using a Halloween theme presentation to my department head…and she agreed!
I know, I know…I've been MIA for like an eternity (blame the darn ravioli!) In my earlier post (zion ages ago), I've highlighted some interesting ways to spice up your regular agenda slide. Now, I'll show you how to create a slide footer that is slightly different from the conventional ones – using a shape and fill it with gradient.
Let me tell you this. I was totally flabbergasted when I was approached by the Head of Department who seeks for my permission to use my agenda slide for her department meeting. W. O. W. Totally. Floored. I think it would be a good idea to share some interesting agenda slides that I've created for work and especially for this post. Now, let's deviate from the normal (boring) agendas and get kicking with these interesting ones!
While there are countless tips and tricks out there, these three are perhaps the most widely used based on my experience so far.
So here's the scenario. You are editing a slide that you've inherited from somebody else in your workplace. Then, you decided to create a list item with five bullets and you stumbled upon the weirdest thing ever – the bullet does not appear in the second line of text onwards! You've clicked the Bullets and Format Painter button, and tried the copy and paste method, but nothing works. What could be wrong?


text:
So, what are they thinking?
As capital becomes scarce in the global markets, foreign portfolio investors—the lifeblood running through domestic equities—turn their backs on India. This has got more to do with the stress in the financial system in their own backyard than any fundamental issues with the domestic market. Will they return, or should we be waiting for them at all? Rachna Monga goes into the details.
Rachna Monga | Print Edition: November 16, 2008
Try this for size: if the inflows of foreign institutional investors (FIIs) into Indian equities over the past five years were up for grabs on Wall Street, Lehman Brothers Holdings might not have gone under. Or Merrill Lynch wouldn't have been compelled to rush into the arms of Bank of America. Since 2003, FIIs have pumped all of $51 billion (Rs 2,49,900 crore) into Indian stocks. That's a lot of money—just $7 billion (Rs 34,300 crore) short of the $58 billion (Rs 2,84,200 crore) worth of toxic mortgage-backed securities that dragged Lehman down; or perhaps Merrill could have used up the $51 billion to offset the $40 billion (Rs 1,96,000 crore) of sub-prime related writedowns Wall Street's #3 investment bank was forced to make.
Arun Mehra
That, of course, was till 2007. It's a slightly different story now, what with the FIIs pulling some $12 billion (Rs 58,800 crore) out of Indian equities till October 23, 2008. Perhaps, if the Indian stock markets were an investment bank on Wall Street, a bailout would be in order. The correlation between FII inflows and the movement of the Sensex, is clear as crystal. The $51 billion that flowed in propelled the 30-share index from sub-4,000 level in 2003 to 20,000 by early-2008. The outflows of 2008 have resulted in the Sensex sinking to 8,700-level at the time of writing. Reports at the time of going to the press suggested that Securities and Exchange Board of India (SEBI) may consider a ban on overseas stock lending and borrowing done by foreign investors. This further added to the negative sentiment.
If the foreign investor is bidding adieu to India, it's got more to do with the stress in the financial system in his own backyard than any fundamental issues with the domestic market. What's more, they're fleeing from other hitherto-attractive havens, too. According to EPFR Global, a firm that collates asset allocation data, foreign investors have withdrawn $29.5 billion (Rs 1,44,550 crore) from emerging stocks and bonds over the past three months.
Sridhar Sivaram
Government bailouts in the US and Europe may provide some relief in terms of liquidity, but for markets there may be more pain in store. While the chances of more banks going bust can't be ruled out, the adventurous hedge fund universe— known for its high-risk, high return maneouvres—hasn't yet got caught in the tornado. Analysts expect that to happen in the days ahead.
So, have the FIIs gone for good, or will they be back in better times? Or perhaps the question to ask is: will the times get better, at all? That it could be 3-4 quarters before they're back is just one estimate. Arun Mehra, Fund Manager at Fidelity India Focus Fund, a dollardenominated and India-dedicated offshore fund, is surprised by the ferocity of the FII exodus. "Since India is not an export-oriented economy, we should have held up better. The way stock prices had moved towards end-2007, the correction was waiting to happen; but we didn't anticipate the turmoil will make foreign investors flee markets like India," says Mehra, whose fund has assets worth $2.89 billion (Rs 14,161 crore) invested in Indian companies.
Adrian Lim
A slowdown in industrial growth and corporate earnings may have taken some steam out of the rally in domestic markets. But the panic in global markets in September and October—which account for roughly 50 per cent of FII sales in 2008— clearly took its toll of investor sentiment. Nick Beecroft, Portfolio Specialist at T. Rowe Price International, Inc., which is registered as an FII with SEBI, says there is a complete aversion towards risk among retail and institutional investors in the US and the UK. "When they find uncertainty in their home markets, the tendency is to sell assets in emerging markets to cover risks," he adds. T. Rowe Price's global emerging markets fund has an overweight position in Indian stocks and the Asia ex-Japan Fund has invested onethird of its assets in India.
Nick Beecroft
If you thought the over 50 per cent erosion in value makes Indian stocks cheap, that may not quite be the case. India has in the recent bull phase always traded at a higher priceearnings multiple (P-E) to other emerging markets. Despite the recent fall, it still trades at a P-E of around 11 times earnings for 2009—that's still at a premium to the emerging markets multiple of 7.2 times. "Investors still see India as an expensive market," says Beecroft, which could indicate that India will witness more outflows. There are a lot of companies and markets across the world that are trading cheaper than India, avers Mehra.
So if money is flowing back home, it is also because quite simply stocks are cheaper there. For instance, on September 30, the Dow Jones Industrial Average, the US benchmark index, had a P-E of 11.35, as good as a multiple of 11 times offered by Sensex. Moreover, the currency gains no longer hold out as the Indian rupee has depreciated from Rs 39.398 in January to Rs 50 to a dollar; this means the FIIs take lesser dollars home. That's why, as Sridhar Sivaram, Executive Director, Morgan Stanley Investment Management, points out, it's the investors and funds from non-emerging market dedicated funds, that are leaving in a hurry. Along with this, hedge fund redemptions are also resulting in FII outflows.
Perhaps, the only salvation for emerging markets is if the decoupling theory plays out. Capital flows will reverse if India is able to break free from the troubled global economy. Last fortnight, a global report by Morgan Stanley predicted that 100 per cent growth in worldwide GDP will come from emerging markets in 2009. Sukumar Rajah, CIO (Equity), Franklin Templeton Investments, feels that despite a slowdown in Asian region, growth will be several notches ahead of the developed economies. Will that translate in to higher capital flows in emerging markets is anybody's guess. Adding to the uncertainty are the forthcoming general elections. "Indian stock markets are likely to stay volatile in the run-up to the elections...it is still too early to call a bottom to the sell-off," says Adrian Lim, Fund Manager, Aberdeen Asia Asset Management, which manages a $2-billion (Rs 9,800 crore) India Global Opportunities Fund. Lim maintains a conservative India strategy of focussing on cash-rich companies that have an opportunity to strengthen their competitive position.
Sukumar Rajah
Sivaram feels that almost half of the capital expenditure announced last year may not come through, and that companies could scale down projects. At the same time, he points out, foreign investors do understand that India will stand to gain because of the global fall in commodity prices, as India is a large importer of commodities, like oil and fertiliser. "The overall financial crisis is so huge that the impact of falling commodity prices will not be felt in the stock market immediately. However, the Indian economy will stand to benefit with lower fiscal deficit due to fall in oil and fertiliser prices," he adds. The offshore funds of Morgan Stanley have a defensive strategy of staying away from companies with high capex plans and focus on consumer discretionary and staples, and cashrich companies.
Amidst the dark clouds, there are more than a few silver linings. A vote of support for emerging markets should come from the large institutional investors such as pension funds and sovereign wealth funds. Recently, Norway's $350-billion (Rs 17,15,000 crore) sovereign wealth fund announced plans to invest $2 billion in India by the end of this year. The fund has increased the weightage of India in its investment portfolio. A US-based pension fund, California State Teachers' Retirement System, which has been investing in non-US markets through the private equity route, may consider a global equity asset allocation strategy. This interest is based on an external study commissioned by the fund that points to the increasing contribution of emerging markets to world GDP. India needs more of those—studies and allocations.
Capital challenge
Space business & India
Rahul Gandhi leaves for Italy for short personal visit
Oxford COVID-19 vaccine has 'winning formula', says AstraZeneca CEO Pascal Soriot
Traders urge FM Sitharaman, GST council to modify new GST notification
Protesting farmers axe 1,411 telecom towers in Punjab; CM's appeal fails to stop damages
Oxford-AstraZeneca vaccine should be effective against new COVID variant, says report
Asus to add 1,000 retail points in 2021; to focus on offline sales
Honor V40 design revealed, to sport curved edge display and thin frame
Vivo X60 Pro gets listed on TENAA, specs leak ahead of December 29 launch
Samsung phone sales slump below 300 million units first time in 9 years
Huawei working on a new Kirin 990-based laptop, key details leaked


Public Meeting on Education: How can standards be raised?
"How can our schools raise student achievement? What can be done about the 'long tail' of underachievement?" These questions are often discussed in our community and many answers are put forward. But the conflicting opinions put forward can just confuse people, Bruce Taylor, a spokesperson for the Labour Party branches in Kapiti, said today.
A public meeting to discuss these issues will be held on Friday 24 May 2013 at the Senior Citizens Hall, 45 Ocean Road, Paraparaumu Beach, commencing at 7.30pm. The guest speakers will be Chris Hipkins, MP for Rimutaka and Labour spokesperson on education and Professor John O'Neill of Massey University, a specialist in educational policy and a frequent media commentator on current educational issues.
Mr Hipkins and Professor O'Neill have been invited to consider which approaches to raising student achievement stack up and have a good chance of working and which approaches don't stack up, Mr Taylor said. These approaches include policies such as charter schools, performance pay, quality teachers, every student having an Ipad, a longer school day and national standards.
Everyone in Kapiti who is interested in education, including parents and teachers, is invited to attend this public meeting. Bruce Taylor stressed that there will be plenty of time for discussion and questions and that everyone is welcome.
The meeting has been organised by the Labour party branches in Kapiti. Media are welcome to attend and report the meeting.


In this chapter, we present a protocol to perform correlative light and electron microscopy (CLEM) on Caenorhabditis elegans embryos. We use a specific fixation method which preserves both the GFP fluorescence and the structural integrity of the samples. Thin sections are first analyzed by light microscopy to detect GFP-tagged proteins, then by transmission electron microscopy (TEM) to characterize the ultrastructural anatomy of cells. The superimposition of light and electron images allows to determine the subcellular localization of the fluorescent protein. We have used this method to characterize the roles of autophagy in the phagocytosis of apoptotic cells in C. elegans embryos. We analyzed in apoptotic cell and phagocytic cell the localization of the two homologs of LC3/GABARAP proteins, namely, LGG-1 and LGG-2.
The authors would like to thank the C. elegans community and the Caenorhabditis Genetics Center which is funded by the NIH National Center for Research Resources (NCRR) for C. elegans strains. We are grateful to Claire Boulogne for critical reading of the manuscript and helpful discussions. The present work has benefited from the expertise of Béatrice Satiat-Jeunemaitre, Cynthia Gillet, Jessica Marion and Claire Boulogne and the core facilities of Imagerie-Gif (http://www.i2bc.paris-saclay.fr) member of IBiSA (http://www.ibisa.net), supported by "France-BioImaging" (ANR-10-INBS-04-01), and the Labex "Saclay Plant Science" (ANR-11-IDEX-0003-02). This work was supported by the Agence Nationale de la Recherche (project EAT, ANR-12-BSV2-018) and the Association pour la Recherche contre le Cancer (SFI20111203826).


text:
Heads Up:🇯🇵 Foreign Bond Investment (16/JAN) due at 23:50 GMT (15min) Previous: ¥730.7B https://www.dailyfx.com/economic-calendar#2021-01-20
Heads Up:🇯🇵 Balance of Trade (DEC) due at 23:50 GMT (15min) Expected: ¥942.8B Previous: ¥366.8B https://www.dailyfx.com/economic-calendar#2021-01-20
The formation of several bullish technical patterns suggests that the haven-associated Japanese Yen is at risk of further losses against the Euro and Australian Dollar. Get your $AUD market update from @DanielGMoss here:https://t.co/qxQwHgD9Ey https://t.co/EAZpY1t0N5
China's Market News: Private Sector Bonds at High Risk in May
2016-05-11 17:18:00 Renee Mu, Currency Analyst
This daily digest focuses on market sentiment, new developments in China's foreign exchange policy, changes in financial market regulations and Chinese-language economic coverage in order to keep DailyFX readers up-to-date on news typically covered only in Chinese-language sources.
- 417.5 billion yuan worth of bonds will mature in May; Chinese firms are facing a tough test.
- Executives for over 100Chinese listed companies have significantly reduced their shares over the past 10 days.
- CSRC banned cross-industry investments in virtual industries in the effort of curbing price bubbles.
To receive reports from this analyst,sign up for Renee Mu' distribution list.
Hexun News: Chinese leading online media of financial news.
- 417.5 billion yuan of non-government bonds will mature in May, the highest amount in a single month in 2016. This likely will be a challenge for many companies that are already facing solvency issues. On May 5th, Nailun Group, a leading agricultural supply company, defaulted on 800 million of yuan bonds. This is the first default of a corporate bond traded on an exchange. According to the key commentary from People's Daily, China will continue to cut excess production at manufacturing firms and control cash injected into the market. This means many companiesthat are short of liquidity, including the state-owned enterprises, may no longer receive as much support as they did from the government, and therefore, have to face "the survival of the fittest" test without state-sponsored support.
- The State Council approved to set up a committee with 25 members to specialize in planning and helping steel and coal firms to cut overcapacity. Also, the National Development and Reform Commission (NDRC) published eight additional measures on supply-side reformson May 10th, in addition to the seven measures already released on April 13th. On May 5th, four state agencies including NDRC hosted a special meeting for production cuts and required 146 coal mines to reform.
- China's Central Bank and Morocco's Central Bank signed a bilateral currency swap deal on May 11th. The size of the deal is 10 billion yuan/15 billion Moroccan Dirham with a term of three years. The currency swap deal aims to facilitate trade and investment between the two countries. Also, it helps to promote the international development of the Chinese currency.
Sina News: China's most important online media source, similar to CNN in the US. They also own a Chinese version of Twitter, called Weibo, with around 200 million active usersmonthly.
- Executives in over 100 listed companies have significantly reduced their shares over the past 10 days. They have cashed out at least 2.3 billion yuan from these sales. This has already exceeded the amount of shares sold in the entire month of April, which was less than 1.1 billion yuan. Executives from companies listed on the Small & Medium (SME) board and the ChiNext board reduced their shares by the most, taking up over 80% of the total reduction in holdings.
- China Securities Regulatory Commission banned cross-industry investments in virtual industries. Listed companies that are not in the virtual industries are not allowed to invest or acquire companies in the following four industries: internet finance, games, movies and television, and virtual reality. For example, a concrete company is allowed to invest in photovoltaic businesses but not in a video game business. The new rule intends to curb asset price bubbles in virtual industries that are often caused by mergers and acquisitions from outsiders, as it is more difficult to assess valuations on these industries.
- The National Development and Reform Commission (NDRC) raised China's domestic oil prices on May 11, the second consecutive increase. The gasoline prices were increased by 120 yuan/ton and the diesel prices increased by 115 yuan/ton.
Written by Renee Mu, DailyFX Research Team
Market Sentiment Firms as Netflix Soars, Euro Weakens as EUR/GBP Cracks Support - US Market Open
Australian Dollar Outlook: AUD/USD Unfazed by Falling Westpac Confidence
Euro Awaits Italian Vote, Yellen to Urge Lawmakers to Act Big - US Market Open
var disqus_config = function () { this.page.url = 'https://www.dailyfx.com/forex/fundamental/daily_briefing/daily_pieces/china_news/2016/05/11/Chinas-Market-News-Private-Sector-Bonds-at-High-Risk-in-May.html'; this.page.identifier = 'https://www.dailyfx.com/forex/fundamental/daily_briefing/daily_pieces/china_news/2016/05/11/Chinas-Market-News-Private-Sector-Bonds-at-High-Risk-in-May.html'; }; (function() { var d = document, s = d.createElement('script'); s.src = '//dailyfx-com.disqus.com/embed.js'; s.setAttribute('data-timestamp', new Date()); (d.head || d.body).appendChild(s); })();
USD/CNH


text:
Casino War is a proprietary casino table game based on the game of War. It is distributed by Shuffle Master, a division of Scientific Games. The game is one of the most easily understood casino card games.

Game play
The game is normally played with six standard 52 card decks. The cards are ranked in the same way that cards in poker games are ranked, with aces being the highest cards.

One card each is dealt to a dealer and to a player. If the player's card is higher, they win the wager they bet. However, if the dealer's card is higher, the player loses their bet.

A tie occurs when the dealer and the player each have cards of the same rank. In a tie situation, the player has two options:

 The player can surrender, in which case the player loses half the bet.
 The player can go to war, in which case the player must double their stake.

If the player continues play in view of a tie, the dealer burns (discards) three cards before dealing each of them an additional card. If the player's card is ranked higher than the dealer's, then the player wins the amount of their original wager only. If the dealer's card is ranked higher than the player's, the player loses their (doubled) wager. If the ranks are equal, then the player wins the amount of their doubled wager.

A side bet is offered by which a player can bet on ties. If the player bets on the tie, and their card matches the dealer's, then the player wins 10 to 1 to their original wager on the tie bet.

Strategy and house advantage
Surrendering has a slightly higher advantage for the house in the case that a bonus payout is offered, so based on the expected value probabilities a player should never surrender.

The dealer and the player each have a 46.3% chance of winning on the first card (in a standard game with 6 decks), so this seems like an even money game. The house advantage, however, comes from what happens in the case of a tie.

The house advantage increases with the number of decks in play and decreases in casinos who offer a bonus payout. The house advantage for this game is usually over 2%.

History
The game was developed by Bet Technology, a small company based in Carson City, Nevada. The patent on the game was filed in 1993. By 1994, the game was offered at five Northern Nevada casinos, beginning with Harrah's Tahoe.

In 2004, Shuffle Master acquired most of Bet Technology's assets, including Casino War.

References

External links

Shuffle Master's official page on Casino War
Wizard of Odds - Casino War Strategy and Odds

Gambling games
War group

de:Bataille royale

redpajama_set_name: RedPajamaWikipedia