text:
#include "El.hpp"

#include "../util.hpp"

namespace El {
namespace qp {
namespace affine {

//
// Despite the fact that the CVXOPT documentation [1] suggests a single-stage
// procedure for initializing (x,y,z,s), a post-processed two-stage procedure
// is currently used by the code [2]:
//
// 1) Minimize || G x - h ||^2, s.t. A x = b  by solving
//
//    | Q A^T G^T | |  x |   | 0 |
//    | A  0   0  | |  u | = | b |,
//    | G  0  -I  | | -s |   | h |
//
//   where 'u' is an unused dummy variable.
//
// 2) Minimize || z ||^2, s.t. A^T y + G^T z + c in range(Q) by solving
//
//    | Q A^T G^T | | u |   | -c |
//    | A  0   0  | | y | = |  0 |,
//    | G  0  -I  | | z |   |  0 |
//
//    where 'u' is an unused dummy variable.
//
// 3) Set
//
//      alpha_p := -min(s), and
//      alpha_d := -min(z).
//
//    Then shift s and z according to the rules:
//
//      s := ( alpha_p > -sqrt(eps)*Max(1,||s||_2) ? s + (1+alpha_p)e : s )
//      z := ( alpha_d > -sqrt(eps)*Max(1,||z||_2) ? z + (1+alpha_d)e : z ),
//
//    where 'eps' is the machine precision, 'e' is a vector of all ones
//    (for more general conic optimization problems, it is the product of
//    identity elements from the Jordan algebras whose squares yield the
//    relevant cone.
//
//    Since the post-processing in step (3) has a large discontinuity as the
//    minimum entry approaches sqrt(eps)*Max(1,||q||_2), we also provide
//    the ability to instead use an entrywise lower clip.
//
// [1] L. Vandenberghe
//     "The CVXOPT linear and quadratic cone program solvers"
//     <http://www.seas.ucla.edu/~vandenbe/publications/coneprog.pdf>
//
// [2] L. Vandenberghe
//     CVXOPT's source file, "src/python/coneprog.py"
//     <https://github.com/cvxopt/cvxopt/blob/f3ca94fb997979a54b913f95b816132f7fd44820/src/python/coneprog.py>
//

template<typename Real>
void Initialize
( const Matrix<Real>& Q,
  const Matrix<Real>& A, const Matrix<Real>& G,
  const Matrix<Real>& b, const Matrix<Real>& c,
  const Matrix<Real>& h,
        Matrix<Real>& x,       Matrix<Real>& y,
        Matrix<Real>& z,       Matrix<Real>& s,
  bool primalInitialized, bool dualInitialized,
  bool standardShift )
{
    DEBUG_ONLY(CallStackEntry cse("qp::affine::Initialize"))
    const Int m = A.Height();
    const Int n = A.Width();
    const Int k = G.Height();
    if( primalInitialized )
    {
        if( x.Height() != n || x.Width() != 1 )
            LogicError("x was of the wrong size");
        if( s.Height() != k || s.Width() != 1 )
            LogicError("s was of the wrong size");
    }
    if( dualInitialized )
    {
        if( y.Height() != m || y.Width() != 1 )
            LogicError("y was of the wrong size");
        if( z.Height() != k || z.Width() != 1 )
            LogicError("z was of the wrong size");
    }
    if( primalInitialized && dualInitialized )
    {
        // TODO: Perform a consistency check
        return;
    }

    // Form the KKT matrix
    // ===================
    Matrix<Real> J, ones;
    Ones( ones, k, 1 );
    KKT( Q, A, G, ones, ones, J );

    // Factor the KKT matrix
    // =====================
    Matrix<Real> dSub;
    Matrix<Int> p;
    LDL( J, dSub, p, false );

    Matrix<Real> rc, rb, rh, rmu, u, d;
    Zeros( rmu, k, 1 );
    if( !primalInitialized )
    {
        // Minimize || G x - h ||^2, s.t. A x = b  by solving
        //
        //    | Q A^T G^T | |  x |   | 0 |
        //    | A  0   0  | |  u | = | b |,
        //    | G  0  -I  | | -s |   | h |
        //
        //   where 'u' is an unused dummy variable.
        Zeros( rc, n, 1 );
        rb = b;
        Scale( Real(-1), rb );
        rh = h;
        Scale( Real(-1), rh );
        KKTRHS( rc, rb, rh, rmu, ones, d );
        ldl::SolveAfter( J, dSub, p, d, false );
        ExpandCoreSolution( m, n, k, d, x, u, s );
        Scale( Real(-1), s );
    }
    if( !dualInitialized )
    {
        // Minimize || z ||^2, s.t. A^T y + G^T z + c in range(Q) by solving
        //
        //    | Q A^T G^T | | u |   | -c |
        //    | A  0   0  | | y | = |  0 |,
        //    | G  0  -I  | | z |   |  0 |
        //
        //    where 'u' is an unused dummy variable.
        rc = c;
        Zeros( rb, m, 1 );
        Zeros( rh, k, 1 );
        KKTRHS( rc, rb, rh, rmu, ones, d );
        ldl::SolveAfter( J, dSub, p, d, false );
        ExpandCoreSolution( m, n, k, d, u, y, z );
    }

    // alpha_p := min { alpha : s + alpha*e >= 0 }
    // ===========================================
    const auto sMinPair = VectorMin( s );
    const Real alphaPrimal = -sMinPair.value;
    if( alphaPrimal >= Real(0) && primalInitialized )
        RuntimeError("initialized s was non-positive");

    // alpha_d := min { alpha : z + alpha*e >= 0 }
    // ===========================================
    const auto zMinPair = VectorMin( z );
    const Real alphaDual = -zMinPair.value;
    if( alphaDual >= Real(0) && dualInitialized )
        RuntimeError("initialized z was non-positive");

    const Real epsilon = lapack::MachineEpsilon<Real>();
    const Real sNorm = Nrm2( s );
    const Real zNorm = Nrm2( z );
    const Real gammaPrimal = Sqrt(epsilon)*Max(sNorm,Real(1));
    const Real gammaDual   = Sqrt(epsilon)*Max(zNorm,Real(1));
    if( standardShift )
    {
        if( alphaPrimal >= -gammaPrimal )
            Shift( s, alphaPrimal+1 );
        if( alphaDual >= -gammaDual )
            Shift( z, alphaDual+1 );
    }
    else
    {
        LowerClip( s, gammaPrimal );
        LowerClip( z, gammaDual   );
    }
}

template<typename Real>
void Initialize
( const AbstractDistMatrix<Real>& Q,
  const AbstractDistMatrix<Real>& A, const AbstractDistMatrix<Real>& G,
  const AbstractDistMatrix<Real>& b, const AbstractDistMatrix<Real>& c,
  const AbstractDistMatrix<Real>& h,
        AbstractDistMatrix<Real>& x,       AbstractDistMatrix<Real>& y,
        AbstractDistMatrix<Real>& z,       AbstractDistMatrix<Real>& s,
  bool primalInitialized, bool dualInitialized,
  bool standardShift )
{
    DEBUG_ONLY(CallStackEntry cse("qp::affine::Initialize"))
    const Int m = A.Height();
    const Int n = A.Width();
    const Int k = G.Height();
    const Grid& g = A.Grid();
    if( primalInitialized )
    {
        if( x.Height() != n || x.Width() != 1 )
            LogicError("x was of the wrong size");
        if( s.Height() != k || s.Width() != 1 )
            LogicError("s was of the wrong size");
    }
    if( dualInitialized )
    {
        if( y.Height() != m || y.Width() != 1 )
            LogicError("y was of the wrong size");
        if( z.Height() != k || z.Width() != 1 )
            LogicError("z was of the wrong size");
    }
    if( primalInitialized && dualInitialized )
    {
        // TODO: Perform a consistency check
        return;
    }

    // Form the KKT matrix
    // ===================
    DistMatrix<Real> J(g), ones(g);
    Ones( ones, k, 1 );
    KKT( Q, A, G, ones, ones, J );

    // Factor the KKT matrix
    // =====================
    DistMatrix<Real> dSub(g);
    DistMatrix<Int> p(g);
    LDL( J, dSub, p, false );

    DistMatrix<Real> rc(g), rb(g), rh(g), rmu(g), d(g), u(g);
    Zeros( rmu, k, 1 );
    if( !primalInitialized )
    {
        // Minimize || G x - h ||^2, s.t. A x = b  by solving
        //
        //    | Q A^T G^T | |  x |   | 0 |
        //    | A  0   0  | |  u | = | b |,
        //    | G  0  -I  | | -s |   | h |
        //
        //   where 'u' is an unused dummy variable.
        Zeros( rc, n, 1 );
        rb = b;
        Scale( Real(-1), rb );
        rh = h;
        Scale( Real(-1), rh );
        KKTRHS( rc, rb, rh, rmu, ones, d );
        ldl::SolveAfter( J, dSub, p, d, false );
        ExpandCoreSolution( m, n, k, d, x, u, s );
        Scale( Real(-1), s );
    }
    if( !dualInitialized )
    {
        // Minimize || z ||^2, s.t. A^T y + G^T z + c in range(Q) by solving
        //
        //    | Q A^T G^T | | u |   | -c |
        //    | A  0   0  | | y | = |  0 |,
        //    | G  0  -I  | | z |   |  0 |
        //
        //    where 'u' is an unused dummy variable.
        rc = c;
        Zeros( rb, m, 1 );
        Zeros( rh, k, 1 );
        KKTRHS( rc, rb, rh, rmu, ones, d );
        ldl::SolveAfter( J, dSub, p, d, false );
        ExpandCoreSolution( m, n, k, d, u, y, z );
    }

    // alpha_p := min { alpha : s + alpha*e >= 0 }
    // ===========================================
    const auto sMinPair = VectorMin( s );
    const Real alphaPrimal = -sMinPair.value;
    if( alphaPrimal >= Real(0) && primalInitialized )
        RuntimeError("initialized s was non-positive");

    // alpha_d := min { alpha : z + alpha*e >= 0 }
    // ===========================================
    const auto zMinPair = VectorMin( z );
    const Real alphaDual = -zMinPair.value;
    if( alphaDual >= Real(0) && dualInitialized )
        RuntimeError("initialized z was non-positive");

    const Real epsilon = lapack::MachineEpsilon<Real>();
    const Real sNorm = Nrm2( s );
    const Real zNorm = Nrm2( z );
    const Real gammaPrimal = Sqrt(epsilon)*Max(sNorm,Real(1));
    const Real gammaDual   = Sqrt(epsilon)*Max(zNorm,Real(1));
    if( standardShift )
    {
        if( alphaPrimal >= -gammaPrimal )
            Shift( s, alphaPrimal+1 );
        if( alphaDual >= -gammaDual )
            Shift( z, alphaDual+1 );
    }
    else
    {
        LowerClip( s, gammaPrimal );
        LowerClip( z, gammaDual   );
    }
}

template<typename Real>
void Initialize
( const SparseMatrix<Real>& Q,
  const SparseMatrix<Real>& A, const SparseMatrix<Real>& G,
  const Matrix<Real>& b,       const Matrix<Real>& c,
  const Matrix<Real>& h,
        Matrix<Real>& x,             Matrix<Real>& y,
        Matrix<Real>& z,             Matrix<Real>& s,
        vector<Int>& map,            vector<Int>& invMap,
        Separator& rootSep,          SymmNodeInfo& info,
  bool primalInitialized, bool dualInitialized,
  bool standardShift,     bool progress )
{
    DEBUG_ONLY(CallStackEntry cse("qp::affine::Initialize"))
    const Int m = A.Height();
    const Int n = A.Width();
    const Int k = G.Height();
    if( primalInitialized )
    {
        if( x.Height() != n || x.Width() != 1 )
            LogicError("x was of the wrong size");
        if( s.Height() != k || s.Width() != 1 )
            LogicError("s was of the wrong size");
    }
    if( dualInitialized )
    {
        if( y.Height() != m || y.Width() != 1 )
            LogicError("y was of the wrong size");
        if( z.Height() != k || z.Width() != 1 )
            LogicError("z was of the wrong size");
    }
    if( primalInitialized && dualInitialized )
    {
        // TODO: Perform a consistency check
        return;
    }

    // Form the KKT matrix
    // ===================
    SparseMatrix<Real> J;
    Matrix<Real> ones;
    Ones( ones, k, 1 );
    KKT( Q, A, G, ones, ones, J, false );

    // (Approximately) factor the KKT matrix
    // =====================================
    Matrix<Real> regCand, reg;
    MatrixNode<Real> regCandNodal, regNodal;
    bool aPriori = true;
    const Real epsilon = lapack::MachineEpsilon<Real>();
    const Real pivTol = MaxNorm(J)*epsilon;
    const Real regMagPrimal = Pow(epsilon,Real(0.75));
    const Real regMagLagrange = Pow(epsilon,Real(0.5));
    const Real regMagDual = Pow(epsilon,Real(0.5));
    regCand.Resize( n+m+k, 1 );
    for( Int i=0; i<n+m+k; ++i )
    {
        if( i < n )
            regCand.Set( i, 0, regMagPrimal );
        else if( i < n+m )
            regCand.Set( i, 0, -regMagLagrange );
        else
            regCand.Set( i, 0, -regMagDual );
    }
    // Do not use any a priori regularization
    Zeros( reg, n+m+k, 1 );
    // Compute the proposed step from the KKT system
    // ---------------------------------------------
    NestedDissection( J.LockedGraph(), map, rootSep, info );
    InvertMap( map, invMap );

    SymmFront<Real> JFront;
    JFront.Pull( J, map, info );
    regCandNodal.Pull( invMap, info, regCand );
    regNodal.Pull( invMap, info, reg );
    RegularizedQSDLDL
    ( info, JFront, pivTol, regCandNodal, regNodal, aPriori, LDL_1D );
    regNodal.Push( invMap, info, reg );

    Matrix<Real> rc, rb, rh, rmu, u, d;
    Zeros( rmu, k, 1 );
    // TODO: Expose these as control parameters
    const Real minReductionFactor = 2;
    const Int maxRefineIts = 10;
    if( !primalInitialized )
    {
        // Minimize || G x - h ||^2, s.t. A x = b  by solving
        //
        //    | Q A^T G^T | |  x |   | 0 |
        //    | A  0   0  | |  u | = | b |,
        //    | G  0  -I  | | -s |   | h |
        //
        //   where 'u' is an unused dummy variable.
        Zeros( rc, n, 1 );
        rb = b;
        Scale( Real(-1), rb );
        rh = h;
        Scale( Real(-1), rh );
        KKTRHS( rc, rb, rh, rmu, ones, d );

        reg_qsd_ldl::SolveAfter
        ( J, reg, invMap, info, JFront, d,
          REG_REFINE_FGMRES, minReductionFactor, maxRefineIts, progress );
        ExpandCoreSolution( m, n, k, d, x, u, s );
        Scale( Real(-1), s );
    }
    if( !dualInitialized )
    {
        // Minimize || z ||^2, s.t. A^T y + G^T z + c in range(Q) by solving
        //
        //    | Q A^T G^T | | u |   | -c |
        //    | A  0   0  | | y | = |  0 |,
        //    | G  0  -I  | | z |   |  0 |
        //
        //    where 'u' is an unused dummy variable.
        rc = c;
        Zeros( rb, m, 1 );
        Zeros( rh, k, 1 );
        KKTRHS( rc, rb, rh, rmu, ones, d );

        reg_qsd_ldl::SolveAfter
        ( J, reg, invMap, info, JFront, d,
          REG_REFINE_FGMRES, minReductionFactor, maxRefineIts, progress );
        ExpandCoreSolution( m, n, k, d, u, y, z );
    }

    // alpha_p := min { alpha : s + alpha*e >= 0 }
    // ===========================================
    const auto sMinPair = VectorMin( s );
    const Real alphaPrimal = -sMinPair.value;
    if( alphaPrimal >= Real(0) && primalInitialized )
        RuntimeError("initialized s was non-positive");

    // alpha_d := min { alpha : z + alpha*e >= 0 }
    // ===========================================
    const auto zMinPair = VectorMin( z );
    const Real alphaDual = -zMinPair.value;
    if( alphaDual >= Real(0) && dualInitialized )
        RuntimeError("initialized z was non-positive");

    const Real sNorm = Nrm2( s );
    const Real zNorm = Nrm2( z );
    const Real gammaPrimal = Sqrt(epsilon)*Max(sNorm,Real(1));
    const Real gammaDual   = Sqrt(epsilon)*Max(zNorm,Real(1));
    if( standardShift )
    {
        if( alphaPrimal >= -gammaPrimal )
            Shift( s, alphaPrimal+1 );
        if( alphaDual >= -gammaDual )
            Shift( z, alphaDual+1 );
    }
    else
    {
        LowerClip( s, gammaPrimal );
        LowerClip( z, gammaDual   );
    }
}

template<typename Real>
void Initialize
( const DistSparseMatrix<Real>& Q,
  const DistSparseMatrix<Real>& A,  const DistSparseMatrix<Real>& G,
  const DistMultiVec<Real>& b,      const DistMultiVec<Real>& c,
  const DistMultiVec<Real>& h,
        DistMultiVec<Real>& x,            DistMultiVec<Real>& y,
        DistMultiVec<Real>& z,            DistMultiVec<Real>& s,
        DistMap& map,                     DistMap& invMap,
        DistSeparator& rootSep,           DistSymmNodeInfo& info,
  bool primalInitialized, bool dualInitialized,
  bool standardShift,     bool progress )
{
    DEBUG_ONLY(CallStackEntry cse("qp::affine::Initialize"))
    const Int m = A.Height();
    const Int n = A.Width();
    const Int k = G.Height();
    mpi::Comm comm = A.Comm();
    if( primalInitialized )
    {
        if( x.Height() != n || x.Width() != 1 )
            LogicError("x was of the wrong size");
        if( s.Height() != k || s.Width() != 1 )
            LogicError("s was of the wrong size");
    }
    if( dualInitialized )
    {
        if( y.Height() != m || y.Width() != 1 )
            LogicError("y was of the wrong size");
        if( z.Height() != k || z.Width() != 1 )
            LogicError("z was of the wrong size");
    }
    if( primalInitialized && dualInitialized )
    {
        // TODO: Perform a consistency check
        return;
    }

    // Form the KKT matrix
    // ===================
    DistSparseMatrix<Real> J(comm);
    DistMultiVec<Real> ones(comm);
    Ones( ones, k, 1 );
    KKT( Q, A, G, ones, ones, J, false );

    // (Approximately) factor the KKT matrix
    // =====================================
    DistMultiVec<Real> regCand(comm), reg(comm);
    DistMultiVecNode<Real> regCandNodal, regNodal;
    bool aPriori = true;
    const Real epsilon = lapack::MachineEpsilon<Real>();
    const Real pivTol = MaxNorm(J)*epsilon;
    const Real regMagPrimal = Pow(epsilon,Real(0.75));
    const Real regMagLagrange = Pow(epsilon,Real(0.5));
    const Real regMagDual = Pow(epsilon,Real(0.5));
    regCand.Resize( n+m+k, 1 );
    for( Int iLoc=0; iLoc<regCand.LocalHeight(); ++iLoc )
    {
        const Int i = regCand.FirstLocalRow() + iLoc;
        if( i < n )
            regCand.SetLocal( iLoc, 0, regMagPrimal );
        else if( i < n+m )
            regCand.SetLocal( iLoc, 0, -regMagLagrange );
        else
            regCand.SetLocal( iLoc, 0, -regMagDual );
    }
    // Do not use any a priori regularization
    Zeros( reg, n+m+k, 1 );
    // Compute the proposed step from the KKT system
    // ---------------------------------------------
    NestedDissection( J.LockedDistGraph(), map, rootSep, info );
    InvertMap( map, invMap );

    DistSymmFront<Real> JFront;
    JFront.Pull( J, map, rootSep, info );
    regCandNodal.Pull( invMap, info, regCand );
    regNodal.Pull( invMap, info, reg );
    RegularizedQSDLDL
    ( info, JFront, pivTol, regCandNodal, regNodal, aPriori, LDL_1D );
    regNodal.Push( invMap, info, reg );

    DistMultiVec<Real> rc(comm), rb(comm), rh(comm), rmu(comm), u(comm),
                       d(comm);
    Zeros( rmu, k, 1 );
    // TODO: Expose these as control parameters
    const Real minReductionFactor = 2;
    const Int maxRefineIts = 10;
    if( !primalInitialized )
    {
        // Minimize || G x - h ||^2, s.t. A x = b  by solving
        //
        //    | Q A^T G^T | |  x |   | 0 |
        //    | A  0   0  | |  u | = | b |,
        //    | G  0  -I  | | -s |   | h |
        //
        //   where 'u' is an unused dummy variable.
        Zeros( rc, n, 1 );
        rb = b;
        Scale( Real(-1), rb );
        rh = h;
        Scale( Real(-1), rh );
        KKTRHS( rc, rb, rh, rmu, ones, d );

        reg_qsd_ldl::SolveAfter
        ( J, reg, invMap, info, JFront, d,
          REG_REFINE_FGMRES, minReductionFactor, maxRefineIts, progress );
        ExpandCoreSolution( m, n, k, d, x, u, s );
        Scale( Real(-1), s );
    }
    if( !dualInitialized )
    {
        // Minimize || z ||^2, s.t. A^T y + G^T z + c in range(Q) by solving
        //
        //    | Q A^T G^T | | u |   | -c |
        //    | A  0   0  | | y | = |  0 |,
        //    | G  0  -I  | | z |   |  0 |
        //
        //    where 'u' is an unused dummy variable.
        rc = c;
        Zeros( rb, m, 1 );
        Zeros( rh, k, 1 );
        KKTRHS( rc, rb, rh, rmu, ones, d );

        reg_qsd_ldl::SolveAfter
        ( J, reg, invMap, info, JFront, d,
          REG_REFINE_FGMRES, minReductionFactor, maxRefineIts, progress );
        ExpandCoreSolution( m, n, k, d, u, y, z );
    }

    // alpha_p := min { alpha : s + alpha*e >= 0 }
    // ===========================================
    const auto sMinPair = VectorMin( s );
    const Real alphaPrimal = -sMinPair.value;
    if( alphaPrimal >= Real(0) && primalInitialized )
        RuntimeError("initialized s was non-positive");

    // alpha_d := min { alpha : z + alpha*e >= 0 }
    // ===========================================
    const auto zMinPair = VectorMin( z );
    const Real alphaDual = -zMinPair.value;
    if( alphaDual >= Real(0) && dualInitialized )
        RuntimeError("initialized z was non-positive");

    const Real sNorm = Nrm2( s );
    const Real zNorm = Nrm2( z );
    const Real gammaPrimal = Sqrt(epsilon)*Max(sNorm,Real(1));
    const Real gammaDual   = Sqrt(epsilon)*Max(zNorm,Real(1));
    if( standardShift )
    {
        if( alphaPrimal >= -gammaPrimal )
            Shift( s, alphaPrimal+1 );
        if( alphaDual >= -gammaDual )
            Shift( z, alphaDual+1 );
    }
    else
    {
        LowerClip( s, gammaPrimal );
        LowerClip( z, gammaDual   );
    }
}

#define PROTO(Real) \
  template void Initialize \
  ( const Matrix<Real>& Q, \
    const Matrix<Real>& A, const Matrix<Real>& G, \
    const Matrix<Real>& b, const Matrix<Real>& c, \
    const Matrix<Real>& h, \
          Matrix<Real>& x,       Matrix<Real>& y, \
          Matrix<Real>& z,       Matrix<Real>& s, \
    bool primalInitialized, bool dualInitialized, \
    bool standardShift ); \
  template void Initialize \
  ( const AbstractDistMatrix<Real>& Q, \
    const AbstractDistMatrix<Real>& A, const AbstractDistMatrix<Real>& G, \
    const AbstractDistMatrix<Real>& b, const AbstractDistMatrix<Real>& c, \
    const AbstractDistMatrix<Real>& h, \
          AbstractDistMatrix<Real>& x,       AbstractDistMatrix<Real>& y, \
          AbstractDistMatrix<Real>& z,       AbstractDistMatrix<Real>& s, \
    bool primalInitialized, bool dualInitialized, \
    bool standardShift ); \
  template void Initialize \
  ( const SparseMatrix<Real>& Q, \
    const SparseMatrix<Real>& A, const SparseMatrix<Real>& G, \
    const Matrix<Real>& b,       const Matrix<Real>& c, \
    const Matrix<Real>& h, \
          Matrix<Real>& x,             Matrix<Real>& y, \
          Matrix<Real>& z,             Matrix<Real>& s, \
          vector<Int>& map,            vector<Int>& invMap, \
          Separator& rootSep,          SymmNodeInfo& info, \
    bool primalInitialized, bool dualInitialized, \
    bool standardShift,     bool progress ); \
  template void Initialize \
  ( const DistSparseMatrix<Real>& Q, \
    const DistSparseMatrix<Real>& A,  const DistSparseMatrix<Real>& G, \
    const DistMultiVec<Real>& b,      const DistMultiVec<Real>& c, \
    const DistMultiVec<Real>& h, \
          DistMultiVec<Real>& x,            DistMultiVec<Real>& y, \
          DistMultiVec<Real>& z,            DistMultiVec<Real>& s, \
          DistMap& map,                     DistMap& invMap, \
          DistSeparator& rootSep,           DistSymmNodeInfo& info, \
    bool primalInitialized, bool dualInitialized, \
    bool standardShift,     bool progress );

#define EL_NO_INT_PROTO
#define EL_NO_COMPLEX_PROTO
#include "El/macros/Instantiate.h"

} // namespace affine
} // namespace qp
} // namespace El

redpajama_set_name: RedPajamaGithub


Lindsey Graham (R-SC) needs to join the Democrat Party, resign, decide not to run in 2014, or the voters of South Carolina need to vote him out of office . . . please.
Graham wants to move on from ObamaCare. Here's the problem: If ObamaCare is financed, we'll never be rid of it.
Graham means the better for him and those who live off the government trough. He and his fellow-establishment Republicans live above the laws they impose on the rest of us. What's been great about the shutdown is that there have been very few if any laws passed.
Another reason for Graham being anxious about stopping the shutdown is that it's beginning to show voters that many government services are not needed or at least scaled back by a considerable amount.
It would be easy to fix the budgetary shortfall by proposing a ten percent reduction in government spending. Pass a law calling for every government agency cut its budget by ten percent.
American families have had to reduce their spending habits, so why not America's government? The federal government is one of the few sectors that has increased the number of employees and their wages. Have you noticed the sky-rocketing price of real estate in and around Washington, DC?
A Slate article states that Washington-area house pricing have risen by double digits.
It's good to know that Graham "already has one announced challenger in the 2014 South Carolina Republican primary for the United States Senate in businessman Richard Cash." Reports are that he may two more challengers. This could be a problem. There needs to be only one GOP challenger by the time of the primary.


text:
Treasury bills indexed to TONIA — METIKAM
Category — Sovereign Bonds
Treasury bills indexed to the TONIA rate (METIKAM) are long-term coupon securities issued by the Ministry of Finance of the Republic of Kazakhstan.
The maturity of these securities is more than one year, the nominal value is 1000 tenge, the income is paid in the form of a coupon twice a year. Placement and redemption of securities takes place at face value, the calculation base, used to calculate the coupon amount, is 30 days in the settlement month / 360 days in the year.
The key feature of METIKAM securities is that the coupon rate is floating and it is linked to TONIA rate, which reflects the yield of one-day REPO operations with securities of the Kase basket. As the way to calculate the coupon amount, 10 working days before the end date of the coupon period the TONIA Compounded rate for six months (TCR_6M) is calculated. And this rate remains unchanged until the end of the coupon period.
The sum of the indexed coupon is formulated by the formula:
S=N*T/2+C, where,
S, tenge - the amount of the indexed coupon of treasury obligations to be paid;
N, tenge - the amount of the nominal value to be paid;
T, % − TONIA Compounded rate for six months (TCR_6M) for the expired coupon period, T value is rounded up to the third decimal place;
C, tenge - the amount of a fixed coupon, while C=N*K*180/360, where,
K, % - the value of the fixed annual coupon determined during placement.
The first placement of METIKAM bonds took place on August 3, 2022. The volume of the issue was 35 billion tenge, the fixed margin to the TONIA rate was 0.75 percentage points. The maturity is of 1080 days.

redpajama_set_name: RedPajamaCommonCrawl


Chef Jamie Oliver dropped by the market in Saffron Walden on Saturday to offer his support to Jon Dowrick who is doing a virtual bike ride to raise money for a cancer support charity.
Jon recently received acupuncture for the side effects of his hormone therapy from Maggie's Cambridge, a cancer support charity where people can drop in for practical and emotional support or attend support groups. Maggie's Cambridge at based at Addenbrooke's Hospital.
Jon and his team were supported by Lord Butler Leisure Centre and the Crown and Thistle in Great Chesterford, as well as Jamie Oliver who dropped by to see them.


text:
Q: Is it possible to use variables in node red nodes (e.g. post requests)? I have a flow which returns a variable outMsg from a function which then sends an HTTPS POST request from a request node, what I'm wondering is if I can use that variable in the request node after the function something like:
https://url.com?message={{outMsg}}

A: Taken from the sidebar doc for the http-request node

When configured within the node, the URL property can contain mustache-style tags. These allow the url to be constructed using values of the incoming message. For example, if the url is set to example.com/{{topic}}, it will have the value of msg.topic automatically inserted.

redpajama_set_name: RedPajamaStackExchange


OWoN: Could this be true? The world seems to be more and more bizarre.
Hopefully, if the US doesn't, Russia and China will, and follow up with an attack on all Israeli Silos which both destroys their missiles in their launch bays, and takes out all Israeli warships and Subs. Every illegally occupied settlement needs to be flattened and all offensive Nazi type border barriers restricting Palestinians crossing their own land needs needs blowing to hell.
Of course, if the US damn well stopped arming them, we would not have this problem in the first place.
Mad Nutter Bibi Yahoo needs to be sent packing this week and booed in the hall. But, with Bribed Senators and dirty Congress owned, it's hard.
A news agency based in Bethlehem, has sited a Kuwaiti newspaper report from yesterday, that Barack Obama foiled a planned Israeli military attack on Iran's nuclear facilities. This took place in 2014. Obama threatened to shoot down Israeli jets before they reached their targets in Iran.
PM Netanyahu was forced to abort the planned attack on Iran. "According to Al-Jarida, the Netanyahu government took the decision to strike Iran some time in 2014 soon after Israel had discovered the United States and Iran had been involved in secret talks over Iran's nuclear program and were about to sign an agreement in that regard behind Israel's back.
Netanyahu and his commanders deliberated for four nights with Israeli army's chief of staff, Benn Gantz, to prepare a qualitative attack on the nuclear sites in Iran. Netanyahu and his staff concluded that this was a necessary measure to take, in the midst of talks between the U.S. and Iran. PM Netanyahu believed that the talks between the nations posed a direct threat to Israeli security.
Perhaps now we know why Barack Obama protested as loudly as he did, when PM Netanyahu was invited to speak to Congress in March.


1How do I get a quote for my conservatory project?
Send us a few details about your project and we will arrange (usually up to 3 or 4) certified suppliers to quote for you.
2Is there a charge for the quotes - even if I want several?
No - all the quotes supplied by installers on our panel are free of charge and without any obligation to buy.
3Can I get more than one quote?
Yes - its up to you. Normally we would select 3 or 4 suppliers, but if you want more, then just let us know in the comment section of the quote request form.
4How safe are my details?
We only release your contact details to a genuine supplier so that they can get in touch with you to provide quotes.
5Why should I only use an accredited installer to fit my conservatory?
There are 2 good reasons to do so.
6How do I get in touch if I have a question?
Drop us a line anytime, we are happy to help.
1How small is a small conservatory?
2What is the best type of door for my conservatory?
Really, it's about function first, form second. That means how well it works for you should be more important than the style of the door.
3Must I have a glass conservatory roof?
Double glazed roofing is better than poly-carbonate. Tiled roofing stops sun glare but you lose natural light.
4Can I just replace my conservatory roof?
5Why are "conservatories prices fitted" so variable?
6What is the best conservatory design for a bungalow?
The general consensus of opinion seems to favour lean-to as the best design for a bungalow because of its low roof angle.
7Do I get guarantees on the work?
You should ensure your supplier provides genuine guarantees on the installation work. You need to establish at outset what time frame & what else the workmanship warranty covers before ordering.
8What other guarantees are there?
The individual products used to build the conservatory (frames, doors, sealed units etc) should carry a manufacturers warranty.
9Should I fit underfloor heating during construction?
Of the 2 main versions.
10Can I fit an "inside lining" to my conservatory roof?
Lining the interior of a conservatory roof is a good solution for reducing sun glare & heat build up. But you need to do it in such a way that you avoid condensation build up between the roof & the lining.
11Should I buy a second hand conservatory?
Buying a second hand conservatory from somewhere like eBay or Amazon might seem like a good idea, but if it has been dismantled badly you could just be buying yourself an expensive problem instead of saving money.
Check out some ex-display models from suppliers who have their own showrooms if you want a "second-hand" conservatory.
1What about planning permission for a conservatory?
Within guidelines, a conservatory can be a permitted development and therefore planning permission is not required.
2Are there other things to know about planning permission?
3What about building over drains & manholes?
Before you do any digging or building, it's important to know if there are any manholes, storm drains, foul drains, electricity cables, water or gas pipes underground.
You could need permission to build near or over many of them.
4What if I live in a Listed Building?
To refurbish, repair or extend a property that it listed, you will certainly need to obtain permission to do so.
1Should I borrow money to buy my conservatory?
Firstly, it is important to establish that we are not authorised to give financial advice, and what follows is our personal opinion. Always consult an authorised & regulated financial advisor.
It seems quite obvious to say that if you can avoid taking a loan to buy a conservatory it's better. If you have to take a loan, we think your Building society or Bank mortgage provider would be the 1st place to check out.
A number of larger installers have credit facilities, that are either secured or unsecured loans. You should go through the terms & conditions in great detail.
You should be absolutely sure that you have the long term ability to meet repayments, because if you default on the loan your entire home could be at risk.
2Why should I not deal with an unregistered installer?
If the supplier / installer has not taken the time &' effort to prove their competence, you should question their level of skill and avoid them.
3What are the usual payment terms for a conservatory installation?
completion - the last 10% or 20% to be paid upon "handover"
You should be wary of companies that ask for very high proportional up-front deposits.
4How do I get my deposit protected?
Contractors & Installers can provide insurance backed deposit guarantees. If they are members of CERTASS / FENSA or DGCOS, they must provide a guarantee of this sort.


text:
Our extinction crisis
By Lauren Burns
AUSTRALIANS' love of nature unites us. A 2019 survey of 55,000 people by the ABC found that 'appreciation of the natural environment' was the second most important aspect of 'being Australian'.
Yet, paradoxically, we are in the midst of an extinction crisis. The Australian Conservation Foundation reports that 1 million species are at risk of extinction globally, including nearly 2000 Australian plants, animals and ecosystems.
Habitat destruction from land clearing for agriculture, urban sprawl and industry is the primary driver of extinction. Victoria is the most densely populated state with the most cleared native vegetation and smallest percentage of protected public land. The Victorian Parliamentary Environment and Planning Committee is currently holding an inquiry into ecosystem decline in Victoria.
Once common throughout coastal Australia, today southern brown bandicoots are limited to fragmented populations and listed as endangered.
Locally, Bass Coast Shire provides important habitat and is home to 58 nationally listed threatened species such as the swift parrot, giant Gippsland earthworm, growling grass frog, and my personal favourite, the southern brown bandicoot. Southern brown bandicoots are introverts. Once common throughout coastal Australia, today they are limited to fragmented populations and listed as endangered. Their main threats are habitat destruction, large-scale fires and predation by cats and foxes. Southern brown bandicoots have a close relationship to grass trees as during the daytime they sleep in well concealed nests, often established within the vegetation skirts of grass trees.
Two maps strikingly illustrate the dramatic changes in vegetation cover in Bass Coast Shire since colonisation. Indigenous rights and environmental justice are closely interlinked. Since 1750, more than 90 per cent of native vegetation has been cleared, leading to ecosystem decline, an increase in threatened species and risk of extinctions.
Land cover in Bass Coast Shire pre-1750: Dark green = Eucalypt open forest, brown = low forest & shrubland, yellow = Acacia woodland
Land cover in Bass Coast Shire today: Light green = pasture, pink = urban, red = roads, brown = plantations and black = industry
Biodiversity is an important measure of the health of the entire ecosystem and a protective factor to prevent viruses from infecting humans. Pollinators such as bees are critical to our food production, and clean air and water are essential for human health and well-being. Healthy ecosystems equal healthy people.
The Australian Conservation Foundation reports that more than 7.7 million hectares of threatened species habitat was cleared nationally between 2000 and 2017 despite our federal environment law, the Environment Protection and Biodiversity Conservation (EPBC) Act.
Former ACCC Chair Graeme Samuel is currently undertaking a once-in-a-decade review of the EPBC Act. His interim report found that Australia's environment is in an "unsustainable state of decline," and yet the Federal Government has responded with a bill currently before parliament that proposes to step back federal oversight and hand decision making power to the states, leading to criticism it will further further weaken laws described by Samuel as "ineffective".
Bass Coast has a growing population, placing pressure on remnant vegetation and urban boundaries. People and wildlife can co-exist, but we need to take a Biodiversity Sensitive Urban Design (BSUD) approach to building and invest in natural infrastructure for our growing population by improving water catchments, revegetating and implementing recovery plans for threatened species.
Incorporating nature into our built environment has many upsides. Personally, nature has been a real refuge for me during COVID-19 lockdown in Inverloch. Incredible research shows that surgery patients who have a view from their hospital bed of a single tree are discharged faster compared to those that have no view of nature.
Bass Coast has many outstanding examples of people acting for nature through community driven conservation. In partnership with Parks Victoria, the South Gippsland Conservation Society has worked to conserve and restore Screw Creek, replanting local indigenous species and constructing tracks, boardwalks, fishing platforms, information shelters and seating. More than 10,000 people now visit the Inverloch reserve each year over.
Cape Paterson Coastal Plains Landcare, Friends of Wonthaggi Heathland & Coastal Reserve (FoWHCR), the Wonthaggi Seed Bank and several other community groups together planted 7000 trees and 12,000 wetland plants to transform the Rifle Range - a degraded piece of public land that had been grazed by stock for the last 100 years - into a wetland with walking tracks, interpretive signage and a bird hide. Today it is home to more than 100 species of birds.
Communities are playing their part, and it's critical to support their efforts. Local government has a role in developing policy solutions to address extinction while strengthening and decarbonising Bass Coast's economy. For example, the strategic indicator to revegetate 1.5 per cent of the shire per year could be turned into a centrepiece of landscape-scale regeneration of nature and communities for a jobs-rich economic stimulus, as recommended by the Pew Charitable Trust.
Council elections are coming up in October. The most important action you can take on behalf of Nature is to vote for elected representatives across all levels of government who will prevent environmental destruction and address climate change.
Critical issues include working with all stakeholders to ensure conservation of the Holden Proving Ground bushlands, the Grantville grasstree forest and surrounding corridor, monitoring and enforcement of current planning frameworks, and working to ensure the Yallock-Bulluk Marine and Coastal Park will protect and enhance Bass Coast Shire's unique beauty.
National Threatened Species Day on September 7 commemorates the anniversary of the death of the last known Tasmanian Tiger in 1936 and raises awareness of the plants and animals at risk of extinction.
The Extinction Crisis in Australia's Cities and Towns, Australian Conservation Foundation, 2020
Biodiversity Biolinks Plan, Bass Coast Shire Council, 2018
Neil Rankine
The Federal Government just today rammed through a weakened EPBC Act reform. They even cut short debate on the issue, one so important to so many of us. Let's hope the Senate can ensure that doesn't get through.
Thank you for such an interesting and positive article, Lauren. I find it unbelievable that the Federal Minister for the Environment can act on an interim report to weaken an already ineffective piece of protective legislation to make it easier for more destruction to occur, supposedly in the interest of The Economy and good old Jobson Growth (remember him?). You described lots of good work being done locally and I think each of us can only do our bit to protect and restore the remnant parts of our locality. Together we really can make a difference.


The company has added five new branches in fiscal year 2019 to better serve its customers.
Beacon Roofing Supply, Inc. (Nasdaq: BECN)("Beacon" or the "Company") announced today that it opened 4 new greenfield branches in its fiscal second quarter ended March 31, 2019. These new branches bring the Beacon's count of fiscal year 2019 organic branch additions to five, and with more set to open later this year. The list of new 2019 branch locations are as follows: Plano, Texas; Panama City, Florida; Odessa, Texas; Fresno, California; and Reno, Nevada.


BioDetection Systems b.v. (BDS) is a Dutch company providing bio-based screening technologies for safety, quality and bioactivity assessment. These services are available through our own laboratories, but may also be performed under license. In addition, our knowledge, assays and facilities are available to others by means of contract research or as a project partner.
Our company is highly experienced in the sensitive detection of key organic pollutants such as dioxin(-like) compounds, PCBs, PAHs and other persistent organic pollutants (POPs). Moreover, we are equipped to detect an extensive set of biological activities in various types of samples ranging from e.g. environmental to clinical samples and from pure compounds to extremely complex mixtures. Our assays provide meaningful information related to a.o. xenobiotic metabolism, endocrine disruption, genotoxicity, and acute toxicity.
Lead by Professor Abraham Brouwer, a recognized expert in these fields, BDS has evolved into a knowledge intensive company in the field of safety and hazard assessments as well biological functionality screenings.


text:
Emanuel Levy
Cinema 24/7
LEVY UNFILTERED
LEVY BIO
Elle: Interview with Director Paul (Basic Instinct) Verhoeven
January 4, 2017 by EmanuelLevy
Elle, directed by Paul Verhoeven, is France's entry to the Best Foreign Language Film Oscar
Idea to adapt Philippe Djian's novel "Oh…" ?
Paul Verhoeven: The idea wasn't mine; it came from the producer, Saïd Ben Saïd. He contacted me in the US, sent me Philippe Djian's novel, which I read and found very interesting. I knew we had the material for a movie, but I had to think it through and find my way of appropriating a story I would never have come up with myself.
Adaptation process?
It was very important for me to re-appropriate the story. A lot of things were thrashed out in conversations with David Birke, who wrote the American screenplay. I never write the first draft of a script, I always leave that to a real screenwriter. At that stage, everything was still open: things gradually took shape, like a sculpture. My personality as director gradually insinuated itself into the story. The storyboard stage was also crucial to making the novel mine by providing a visual translation of the action.
Shooting Elle in the U.S.?
PV: Yes, which explains picking out an American writer, with a view to shifting the action from Paris to Boston or Chicago, with a wholly American cast. But it was tricky, artistically as well as financially. We realized that no American actress would ever take on such an amoral movie. Even for actresses I know really well, it was impossible to say yes to this part, whereas Isabelle Huppert, whom I had met at the outset, was very keen to do the movie. Around six months in, Saïd said to me, "Why are we fighting to make the movie in the US? It's a French novel, Isabelle Huppert is keen to do it—we're stupid!" And he was right. I realize now that I could never have made this movie in the US, with this level of authenticity.
Michèle is strong woman but she reacts in disturbing way to rape
PV: It's a story, not real life, nor a philosophical vision of women! This particular woman acts that way, which doesn't mean that all women will or should act that way. But Michèle does! And my job consisted above all in directing this story in the most real, interesting and credible way possible. Thanks especially to Isabelle Huppert, whose incredible performance makes her character's behavior completely convincing.
Your direction never seeks to explain?
PV: Explaining is what the audience has to do for itself using the elements they've been given, without one of them justifying everything on its own. For example, I didn't want anyone to be able to say that Michèle was so traumatized as a child by her father's acts that it's normal for her to react to the rape that way. I wanted to escape that constrained vision of the character and her behavior. It's a possibility but no more than that. The explanation is, simply, Michèle, in every aspect of her personality. As for working out if she was always like that or became that way because… We just don't know.
Master of the art of ambiguity
When Isabelle Huppert saw the movie, that was one of the things she said to me: "The most interesting aspect is the perpetual ambiguity." She's right, it's always ambiguous. It's hard to completely grasp this woman. Everything is fluctuating, strands intertwine…I had already done that in other movies, particularly Total Recall—in a totally different genre—by combining dream and reality. At the end, you're not sure what to think. It's unclear. I like keeping options open. Just like in life, you never know what's hiding behind a smile. Or not.
Very early on, Michèle pictures a scene of her killing her attacker. This fantasy scene contributes to the atmosphere of blurred lines and to the expression of this woman's complex personality.
Michèle has no problem imagining her rapist's death. And at the end of the movie, when it actually occurs and her rapist removes his mask before dying, a smile flickers across her face. It's a very important moment that we discussed at length with Isabelle. What she does is minimal—she doesn't act, she doesn't intervene, she just thinks and we see her thinking, "It's all you deserve. You're paying for what you did at the start". There's a hint of divine retribution in her eyes. And irony: "You should have seen it coming. Now, it's too late!".
The rape scenes are like black holes in a tale of daily life that starts back up again for Michèle, as if nothing had happened.
I like doing that a lot. In Robocop, for example, I interspersed the storytelling with news footage and fake commercials. I think it comes from my interest in painting, in Mondrian, with the juxtaposition of blue and red squares interrupted by black lines. The rape scenes had to be disturbing. If I shot them like the rest of the story, it would have been nonsensical and dishonest. We had to be confronted with the violence of those scenes.
Despite violence of attacks, Michèle is not downcast or damaged
PV: No, that would be too conventional. We'd be slipping into melodrama and boredom. It's more interesting and amusing to surprise the audience, rather than happily regurgitate what has already been done by other directors and writers. I'm a great admirer of Stravinsky and his unusual way of composing his symphonies, of subverting the norm. Also, that artistic decision keys into the character of Michèle and her attitude to events: I was raped but I'm here now and it doesn't matter. Let's order a drink and some dinner!
Moral implications: Michèle is not a victim
PV: Just like the plot, morality is open to manipulation in this movie. As soon as we can, we have to try to veer off the beaten path. Djian doesn't make Michèle a victim either. Taking the opposite course would have been unfaithful with regard to the book.
The violence endured by Michèle is also a means of self-knowledge
PV: She's already made a good job of owning them! Michèle is a very aggressive woman. Her mother criticizes her for wanting everything to be healthy and sanitized, but I confess I never understood that line, which came from the book! Her attitude toward her mother, her son and his girlfriend is very harsh. She expresses great animosity toward them, and toward her friends and acquaintances generally. There is violence in all my movies, but it seems normal to me—it's simply the violence in the world that makes headlines in the press, on every page, not just the front page. The media is full of bad news: we're addicted to disasters because disasters are fascinating and can be beautiful as well. Seen from a particular distance, like Turner paintings, destruction can be sublime. Close up, of course, it's horrible.
One scene captures the contradictory emotions we feel while watching: Michèle's confession of her father's murders to Patrick. We are in turn horrified, amused, skeptical, touched. The way she tells the whole gruesome story with a smile… That scene wasn't in the novel. David Birke wrote it and Isabelle immediately understood that it needed to be played lightly to string us along. You can't work out: is she's emotional or fooling with Patrick. Very few actresses could do what she does. And in the background, there's the music of the mass. Finally, in similar tones, the film's score takes over almost up to Michèle's "Not bad, huh?" Then we go back to the music from the mass, whose gravity and solemnity give the scene an emotional dimension that contrasts with Isabelle's lighthearted tone.
First film shot in France
PV: It was hugely enjoyable because there is a lot of respect in France for film and directors. More than in Holland or the USA. So there was no problem, except with my brain! Before I came here to make the movie, I had terrible headaches that my doctor couldn't explain. The moment I moved to Paris and started work on the movie, they went away for good. In fact, the headaches came from fear—fear of the unknown, fear of diving into a different culture and different language. After a few weeks in Paris, my brain realized I had enough hold over the film, and came to terms with the whole extraordinary adventure. Having made movies in Holland for twenty-five years, then for another fifteen in the United States, it really was a step into the unknown, from a quasi-existential point of view. Everything was new to me—actors, crews, locations… And that was great because when you launch yourself into the unknown, you become extremely creative and inspired. I felt the same when I left Holland to make Robocop in the States.
Novel's French mindset is shaken up by your direction
PV: The film focuses on the social interactions of all these characters more than the actual crime story. I prepped for it by watching French films, but I really wanted to make something different with constant tension. That's the only way I know how to work, by repeatedly breaking up the linearity of the story, which explains the scene in the car between Patrick and Michèle after the party. It wasn't in the novel—David wrote it to reinject some narrative tension. Michèle has just admitted to Anna that she was having an affair with Anna's husband and now she threatens Patrick, saying she'll tell everything to the police. When she gets out of the car, will he try to kill her? She seems to half-expect it and a very scary game plays out between them.
Working with French actors?
PV: Fabulous. And not very different from working with other actors. In most cases, I wasn't familiar with their previous work. I picked them mostly on instinct. I wanted them to be beautiful, alluring, and not too French-looking! I think I filmed them through an American filter almost. We had a few conversations and my directions were fairly basic—less movement, pare it down. It was fascinating, for example, to see an excellent actor, such as Charles Berling, change his style of performance from one minute to the next.
Isabelle Huppert familiar with your work?
Six or seven years ago, TURKISH DELIGHT was screening at the Cinémathèque Française and Isabelle was there to present the movie. She said that she first saw it when she was very young and that it was one of the reasons why she became an actress. Isabelle is fearless. Nothing is a problem for her. She will try anything, she is phenomenally bold.
Laurent Lafitte?
PV: When we met, I asked Laurent to do the scene where he offers to show Michèle the boiler in his basement, with a dangerous, almost demonic twinkle in his eyes, whereas he is so upbeat and smiling the rest of the time. And he was able to do it. And he's so handsome!
Then we chose Virginie Efira. We'd written his wife as a withdrawn, not very happy woman, but that made Patrick's urge for an affair with Michèle far too comprehensible. It was better for her to be beautiful and adult. Virginie is pitch perfect, even though her sex appeal is exploited here less than in other films. As soon as I met her, it was obvious she was right for the part. As for Anne Consigny, Judith Magre, Vimala Pons and Alice Isaaz, they all have a lot of character!
Choice of Stéphane Fontaine as cinematographer
PV: I wanted a kind of looser feel, not over-framed. I studied the work of several French DPs, and there was some of that in A Prophet and Rust and Bone, the two Audiard pictures that Stéphane Fontaine lit. I suggested we shoot with two cameras—a method I had just used in Holland on Tricked, a TV movie written by online contributors. Every set-up was planned for two cameras, often placed very close to each other to facilitate continuity, so the cuts in editing weren't as obvious. I did more long takes than usual, with hand-held cameras. I wanted a kind of casual aspect, like somebody watching. The camera moves slightly, in almost voyeuristic observation.
During the first two attacks, the soundtrack is scaled down
PV: That basement scene starts with electronic music, like the two earlier rape scenes, but orchestral music then fades in. We had long talks with Anne Dudley, our English composer, about what we wanted to express. It's absolutely clear, at that moment, that Michèle is consenting, that she has responded positively to his invitation in what is almost a scene of seduction. She has taken the decision to play this masochistic game on her own terms. You might think this powerful woman perhaps agrees to play out a game of domination to reenact the murders perpetrated by her father, while controlling the exact sequence of events this time.
Sure, even if I don't say so explicitly. It's up to audiences to draw their own conclusions. He's just had his orgasm and he gets up. Only then does she climax too. Something rises in her that, I think, has to do with everything that happened so many years before. Just then, thanks to this masochistic game perhaps, she releases all the accumulated misery. At least, that's how I described it to Anne Dudley, so that her score would aim for a tragic, romantic feel. In the novel, Michèle isn't present at the time of her father's tragic actions. In your movie, not only is she there, there is also the picture of her staring into space on the TV news. It's an image that brings to mind a fantasy or horror movie. True, it wasn't in the novel. Once again, it was David Birke's idea, but he was undoubtedly inspired by the Michèle character that Djian had created. That's all part of the process of turning a novel's words into moving pictures.
Reconstitution of the primetime crime investigation documentary?
PV: I watched a lot of tapes of similar shows to absorb their aesthetic approach and copy the way they frame and edit shots. While the rest of the film tends toward elegance, I asked Stéphane Fontaine to film these scenes in a jerkier style, and I accentuated it in editing. Then we worked on the footage to give it a grainier, older feel. The whole point was to make audiences feel they are watching genuine archive footage of real-life events. That was also the case in Djian's novel. He came up with the whole story by drawing his inspiration from Norwegian mass murderer Anders Behring Breivik.
Who conceptualized the video game produced by Michèle
PV: Creating a video game from scratch would have been too expensive. We didn't have time to do it, either, so we based it on an existing French video game that we tweaked to fit the story. The video game heightens the atmosphere of violence, especially with the porn video that is posted to the whole staff's computers. In the novel, Michèle and Anna work in the screenwriting business, but it seemed a boring job to film, not at all visual! I was in L.A. with my family, wondering what I could do with that, and my daughter, who is a painter, said, "How about they work in video games?".
Patrick's wife, Rebecca, has one of the last lines in the movie
PV: I'm no Christian, and I've never been in a church, except Notre Dame to admire the architecture, but I have some interest in religion. I studied the life of Jesus for a book and I'd like to make it into a movie. Just like sex and violence, religion is very important. Twenty years ago, everybody thought religion's influence severely diminished, but it is all over our societies again now, and not in a positive way. So I thought it would be interesting to show a character truly driven by her faith. Rebecca is slightly naïve and very devout. She goes on a pilgrimage de Santiago de Compostela. Whenever I could, I enjoyed cranking up the religious dimension, especially at the dinner when she asks to bless the meal, and then to watch midnight mass. And at the end, she informs Michèle that she was aware of her husband's actions. Like the Catholic church, which knew for years what some priests were doing to little boys.
Film's title?
"Oh…" brought to mind The Story of O, a book that the French producer Pierre Braunberger asked me to adapt right after Turkish Delight. Elle was my producer's idea and I find that it captures what lies at the heart of a movie focused on this singular woman.
Michèle and Anna's walking away together
PV: When we shot that scene, they ended up kissing, but it was too much and not at all in the style of the movie, which never says things explicitly. Same goes for when they're in bed together. I had shot what happened next, the two of them making love, but there were already enough clues, so I preferred to cut to next morning and leave everything to audiences' imaginations, if they cared to imagine it. When you deploy irony, you have to play on nuances and doubt, and never throw an interpretation into audiences' faces.
Interview by Claire Vassé.
Filed Under: interview
PROFESSOR / CRITIC / AUTHOR
LIKE EMANUEL ON FACEBOOK
FOLLOW EMANUEL ON TWITTER
Follow @EmanuelLevyPhD


Live Nation announced the 23-date tour Monday. It will feature original band members Brian May and Roger Taylor with Adam Lambert singing lead.
It will kick off in Vancouver, British Columbia, on July 10 and will swing through Chicago with a stop at the United Center on August 9th.
It will end in Charlotte, North Carolina, on Aug. 23. Other venues include Los Angeles, New York, Chicago, Dallas and Atlanta.
The tour follows the group's September run in Las Vegas.


Our scuba diving instructor will give you basic instructions. This will allow you to make 2 dives under the supervision of our dive instructor. This resort course does not qualify you for certification. The BC and regulator are included with a resort course. The fee is $125.00.


text:
Boy Scouts of America plan to exit bankruptcy would pay abuse survivors an average of $6,000 each
Cara Kelly, USA TODAY
March 7, 2021, 10:29 AM ·20 min read
Boy Scouts of America is proposing to pay roughly $220 million toward a trust to compensate tens of thousands of former members who say they were abused as scouts, according to a statement from the committee that represents survivors in the case.
Another $300 million may come from a voluntary contribution from local councils, the Boy Scouts said in court documents filed Monday, but the local organizations have given no formal commitment.
The number is a fraction of the $1 billion of the organization's estimated value, and a sliver of the value of its subsidiaries, including local councils as well as various trusts and endowments, which USA TODAY estimates could exceed $3.7 billion.
The proposal is part of a reorganization plan put forth by the nonprofit detailing how it intends to handle the massive child sex abuse case that's threatening its existence – the largest ever involving a single national organization – and emerge as a viable entity.
It comes a little more than a year after Boy Scouts filed for bankruptcy in federal court in Delaware. At the time, the organization said it faced 275 lawsuits in state and federal courts plus another 1,400 potential claims. Nearly 95,000 claims were filed by the November deadline set by the bankruptcy judge.
The proposed settlement would amount to about $6,000 per claimant, even after the total number of claims is reduced after duplicates are deleted and other reviews. That number assumes an even distribution among survivors and does not reflect issues related to statutes of limitations or specific acts of abuse.
Boy Scouts says it will put forth all unrestricted cash and investments above the $75 million it says it needs to continue operations. It also will contribute its art collection, which includes original Norman Rockwell pieces and two paintings by Walt Disney, as well as two facilities in Texas and its oil and gas interests, consisting of more than 1,000 properties in 17 states.
In a statement, the Boy Scouts said supplements to the plan "will include a more detailed breakdown of the process to compensate survivors and more details about how local councils will support this effort."
"The Plan demonstrates that considerable progress has been made as we continue to work with all parties toward achieving our strategy to provide equitable compensation for victims and address our other financial obligations so that we can continue to serve youth for years to come," the statement continues.
But the proposal may be dead on arrival. The survivors' Torts Claimant Committee objects to the plan.
"It's a woefully low amount of value and even worse amount of cash," said James Stang, who serves as the committee's counsel.
Stang and the committee calculated the $220 million figure based on its knowledge of Boy Scout's assets and documentation that has been provided in closed-door discussions.
According to a USA TODAY review, a dollar figure for the assets and cash Boy Scouts says it will contribute to the trust is not included in the filing. That's an additional problem preventing plan approval, Stang said.
"Creditors are entitled to know this information so they know to vote yes or no on a plan," Stang said. "It's supposed to give you that information so you can make an informed vote."
Gill Gayle, an abuse claimant who serves on the advisory board for the Coalition of Abused Scouts for Justice, which represents approximately 65,000 survivors in the bankruptcy, said it was only after juries began awarding survivors million-dollar verdicts that Scouts realized "the sum total of paying for their deeds exceeds their monetary value."
"We're talking about them trying to get a discount on child abuse, on systematic child abuse that occurred decade after decade after decade," Gayle said.
As a result of the violent sexual abuse he alleges he suffered as a kid in Scouts, Gayle said he spent $125 to $150 an hour on therapy for 26 years, which was rarely covered by insurance. The Scouts' proposed settlement would barely reimburse him for that cost alone.
Paul Mones, who tried a landmark case in 2010 that resulted in $19.9 million in damages, said that result should have been a wake-up call for the organization. Instead, he said, it is still trying to go back to business as usual.
"There was a forest fire in their backyard and they were watching television and having dinner and not thinking anything was wrong," Mones said. "Now the forest fire is at their door and they still think, though the plan will reflect some cutting back, that they can have a plan that will not really inflict any kind of serious pain on them."
Much about Boy Scout's finances remains unknown, which could complicate the approval process. What is owned by local councils, and in turn how much of that should go to victims, remains a central point of contention.
More: Boy Scouts files Chapter 11 bankruptcy in the face of thousands of child abuse allegations
More: Boy Scouts abuse claims may become largest case against a single national organization
Another sticking point is how much Boy Scouts deems core to operations or restricted by donors, and thus not available to compensate survivors.
Attorney Tim Kosnoff, left, speaks during a press conference held by the Abused in Scouting legal team on Aug. 6, 2019, in Washington, D.C.
Tim Kosnoff, a lead attorney with the group Abused in Scouting, said the gulf is vast between what assets Boy Scouts have proposed to contribute and what survivors will approve – maybe too vast for the nonprofit to close before it runs out of money. The organization has said it needs to exit bankruptcy by August or risk a cash shortage, citing declines in revenue due to COVID-19 restrictions that have closed Scout camps and diminished fundraising opportunities.
"I just don't see a plan that would be acceptable to the victims coming together in time for the Boy Scouts," Kosnoff said. "I think they're finished. I think they're out of time."
Local assets are vast
As it stands, the plan only contains a commitment from the national organization to request that local councils voluntarily contribute no less than $300 million to a trust for survivors. In exchange, the Boy Scouts are seeking complete and permanent prohibition of any lawsuits – an exchange that is already being rejected by survivors and their attorneys.
Jason P. Amala of Pfau Cochran Vertetis Amala PLLC, which represents 1,000 survivors in the bankruptcy, said Boy Scouts appear to be offering a fraction of what they could pay, and should pay, to survivors.
"I think we're all just shocked that they're talking about such a low number," Amala said. "I hope that this, at least, illustrates to people that (Boy Scouts) are not acting in good faith."
As first reported by the Wall Street Journal, roughly 70% of the Scouts' wealth is held by different legal entities, namely local councils, most of which the national organization has attempted to wall off from the bankruptcy.
In an analysis of 2018 tax filings, the latest available, USA TODAY found more than $3 billion in assets held by more than 380 limited liability corporations – LLCs – connected to local scout groups. That would put the proposed contribution of the local councils to the survivors' trust at roughly one-tenth of their total assets.
More than $1.35 billion of those assets are securities, while another $2.18 billion were land, buildings and equipment, and net depreciation.
That land includes thousands of acres in the mountains of Colorado and camps with views of Pikes Peak to a 700-acre donation by John D. Rockefeller Jr. in northern New Jersey, a stone's throw from New York City and some of the most expensive real estate in the world.
From a 53,000-square-foot office building in Atlanta to a 1.5-mile reservation along the shores of the Lake of the Ozarks to a beachfront campground in St. Croix in the U.S. Virgin Islands, the local councils' assets are vast.
The USA TODAY Network found $101 million in local councils' property in the state of New York alone, and another $16 million in Tennessee, according to tax records.
Those numbers may not come close to reflecting current worth.
Laurie Styron, executive director of CharityWatch, said fixed assets on nonprofits' balance sheets are based on historical costs. If the Scouts own property sold or donated to the organization many decades ago, those values may not match current fair market value.
In an extreme case, the Las Vegas Area Council listed the value of its land, buildings and equipment at more than $13 million on its 2019 tax filings. Its holdings include nearly 1,150 acres in the Las Vegas Valley, the Spencer W. Kimball Scout Reservation.
The bulk of the land was sold by the Bureau of Land Management in 1958 to what is now the Las Vegas Area Council under a program that sells and leases federal land to local and state entities or nonprofits for recreational or public use. The council was restricted from selling or transferring the land for 25 years.
It was marketed by a commercial broker for high-end development on behalf of the council in 2019. The listing price: $90 million.
That property has not sold. W. Todd Walter, the Scout executive for the Las Vegas council, told USA TODAY the Tort Claimants Committee "hired an independent, third-party land appraiser who just appraised that land at $12-to-14 million."
Several of the Tennessee properties owned by Scout councils are listed in the state's real estate assessment data with appraised values of $0. That includes 2,400 acres at Skymont Scout Reservation on the edge of the Cumberland Plateau, listed with a sale price of $0 in 1975, around the time the camp opened. Comparable property in the area is currently for sale at anywhere from $2,400 to $20,000 an acre, according to a USA TODAY analysis.
Styron said real estate valuations can be complicated for a number of reasons, including whether easements or mineral rights are attached or because of local and state ordinances.
Attorneys say that thus far bankruptcy proceedings have done little to provide clarity. Stang said the claimants committee has received information from Boy Scouts and the councils, "but it is in our opinion it is incomplete."
"Not all 250 some odd councils have responded as completely as others, or at all," Stang said.
Boy Scouts' assets are spread across a web of trusts and LLCs, which limits their availability to creditors and obfuscates the exact value of the organization.
"It's a great planning tool," Pamela Foohey, associate professor at the Indiana University Maurer School of Law, . "Bankruptcy or not, putting money and property in different corporate entities is a way to section off liability in a corporation or in a company whether it be nonprofit or for-profit."
Foohey also said the only entities obligated to contribute to the victims' fund are the national organization that filed for bankruptcy and its insurers.
Accusations of hidden assets
Boy Scouts has insisted that the local councils are distinct and financially independent from the national organization and have argued they should be "protected parties" in the bankruptcy case.
The national organization describes its relationship with local councils as essentially a franchise arrangement: The national group handles the development of Scout content and structure, licensing, training, human resources, legal support and information technology; the local councils oversee troops and Cub Scout packs in a region and run day-to-day operations.
The bankruptcy judge has granted an injunction on all litigation against the councils. The Boy Scouts organization seeks to keep that injunction, and upon agreement of its proposed plan, to indemnify the councils "to the fullest extent lawful, from and against any and all claims, liabilities, losses, actions, suits, proceedings, third-party subpoenas, damages, costs and expenses (including full reimbursement of all fees and expenses of counsel), as incurred, related to, arising out of, or in connection with any Abuse Claim," according to Monday's court filings.
A Boy Scout-themed Norman Rockwell painting is displayed on July 22, 2013, during an exhibition at the Church History Museum in Salt Lake City, Utah. The Boy Scouts of America disclosed in a bankruptcy document that the group owns original Rockwell paintings, which would be sold off to pay sexual abuse victims.
The filings suggest that after the proposed plan would take effect, any abuse claims against the councils would be "permanently and forever stayed."
Victims' attorneys are fighting against Boy Scout's assertion that the councils are discreet entities, noting that they operate hand-in-glove with the national organization and the councils have significant liability for their part in allowing child abuse to continue unabated for decades. They've also accused Boy Scouts of using the division to shield assets from survivors since a majority of the organization's wealth lies at the local rather than national level.
More: Tensions rise over local councils' role in Boy Scouts bankruptcy proceedings
More: Boy Scouts bankruptcy: What we know about victims, assets and the future of scouting
Moreover, suspicions have been raised that local councils have deliberately hidden assets.
The Torts Claimants Committee accused the Middle Tennessee Council of transferring several camps into a trust last summer, breaking an agreement that they wouldn't sell or transfer properties without notifying the creditors. The trust does not mention Scouts in its name or description, but the court ordered the addition of language stipulating that Boy Scouts may still have interest in the property.
Kosnoff said victims are being asked to sign off on a plan to vacate their rights to sue without a clear picture of the councils' financial status.
"You're asking victims to release not just BSA national but all these councils and you have no idea what the value is of the assets?" Kosnoff asked. "Is it $2 billion in assets? Is it $10 billion? $20 billion? Nobody can answer that question, which is going to be I think a dilemma for the bankruptcy court."
Foohey said local councils may face significant liability if they don't contribute to the fund, even though by law they may not have to. Hundreds of lawsuits against local councils in states across the country are currently in limbo as long as the injunction remains in place.
Boy Scouts is hoping to address those claims via the victims' fund within the bankruptcy case. But the councils won't be released from liability if they don't contribute enough to the fund to get approval from survivors. At that point, the state cases will resume and Kosnoff said potentially thousands more will be filed.
Contributing Chartered Organizations, which sponsor local troops, are seeking indemnity from the sex abuse cases. According to Monday's court filings, there are currently more than 41,000 Chartered Organizations, which include churches and civic associations. The most notable is Church of Jesus Christ of Latter-day Saints – which for 100 years was among Boy Scouts' largest partners until it cut ties with Boy Scouts in 2018.
Mormon churches also helped in selecting Boy Scout leaders, and may be liable in abuse claims.
What assets are available to pay victims?
Further complicating the road to finalizing a deal is how much Boy Scouts of America money is legally available to compensate victims.
In January, the Torts Claimant Committee filed a complaint about the national organization's assertion that $667 million of their $1 billion estate, more than 60%, is off-limits to victims.
Nonprofit organizations are often bound by restrictions in how donations can be used, experts say. For example, if a donor gives money to a program for direct aide to veterans, "the charity is not allowed to use it on buying new software for their website," Styron said.
The committee has argued that much of Boy Scouts' restricted assets are, in practice, unrestricted, including three high adventure bases. Those camps – Philmont in New Mexico, Northern Tier in Minnesota and Florida Sea Base – have an asserted value of more than $60 million, according to court records.
The committee says they have been used to gain a line of credit from JP Morgan Chase, thus indicating they are not restricted. In court records, Boy Scouts said that line of credit, more than $62 million, is also restricted.
More than half of the assets Boy Scouts says are restricted relate to the Summit Bechtel Reserve in West Virginia, which amounts to $345 million.
Another wildcard in the total financial picture for survivors is the amount of contribution from Boy Scout's insurers. Though they will be on the line to contribute based on the policies held by Boy Scouts, the amount has yet to be determined.
Further, Stang and other survivors' attorneys say the Boy Scout's reorganization plan puts the onus of getting payouts from the insurers on the survivors themselves. And the proposed contribution to the survivors' fund would barely cover the cost of litigating the insurance companies, Stang said.
"If I had to look at each one of these claims, and I get paid $1,000 an hour, I get $85 million to just look at paperwork, and that doesn't involve talking to the person or their council or due diligence," Stang said. "That alone illustrates the value the Boy Scouts are putting up that doesn't cover any litigation against insurance carriers."
In recent weeks, insurers affiliated with insurers including Chubb and Hartford Financial Services Group, have questioned the validity of claims filed by law firms representing survivors arguing that they were poorly vetted and lack sufficient information.
In court documents, the insurers also requested permission to question survivors as well as any attorneys who signed claim forms for them. Those forms typically must be signed by claimants but, as the deadline approached, attorneys signed hundreds on behalf of their clients.
Tancred Schiavoni, counsel for Century Indemnity Company, another of Boy Scout's insurers, said in a statement that the reorganization plan doesn't include a process to root out bad claims, further reason for the court to allow the insurers to question attorneys who signed hundreds of claims forms.
"Century supports a fair resolution for survivors of sexual abuse, but this plan doesn't get us there," Schiavoni said. "Allowing invalid and fraudulent claims will hurt valid survivors of sexual abuse by delaying and diluting any compensation they may receive."
A review by USA TODAY found little if any direction on how claims would be processed in the Boy Scout's plan. A document titled "Trust Distribution Procedures" was listed under "Plan Supplement Documents" but not attached to the filing.
Robbie Pierce, who said he was abused by a Boy Scout camp employee when he was 13, welcomes oversight of the claims, saying that, if anything, the number is still low. He said he spoke with other members of his troop who chose not to come forward even though they were abused by the same camp employee.
"We're not opportunistic. We're a bunch of Boy Scouts," Pierce said. "That used to be the word for honest and helpful people."
What's next in the bankruptcy case?
Attorneys for survivors in the case say they will file a response to the plan, while the claimant's committee will raise its own objection. Gayle said the coalition is focused on making sure all survivors are taken care of.
"The strategy here is to have everyone recognized for what they suffered, first of all, and to have that respected, and to get as much help to them as we can," Gayle said. "There isn't a single man who suffered this abuse that does not have issues that need to be addressed."
"We have guys in all kinds of situations and, frankly, we have men who already committed suicide and haven't been able to get through their suffering."
If an agreement can't be reached, or Boy Scouts can no longer turn a profit, the court may turn to liquidation, Pamela Foohey, associate professor at the Indiana University Maurer School of Law, said. That might not be a bad outcome for some survivors, she said, referencing the bankruptcy of the Weinstein Company after its founder, Harvey Weinstein, was accused of sexual harassment and assault over decades.
"Seeing the Weinstein Co. taken apart publicly might have been a satisfying outcome," Foohey said.
Another result may be similar to the case with Bikram Yoga. The brand of hot yoga filed for bankruptcy protection in recent years as a result of sexual misconduct allegations against its founder. Its studios rebranded as Bode Yoga, which Foohey said is another option for Boy Scouts, with the local councils rolling over into a rebranded entity.
Kosnoff, who has grown more fatalistic about the potential outcome, says a quick liquidation may result in a better deal for survivors because Boy Scouts will stop hemorrhaging money for attorneys' fees, which eats into the pot for potential victims. According to the filing, Boy Scouts expects to spend $31 million in legal and other professional fees during the case.
Some survivors, however, are upset by the idea of an end to Boy Scouts and hope the nonprofit survives.
Michael Lipari, who was abused at 14 by a Scout leader whom he helped convict of child abuse, said he wants to see the organization acknowledge its mistakes and do everything in its power to make the organization safe.
"They should take some of the survivors and say, 'We're going to have you on a board of advisers on how we can better ourselves and be an organization that can protect children. What are some of your recommendations?' " Lipari said.
"But the first step is they need to own it. Truly own every aspect of it. It's a lot bigger than just putting money into a pot."
In their statement, Boy Scouts said that over many years, the organization has "developed some of the strongest youth protection policies found in any youth-serving organization."
"The BSA's multilayered process of safeguards in place today includes the following measures, all of which act as barriers to abuse: a thorough screening process for adult leaders and staff including criminal background checks, the prompt mandatory reporting of any allegation or suspicion of abuse to law enforcement, and a leadership policy that requires at least two youth-protection trained adults be present with youth at all times and bans one-on-one situations where adults would have any interaction alone with children – either in person, online, or via text."
Pierce said that when he first filed a claim, he wanted to find a way for Boy Scouts to continue to exist while helping those it harmed.
"Once I saw the numbers, and that there were literally thousands of us, I thought this organization has done so much more damage to young men than it has ever done good in this world. And they have always prioritized keeping themselves afloat over the safety of the young men," Pierce said. "The fact that they're now trying to find a way to continue to exist and pay us the least that they can, it's not a surprise. That is their playbook."
"There are too many of us for this ever to be fair, to ever get back a fraction of what we've lost."
Cara Kelly is a reporter on the USA TODAY investigations team, focusing primarily on pop culture, consumer news and sexual violence. Contact her at carakelly@usatoday.com, @carareports or CaraKelly on WhatsApp.
Contributing: Mariah Timms of The Tennessean, Rachel Axon
This article originally appeared on USA TODAY: Boy Scouts bankruptcy: Reorganization plan 'woefully' inadequate
Detroit Rapper making a difference 'buying back the block' and rehabbing homes in old neighborhood
WXYZ-Detroit Videos
Motivational speech from The Rock fails
Latest COVID-19 surge in Illinois has likely peaked, Pritzker says
Belleville News-Democrat
Virtual or in-person: Anderson school districts begin announce Thursday and Friday plans
The Anderson Independent-Mail
Viewer Photos: The First Half of January
KOAA


Retains original diameter when used with hot-applied sealants. SEALTIGHT CERA-ROD Non-Gassing, Heat-Resistant Backer Rod provides correct form and control depth for proper joint configurations. CERA-ROD retains its original diameter and will not shrink, melt or emit gas when used with hot or cold-applied joint sealants.
CERA-ROD is a round, flexible, continuous-length, non-absorbent, non-gassing, non-staining, and non-shrinking material extruded from a cross-linked polyethylene. Compression/deflection is approximately 25 % at 8 psi (55.2 KPa).
CERA-ROD is used in joints or large cracks in Portland Cement or asphaltic concrete. It provides the correct sealant reservoir configuration, controls joint depth and prevents sealant run-out through the bottom of the joint. CERA-ROD also acts as a bond-breaker to prevent bottom side sealant adhesion. The product works equally well with either hot or cold-applied sealants.
JOINT OR CRACK PREPARATION: Remove all dirt and foreign matter.
METHOD OF APPLICATION: Install CERA-ROD with a double-wheeled roller or any smooth, blunt instrument that will insert the material without stretching or puncturing it. CERA-ROD needs to be held in compression to work effectively. The diameter of the rod should be 1/8" larger than the width of the joint for joint widths up to 3/4"; for joints 3/4" and larger, add 1/4" to diameter rod selection. All SEALTIGHT hot-applied or cold-applied joint sealant applications can follow immediately.
Cartons weigh 11 lbs. (4.99 kg) each, except the 1-1/2" and 2" (38.1 and 50.8mm) sizes that weigh 30 lbs. (13.61 kg) each.
Read and follow application information, precautions and Material Safety Data Information.
This material last updated October, 2000.


text:
Air Serbia welcomes new Belgrade airport concessionaire
Air Serbia, the national carrier of the Republic of Serbia, extended a warm welcome to the new French airport operator "Vinci Airports", new concessionaire that will manage the Belgrade airport operations for the next 25 years.
"On behalf of the national airline of the Republic of Serbia, I would like to express my immeasurable gratitude for the cooperation we have had with the incumbent Belgrade Nikola Tesla Airport team led by the CEO Saša Vlaisavljević. Consequently, I would like to extend a warm welcome to the new team, which will pursue the management of this important airport from now on. The Belgrade Nikola Tesla Airport is our home and an important air transport hub. In this regard, our strong, constructive and dedicated partnership can only benefit all of the involved stakeholders", Air Serbia's CEO Duncan Naysmith stated at the occasion.
"The arrival of 'Vinci Airports' as the new airport concessionaire provides a strong impetus for the Belgrade Nikola Tesla Airport's further development, modernization and advancement of business operations. As Air Serbia makes up almost half of the Belgrade airport traffic, we are looking forward to working with the new partner with whom we will be able to continue strengthening the established relations and cooperation. I am certain that further interconnections and collaboration of all relevant parties would yield improved results in the realms of Serbian economy and tourism", Executive Director of Air Serbia Branislav Malović asserted.
Airspace + AirportsEurope
SMBC Aviation Capital delivers Boeing 737-800 to ANA
Frontier Airlines takes delivery of 11th A320neo from GECAS


text:
Q: How to save game progress in a SpriteKit game I'm currently working on a game using SpriteKit, GameplayKit, and JSTileMap. I'm trying to implement a function to save the game progress. I tried to use NSCoder to encode/decode all variables in each class, but XCode tells me that all classes using Entity and Component do not conform to NSCoding. So how do save my game data? Can I just encode everything from the main game scene and it would work?
Thanks for any help.

A: Make sure you are conforming to the NSCoding protocol correctly,  should look like this
class Entity : GKEntity,NSCoding
{
    func encodeWithCoder(aCoder: NSCoder)
    {

    }
    required init?(coder aDecoder: NSCoder)
    {

    }
}

class Component : GKComponent,NSCoding
{
    func encodeWithCoder(aCoder: NSCoder)
    {

    }
    required init?(coder aDecoder: NSCoder)
    {

    }
}

A: How about creating a Singleton class called GameData that houses all the properties you need to be saved like score, highscores etc.
Something like the example I posted here
SpriteKit: Why does it wait one round for the score to update? (Swift)
As others have said your question is quite broad.

A: For what its worth, StackOverflows excels at helping developers solve very specific problems in very specific code.  A question like this is more asking for subjective advice and will be frowned on by the thousands of self-appointed SO question-czars.  That said, here is my take:
I am struggling with a very similar problem right now in an app I am creating that relies on a number of objects and deeply nested dictionaries.  I started trying to NSEncode the objects themselves and unpacking and loading those objects during launch.  I soon found this to be problematic, error prone, and overly complicated. The approach I am attempting now is slightly different.  What I am doing is during the game occasionally saving those key dictionaries by converting them to NSData sets and storing them in a NSUserDefault.  When the game launches, I unpack all of those dictionaries and build objects with them.  I find this method (so far) easier, and just saving the data that the objects are built with saves space as well.


Vince McMahon may not be everyone's idea of the ideal dinner guest, but at least he still visits his mother.
The Wrestling Observer Newsletter is reporting that Vince turned up late to Raw on Monday after visiting his mother, proving that there's NO CHANCE he'd ever desert her.
The show was reportedly another heavily-McMahon written show, with Vince possibly trying to take more control with Raw's ratings falling to their lowest ever numbers.
He believed that the crowd would be a "sombre" one, and so was keen on making the show as happy as possible. I know, I can't believe it either.
So, Vince McMahon is late to Raw after being a good son, and then wants to make the show as happy possible.


Casement windows are side hung and swing open sideways.
Awning windows are hinged from the top and push out– bottom opening.
Casement and Awning windows are double glazed outward opening providing ventilation without interfering on internal space. Both fitted with stainless steel friction stays/ hinges, locking point and night ventilation. Retractable flyscreen can be fitted on the inside.


Of the many small towns dotting Morrowind, few are without a Tavern or Inn of some sort. Almost all taverns serve the various local liquors: Shein, Mazte, Flin and Sujamma, while fancier establishments may also stock more exotic spirits such as Cyrodilic Brandy and Ungorth. Additionally, some taverns offer beds for the weary traveler, as well as a small selection of common potions to cure what the Mazte won't. In smaller towns, the tavern is the center of social life, and those offering services to travelers do so within. Taverns in larger towns with dedicated shops rarely offer such hospitality.
Here is a list of all the taverns in the game, sorted by location.
This page was last modified on 6 March 2019, at 08:55.


High density plastic battery tray cnc machined from a solid sheet. Includes battery tray, single or dual 11" wrap-around velcro straps(depends on tray) and screws for installation(custom and 50x150 trays only - vehicle specific trays typically use stock screws).
1 piece designs allow 1.25" clearance to mud guard and has no spacer - this design fits most vehicles. Please verify 1.25" clearance from center spur gear to mud guard prior to ordering.
Please inquire on size restrictions for custom trays - custom sizes will require additional time for production. 1 inch maximum tray height (limited by material stock).
When ordering a custom tray, please leave a note regarding requested size when you check out. If ordering a standard size tray, please leave the custom option blank. A vehicle-specific custom tray size must be approved (must confirm possibility).
RC8 tray is specific to our RC8 buggy and truggy chassis kits and does not have the mud guard clearance. CRT.5 tray is specific to our Ext. crt.5 chassis kit. MBX6B, MBX6T, XB808 and other vehicle-specific trays are designed to "bolt on" to the stock chassis for these vehicle and feature an integrated esc shelf and pre-drilled holes for battery tray and esc attachment, along with a pocketed underside for esc wire routing.
Many of the vehicle-specific trays will not fit a flat rate box for International shipping.
got the "generic" 150x50mm tray and it fits great in my Hyper 7 conversion. My 5s 4000 40c lipo fits like a glove lying flat in this thing. Could not be happier. Definitely would buy again.
I cant say enough good things about Mikes quality of talent.
I've used a few of Mike's battery trays and have never had a problem. They are plenty strong and always the right size.


We are excited to welcome back Emmie Purcell, owner of Greenhouse Farmacy, to talk about CBD science, benefits, legality and efficacy.
Join us on Friday the 22nd from 6-7:30 PM at Enlyten Lab. RSVP here!
We love the local, organic, sustainable food served up by our neighbors, Green Source Missoula and we've discussed collaborating with them.
Well, we're ready to roll! We'll be unveiling cool perks and collabs with Greensource like smoothie delivery to the Lab after you float. Stay tuned!
We get asked a few times a day if we offer massage. We've waited until we found the perfect person and we think we have found her!
The staff is getting massages from Sharlyssa Duncan as I write this and we're ecstatic to be welcoming her to the team. Sharlyssa will be available for custom massage a few days a week through the summer. Stay tuned!


Brian sits down with morning cup of coffee. Opens laptop.
Brian refills coffee. Thinks about washing dishes in sink. Doesn't. Returns to laptop.
Brian spits out coffee. Brian wipes off laptop screen.
Brian googles "Sunday Mass Readings". Reads about how Moses had much the same reaction when God told him of the plan to send Moses to Pharaoh as his representative to free the Hebrews. Brian remembers the rest of that passage and how Moses tells God that he's got the wrong guy – he's got a stuttering problem, not to mention he had some enemies back there. Surely there must be someone else. Then God reassures him that he will be with him and that he'll back him up. Then Moses trusts, and sets out to do God's work.