text:
using AFAPP = AliFemtoAnalysisPionPion;
using PionAnalysis = AliFemtoAnalysisPionPion;

struct MacroParams : public TNamed {
  MacroParams()
    : TNamed(AFAPP::make_random_string("macro_").Data(), "Macro Parameters")
    , centrality_ranges()
    , pair_codes()
    , kt_ranges()
    , obins()
    , slbins()
    {}

  MacroParams(const TString &name)
    : TNamed(name.Data(), "Macro Parameters")
    , centrality_ranges()
    , pair_codes()
    , kt_ranges()
    , obins()
    , slbins()
    {}

  MacroParams(PionAnalysis::AnalysisParams &a, PionAnalysis::CutParams &c, TString params);

  std::vector<std::pair<int,int>> centrality_ranges;
  std::set<PionAnalysis::PionType> pair_codes;
  std::vector<float> kt_ranges;

  std::vector<double> obins;
  std::vector<double> slbins;

  // monte carlo weight generator
  bool mcwg_lednicky { true };
  bool mcwg_square { false };
  bool mcwg_coul { true };
  bool mcwg_strong { true };
  bool mcwg_3body { true };

  // monte-carlo
  bool mcfg_disable { false };
  bool mcfg_use_1d { true };
  double mcfg_rinv { 5.0 };
  double mcfg_ro { 5.0 };
  double mcfg_rs { 5.0 };
  double mcfg_rl { 5.0 };

  bool eventreader_run1 { false };
  bool eventreader_use_alt { true };
  int eventreader_filter_bit { 7 };
  bool eventreader_multibit { false };
  int eventreader_read_full_mc { false };
  bool eventreader_epvzero { true };
  bool eventreader_vertex_shift { true };
  int eventreader_dca_globaltrack { 1 };
  bool eventreader_centrality_flattening { false };
  int eventreader_use_multiplicity { AliFemtoEventReaderAOD::kCentrality };

  float qinv_bin_size_MeV { 5.0 };
  float qinv_max_GeV { 1.0 };

  UInt_t delta_phi_bin_count { 72 };
  Float_t delta_phi_min { -0.1 };
  Float_t delta_phi_max { 0.1 };

  UInt_t delta_eta_bin_count { 72 };
  Float_t delta_eta_min { -0.1 };
  Float_t delta_eta_max { 0.1 };

  UInt_t q3d_bin_count { 51 };
  Float_t q3d_maxq { 0.1275 };

  UInt_t avgsep_nbins { 100 };
  Float_t avgsep_max { 20.0 };

  bool trueq3d_extra_bins { false };
  bool trueq3d_weighted_denoms { true };

  UInt_t ylm_max_l { 3 };
  UInt_t ylm_ibin { 30 };
  Float_t ylm_vmin { 0.0 };
  Float_t ylm_vmax { 0.3 };
  Bool_t ylm_useLCMS { true };

  bool do_mc_misident_analysis { false };

  bool do_deltaeta_deltaphi_cf { false };
  bool do_avg_sep_cf { false };
  bool do_kt_avg_sep_cf { false };

  bool do_q3d_varbins { false };

  bool cf_qlcms { false };
  bool do_qinv_cf { false };
  bool do_kt_qinv_cf { false };
  bool cf_kt_qlcms { false };
  bool do_q3d_cf { false };
  bool do_kt_q3d_cf { false };
  bool do_kt_lcms_cf { false };
  bool do_kt_prf_cf { false };
  bool do_kt_bf_cf { false };
  bool do_kt_q3dpf_cf { false };
  bool do_pqq3d_cf { false };
  bool do_kt_pqq3d_cf { false };

  bool do_moco6_cf { false };

  bool do_ylm_cf { false };
  bool do_kt_ylm_cf { false };

  // monte-carlo correlation functions
  bool do_trueq_cf { false };
  bool do_kt_trueq_cf { false };
  bool do_trueqinv_cf { false };
  bool do_kt_trueqinv_cf { false };
  bool do_trueq3d_cf { false };
  bool do_kt_trueq3d_cf { false };
  bool do_trueq3dbp_cf { false };
  bool do_kt_trueq3dbp_cf { false };

  bool do_sharequality_cf { false };

  bool do_truedetadphi_cf { false };
  bool do_kt_truedetadphi_cf { false };

  bool do_detadphi_simple_cf { false };
  bool do_kt_detadphi_simple_cf { false };

  bool do_detadphistar_cf { false };
  bool do_kt_detadphistar_cf { false };
  double phistar_radius { 1.2 };
  UInt_t detadphistar_nbins { 144 };

  bool RequestsMonteCarloData() const
    {
      return do_trueq_cf ||
             do_kt_trueq_cf ||
             do_trueqinv_cf ||
             do_kt_trueqinv_cf ||
             do_trueq3d_cf ||
             do_kt_trueq3d_cf ||
             do_trueq3dbp_cf ||
             do_kt_trueq3dbp_cf ||
             do_truedetadphi_cf ||
             do_kt_truedetadphi_cf;
    }

  // ClassDef(MacroParams, 1);
};

// AliFemtoCorrFctn* NewKtBinnedCorrFctn(TString name, AliFemtoCorrFctn *cf, std::vector<std::pair<float,float>> kt_ranges)
AliFemtoCorrFctn* NewKtBinnedCorrFctn(TString name, AliFemtoCorrFctn *cf, const std::vector<float> &kt_ranges)
{
  AliFemtoKtBinnedCorrFunc *ktcf = new AliFemtoKtBinnedCorrFunc(name, cf);
  // ktcf->AddKtRanges(kt_ranges);

  // for (auto kt_range : kt_ranges)
  for (size_t kt_idx=0; kt_idx < kt_ranges.size(); kt_idx += 2) {
    const float low = kt_ranges[kt_idx],
                high = kt_ranges[kt_idx+1];
    ktcf->AddKtRange(low, high);
  }

  return ktcf;
}

void AddKtBinnedCorrFctn(AliFemtoAnalysisPionPion &analysis,
                         TString name,
                         AliFemtoCorrFctn *cf,
                         const std::vector<float> &kt_ranges)
{
  auto *ktcf = NewKtBinnedCorrFctn(name, cf, kt_ranges);
  analysis.AddCorrFctn(ktcf);
}

AliFemtoManager*
ConfigFemtoAnalysis(const TString& param_str="")
{
  std::cout << "[ConfigFemtoAnalysisRun2 Nu (PionPion)]\n";

  const double PionMass = 0.13956995;

  // default parameters for 3D hists with variable binsize (macro config: do_q3d_varbins)
  const std::vector<double>
    DEFAULT_OBINS = {0.        , 0.005     , 0.01028325, 0.01584975, 0.02169951,
                     0.02783251, 0.03424877, 0.04094828, 0.04793103, 0.05519704,
                     0.06274631, 0.07057882, 0.07869458, 0.08709360, 0.09577586,
                     0.10474138, 0.11399015, 0.12352217, 0.13333744, 0.14343596,
                     0.15381773, 0.16448276, 0.17543103, 0.18666256, 0.19817734,
                     0.20997537, 0.22205665, 0.23442118, 0.24706897, 0.26},
    DEFAULT_SBINS = {-0.26      , -0.24519231, -0.23077692, -0.21675385, -0.20312308,
                     -0.18988462, -0.17703846, -0.16458462, -0.15252308, -0.14085385,
                     -0.12957692, -0.11869231, -0.1082    , -0.0981    , -0.08839231,
                     -0.07907692, -0.07015385, -0.06162308, -0.05348462, -0.04573846,
                     -0.03838462, -0.03142308, -0.02485385, -0.01867692, -0.01289231,
                     -0.0075    , -0.0025    ,  0.0025    ,  0.0075    ,  0.01289231,
                      0.01867692,  0.02485385,  0.03142308,  0.03838462,  0.04573846,
                      0.05348462,  0.06162308,  0.07015385,  0.07907692,  0.08839231,
                      0.0981    ,  0.1082    ,  0.11869231,  0.12957692,  0.14085385,
                      0.15252308,  0.16458462,  0.17703846,  0.18988462,  0.20312308,
                      0.21675385,  0.23077692,  0.24519231,  0.26};

  // Get the default configurations
  AFAPP::AnalysisParams analysis_config = AFAPP::DefaultConfig();
  AFAPP::CutParams cut_config = AFAPP::DefaultCutConfig();
  MacroParams macro_config(analysis_config, cut_config, param_str);

  if (cut_config.pion_1_rm_neg_lbl && macro_config.eventreader_read_full_mc) {
    std::cerr << "\nWARNING : Requested reading full-MC AND removing tracks with negative labels\n\n";
  }

  // Begin to build the manager and analyses
  AliFemtoManager *manager = new AliFemtoManager();

  AliFemtoEventReaderAOD *rdr = (macro_config.eventreader_run1)
	                        ? new AliFemtoEventReaderAODChain()
	                      : (macro_config.eventreader_use_alt)
                                ? new AliFemtoEventReaderAlt()
                                : new AliFemtoEventReaderAODMultSelection();

    auto multest = static_cast<AliFemtoEventReaderAOD::EstEventMult>(macro_config.eventreader_use_multiplicity);
    const ULong_t filter_mask = macro_config.eventreader_multibit
                              ? macro_config.eventreader_filter_bit
                              : BIT(macro_config.eventreader_filter_bit);
    rdr->SetFilterMask(filter_mask);
    rdr->SetEPVZERO(macro_config.eventreader_epvzero);
    rdr->SetUseMultiplicity(multest);
    rdr->SetCentralityFlattening(macro_config.eventreader_centrality_flattening);
    rdr->SetReadV0(0);
    rdr->SetPrimaryVertexCorrectionTPCPoints(macro_config.eventreader_vertex_shift);
    rdr->SetDCAglobalTrack(macro_config.eventreader_dca_globaltrack);
    rdr->SetReadMC(analysis_config.is_mc_analysis);
    rdr->SetReadFullMCData(analysis_config.is_mc_analysis && macro_config.eventreader_read_full_mc);
    manager->SetEventReader(rdr);

  if (macro_config.centrality_ranges.empty()) {
    macro_config.centrality_ranges.emplace_back(0, 10.0);
  }

  const AFAPP::PionType
    PI_PLUS = AliFemtoAnalysisPionPion::kPiPlus,
    PI_MINUS = AliFemtoAnalysisPionPion::kPiMinus,
    NOPI = AliFemtoAnalysisPionPion::kNone;

  // default to identical pi+ and pi- analyses
  if (macro_config.pair_codes.empty()) {
    macro_config.pair_codes.insert(PI_PLUS);
    macro_config.pair_codes.insert(PI_MINUS);
  }

  AliFemtoModelManager *model_manager = nullptr;

  // loop over centrality ranges
  for (auto centrality_range : macro_config.centrality_ranges) {

    // loop over pair types
    for (AFAPP::PionType pair_type : macro_config.pair_codes) {

      const char *pair_type_str = pair_type == PI_PLUS ? "pip"
                                : pair_type == PI_MINUS ? "pim"
                                                        : "??";

      // build unique analysis name from centrality and pair types
      const TString analysis_name = Form("PiPiAnalysis_%02d_%02d_%s",
                                         centrality_range.first,
                                         centrality_range.second,
                                         pair_type_str);

      analysis_config.pion_type_1 = pair_type;
      analysis_config.pion_type_2 = NOPI;

      cut_config.event_centrality = centrality_range;

      auto *analysis = new AliFemtoAnalysisPionPion(analysis_name, analysis_config, cut_config);
      analysis->StoreEventReaderConfiguration(*rdr);

      analysis->AddStanardCutMonitors();

      const float QINV_MIN_VAL = 0.0,
                  QINV_MAX_VAL = macro_config.qinv_max_GeV;

      const int QINV_BIN_COUNT = TMath::Abs((QINV_MAX_VAL - QINV_MIN_VAL) * 1000 / macro_config.qinv_bin_size_MeV);

      if (macro_config.do_deltaeta_deltaphi_cf && !analysis_config.is_mc_analysis) {
        auto *deta_dphi_cf = new AliFemtoCorrFctnDPhiStarDEta("",
          cut_config.pair_phi_star_radius,
          macro_config.delta_phi_bin_count, macro_config.delta_phi_min, macro_config.delta_phi_max,
      	  macro_config.delta_eta_bin_count, macro_config.delta_eta_min, macro_config.delta_eta_max
        );
        deta_dphi_cf->SetMagneticFieldSign(1);
        analysis->AddCorrFctn(deta_dphi_cf);
      }

      if (macro_config.do_qinv_cf) {
        AliFemtoCorrFctn *qinv_cf = new AliFemtoQinvCorrFctn("_qinv", QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        analysis->AddCorrFctn(qinv_cf);
      }

      if (analysis_config.is_mc_analysis) {
          model_manager = new AliFemtoModelManager();
          AliFemtoModelWeightGenerator *weight_gen = nullptr;

          if (macro_config.mcwg_lednicky) {
            AliFemtoModelWeightGeneratorLednicky *led_weight_gen = new AliFemtoModelWeightGeneratorLednicky();

            if (macro_config.mcwg_square) { led_weight_gen->SetSquare(); } else { led_weight_gen->SetSphere(); }
            if (macro_config.mcwg_coul) { led_weight_gen->SetCoulOn(); } else { led_weight_gen->SetCoulOff(); }
            if (macro_config.mcwg_strong) { led_weight_gen->SetStrongOn(); } else { led_weight_gen->SetStrongOff(); }
            if (macro_config.mcwg_3body) { led_weight_gen->Set3BodyOn(); } else { led_weight_gen->Set3BodyOff(); }

            weight_gen = led_weight_gen;
          }
          else {
            AliFemtoModelWeightGeneratorBasic *basic_weight_gen = new AliFemtoModelWeightGeneratorBasic();
            basic_weight_gen->ShouldPrintEmptyParticleNotification(kFALSE);
            weight_gen = basic_weight_gen;
          }

          AliFemtoModelFreezeOutGenerator *freeze_gen = nullptr;

          if (macro_config.mcfg_disable) {
          } else if (macro_config.mcfg_use_1d) {
            auto *ff = new AliFemtoModelGausRinvFreezeOutGenerator();
            ff->SetSizeInv(macro_config.mcfg_rinv);
            freeze_gen = ff;
          } else {
            auto *ff = new AliFemtoModelGausLCMSFreezeOutGenerator();
            ff->SetSizeOut(macro_config.mcfg_ro);
            ff->SetSizeSide(macro_config.mcfg_rs);
            ff->SetSizeLong(macro_config.mcfg_rl);
            freeze_gen = ff;
          }

          weight_gen->SetPairType(AliFemtoModelWeightGenerator::PionPlusPionPlus());
          model_manager->AcceptWeightGenerator(weight_gen);
          model_manager->AcceptFreezeOutGenerator(freeze_gen);
      }

      if (analysis_config.is_mc_analysis && macro_config.do_deltaeta_deltaphi_cf) {
        auto *mc_deta_dphistar_cf =
          AliFemtoModelCorrFctnDEtaDPhiStar::Build()
            .GroupOutput(true)
            .Radius(cut_config.pair_phi_star_radius)
            .Phi(macro_config.delta_phi_bin_count, macro_config.delta_phi_min, macro_config.delta_phi_max)
            .Eta(macro_config.delta_eta_bin_count, macro_config.delta_eta_min, macro_config.delta_eta_max)
            .Build();
        mc_deta_dphistar_cf->ConnectToManager(model_manager);

        analysis->AddCorrFctn(mc_deta_dphistar_cf);
      }

      if (macro_config.do_avg_sep_cf) {
        auto *avgsep_cf = new AliFemtoAvgSepCorrFctn("AvgSep",
                                                     macro_config.avgsep_nbins,
                                                     0.0, macro_config.avgsep_max);
        avgsep_cf->SetPairType(AliFemtoAvgSepCorrFctn::kTracks);
        analysis->AddCorrFctn(avgsep_cf);
      }

      if (macro_config.do_sharequality_cf) {
        auto *cf = new AliFemtoShareQualityCorrFctn("",
                                                    QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        analysis->AddCorrFctn(cf);
      }

      if (macro_config.do_kt_avg_sep_cf) {
        auto *avgsep_cf = new AliFemtoAvgSepCorrFctn("",
                                                     macro_config.avgsep_nbins,
                                                     0.0, macro_config.avgsep_max);
        avgsep_cf->SetPairType(AliFemtoAvgSepCorrFctn::kTracks);

        auto *kt_binned_cfs = new AliFemtoKtBinnedCorrFunc("KT_AvgSep", avgsep_cf);

        for (size_t kt_idx=0; kt_idx < macro_config.kt_ranges.size(); kt_idx += 2) {
          float low = macro_config.kt_ranges[kt_idx],
                high = macro_config.kt_ranges[kt_idx+1];
          kt_binned_cfs->AddKtRange(low, high);
        }
        analysis->AddCorrFctn(kt_binned_cfs);
      }

      if (macro_config.do_trueq_cf) {
        AliFemtoModelCorrFctn *trueq_cf = new AliFemtoModelCorrFctnTrueQ("CF", QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        trueq_cf->ConnectToManager(model_manager);
        analysis->AddCorrFctn(trueq_cf);
      }

      if (macro_config.do_kt_trueq_cf) {
        AliFemtoModelCorrFctn *cf = new AliFemtoModelCorrFctnTrueQ("", QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        cf->ConnectToManager(model_manager);
        AddKtBinnedCorrFctn(*analysis, "KT_Qlcms", cf, macro_config.kt_ranges);
      }

      if (macro_config.do_trueqinv_cf) {
        AliFemtoModelCorrFctn *trueq_cf = new AliFemtoModelCorrFctnQinv("Qinv", QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        trueq_cf->ConnectToManager(model_manager);
        analysis->AddCorrFctn(trueq_cf);
      }

      if (macro_config.do_kt_trueqinv_cf) {
        auto *qinv_cf = new AliFemtoModelCorrFctnQinv("", QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        qinv_cf->ConnectToManager(model_manager);

        auto *kt_cfs = NewKtBinnedCorrFctn("KT_TrueQinv", qinv_cf, macro_config.kt_ranges);
        analysis->AddCorrFctn(kt_cfs);
      }

      if (macro_config.do_trueq3d_cf) {
        AliFemtoModelCorrFctnTrueQ3D *trueq3d_cf = AliFemtoModelCorrFctnTrueQ3D::Build()
                                                          .NamePrefix("TrueQ3D_")
                                                          .BinCount(macro_config.q3d_bin_count)
                                                          .QRange(macro_config.q3d_maxq)
                                                          .Manager(model_manager);
        analysis->AddCorrFctn(trueq3d_cf);
      }

      if (macro_config.do_moco6_cf) {
        auto *moco6_cf = new AliFemtoModelCorrFctnTrueQ6D("MRC6D", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        analysis->AddCorrFctn(moco6_cf);
      }

      if (macro_config.do_kt_qinv_cf) {
        AliFemtoQinvCorrFctn *qinv_cf = new AliFemtoQinvCorrFctn("", QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        auto *kt_qinv_cfs = NewKtBinnedCorrFctn("KT_Qinv", qinv_cf, macro_config.kt_ranges);
        analysis->AddCorrFctn(kt_qinv_cfs);
      }

      if (macro_config.cf_qlcms) {
        auto *cf = new AliFemtoCorrFctnQLCMS("", "Qlcms", QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        analysis->AddCorrFctn(cf);
      }

      if (macro_config.cf_kt_qlcms) {
        auto *cf = new AliFemtoCorrFctnQLCMS("", "", QINV_BIN_COUNT, QINV_MIN_VAL, QINV_MAX_VAL);
        AddKtBinnedCorrFctn(*analysis, "KT_Qlcms", cf, macro_config.kt_ranges);
      }

      if (macro_config.do_q3d_cf) {
        auto *cf = new AliFemtoCorrFctn3DLCMSSym("Q3D", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        analysis->AddCorrFctn(cf);
      }

      if (macro_config.do_kt_q3d_cf && !macro_config.do_kt_trueq3d_cf) {
        auto *cf = new AliFemtoCorrFctn3DLCMSSym("", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        AddKtBinnedCorrFctn(*analysis, "KT_Q3D", cf, macro_config.kt_ranges);
      }

      if (macro_config.do_kt_prf_cf && !macro_config.do_kt_trueq3d_cf) {
        auto *cf = new AliFemtoCorrFctnQ3DPF("", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        AddKtBinnedCorrFctn(*analysis, "KT_Q3D_PRF", cf, macro_config.kt_ranges);
      }

      if (macro_config.do_kt_bf_cf && !macro_config.do_kt_trueq3d_cf) {
        auto *cf = new AliFemtoCorrFctnQ3DBF("", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        AddKtBinnedCorrFctn(*analysis, "KT_Q3D_BF", cf, macro_config.kt_ranges);
      }

      if (macro_config.do_kt_lcms_cf && !macro_config.do_kt_trueq3d_cf) {
        auto *cf = new AliFemtoCorrFctnQ3DLCMS("", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        AddKtBinnedCorrFctn(*analysis, "KT_Q3D_LCMS", cf, macro_config.kt_ranges);
      }

      if (macro_config.do_kt_q3dpf_cf && !macro_config.do_kt_trueq3d_cf) {
        auto *cf = new AliFemtoCorrFctnQ3DPF("", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        AddKtBinnedCorrFctn(*analysis, "KT_Q3D_PF", cf, macro_config.kt_ranges);
      }

      const std::vector<double>
        obins = macro_config.obins.empty()
              ? DEFAULT_OBINS
              : macro_config.obins,

        slbins = macro_config.slbins.empty()
               ? DEFAULT_SBINS
               : macro_config.slbins;

      if (macro_config.do_pqq3d_cf) {
        auto *pq_cf = macro_config.do_q3d_varbins
                    ? new AliFemtoCorrFctn3DLCMSPosQuad("PQ3D", "", obins, slbins, slbins)
                    : new AliFemtoCorrFctn3DLCMSPosQuad("PQ3D", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        analysis->AddCorrFctn(pq_cf);
      }

      if (macro_config.do_kt_pqq3d_cf) {
        auto *pq_cf = macro_config.do_q3d_varbins
                    ? new AliFemtoCorrFctn3DLCMSPosQuad("", "", obins, slbins, slbins)
                    : new AliFemtoCorrFctn3DLCMSPosQuad("", macro_config.q3d_bin_count, macro_config.q3d_maxq);

        AddKtBinnedCorrFctn(*analysis, "KT_PQ3D", pq_cf, macro_config.kt_ranges);
      }

      if (macro_config.do_kt_trueq3d_cf) {
        const std::vector<double>
          obins = macro_config.obins.empty()
                ? DEFAULT_OBINS
                : macro_config.obins,

          slbins = macro_config.slbins.empty()
                 ? DEFAULT_SBINS
                 : macro_config.slbins;

        auto *kt_trueq3d_cf = macro_config.do_q3d_varbins
                            ? new AliFemtoModelCorrFctnTrueQ3D("", obins, slbins, slbins, model_manager)
                            : AliFemtoModelCorrFctnTrueQ3D::Build()
                                  .NamePrefix("")
                                  .BinCount(macro_config.q3d_bin_count)
                                  .QRange(macro_config.q3d_maxq)
                                  .EnableExtraHists(macro_config.trueq3d_extra_bins)
                                  .EnableWeightedDenominators(macro_config.trueq3d_weighted_denoms)
                                  .Manager(model_manager).into_ptr();

        AddKtBinnedCorrFctn(*analysis, "KT_TrueQ3D", kt_trueq3d_cf, macro_config.kt_ranges);
      }

      if (macro_config.do_trueq3dbp_cf) {
        auto *trueq3dbp_cf = new AliFemtoModelCorrFctnTrueQ3DByParent(macro_config.q3d_bin_count,
                                                                      macro_config.q3d_maxq);
        trueq3dbp_cf->SetManager(model_manager);
        analysis->AddCorrFctn(trueq3dbp_cf);
      }

      if (macro_config.do_kt_trueq3dbp_cf) {
        auto *kt_trueq3dbp_cf = new AliFemtoModelCorrFctnTrueQ3DByParent(macro_config.q3d_bin_count,
                                                                         macro_config.q3d_maxq);
        kt_trueq3dbp_cf->SetManager(model_manager);

        AddKtBinnedCorrFctn(*analysis, "KT_TrueQ3DByP", kt_trueq3dbp_cf, macro_config.kt_ranges);
      }

      if (macro_config.do_truedetadphi_cf) {
        auto *truedetadphi_cf = new AliFemtoModelCorrFctnDEtaDPhiAK("", macro_config.q3d_bin_count, macro_config.q3d_maxq);
        analysis->AddCorrFctn(truedetadphi_cf);
      }

      if (macro_config.do_kt_truedetadphi_cf) {
        auto *kt_truedetadphi_cf = new AliFemtoModelCorrFctnDEtaDPhiAK("",
                                                                       macro_config.q3d_bin_count,
                                                                       macro_config.q3d_maxq);
        kt_truedetadphi_cf->ConnectToManager(model_manager);

        AddKtBinnedCorrFctn(*analysis, "KT_TrueDetaDphi", kt_truedetadphi_cf, macro_config.kt_ranges);
      }

      if (macro_config.do_detadphi_simple_cf) {
        auto *detadphi_simple_cf = new AliFemtoCorrFctnDEtaDPhiSimple("",
                                                                      macro_config.delta_phi_bin_count,
                                                                      macro_config.delta_eta_bin_count);
        detadphi_simple_cf->SetReadHiddenInfo(analysis_config.is_mc_analysis);
        analysis->AddCorrFctn(detadphi_simple_cf);
      }

      if (macro_config.do_kt_detadphi_simple_cf) {
        auto *kt_detadphi_simple_cf = new AliFemtoCorrFctnDEtaDPhiSimple("",
                                                                         macro_config.delta_phi_bin_count,
                                                                         macro_config.delta_eta_bin_count);
        kt_detadphi_simple_cf->SetReadHiddenInfo(analysis_config.is_mc_analysis);

        AddKtBinnedCorrFctn(*analysis, "KT_DetaDphiSimple", kt_detadphi_simple_cf, macro_config.kt_ranges);
      }

      if (macro_config.do_detadphistar_cf) {
        auto *starcf = AliFemtoCorrFctnDEtaDPhiStar::Params()
                        .Suffix("DEtaDPhiStar")
                        .Radius(macro_config.phistar_radius)
                        .NbinsEta(macro_config.detadphistar_nbins)
                        .NbinsPhi(macro_config.detadphistar_nbins)
                        .into_ptr();
        analysis->AddCorrFctn(starcf);
      }

      if (macro_config.do_kt_detadphistar_cf) {
        auto *kt_starcf = AliFemtoCorrFctnDEtaDPhiStar::Params()
                           .Suffix("")
                           .Radius(macro_config.phistar_radius)
                           .NbinsEta(macro_config.detadphistar_nbins)
                           .NbinsPhi(macro_config.detadphistar_nbins)
                           .into_ptr();

        AddKtBinnedCorrFctn(*analysis, "KT_DEtaDPhiStar", kt_starcf, macro_config.kt_ranges);
      }

      if (macro_config.do_ylm_cf) {
        auto *ylm_cf = new AliFemtoCorrFctnDirectYlm("Ylm",
                                                     macro_config.ylm_max_l,
                                                     macro_config.ylm_ibin, // nbinssh,
                                                     macro_config.ylm_vmin,
                                                     macro_config.ylm_vmax,
                                                     macro_config.ylm_useLCMS);
        analysis->AddCorrFctn(ylm_cf);
      }

      if (macro_config.do_kt_ylm_cf) {
        auto *ylm_cf = new AliFemtoCorrFctnDirectYlm("",
                                                     macro_config.ylm_max_l,
                                                     macro_config.ylm_ibin, // nbinssh,
                                                     macro_config.ylm_vmin,
                                                     macro_config.ylm_vmax,
                                                     macro_config.ylm_useLCMS);

        AddKtBinnedCorrFctn(*analysis, "KT_DirectYlm", ylm_cf, macro_config.kt_ranges);
      }

      manager->AddAnalysis(analysis);

      if (macro_config.do_mc_misident_analysis) {
        if (!analysis_config.is_mc_analysis) {
          throw std::runtime_error("do_mc_misident_analysis requested for non-mc analysis");
        }
        if (!cut_config.cuts_use_attrs) {
          throw std::runtime_error("do_mc_misident_analysis requested for non 'attrs' cut");
        }

        TString misident_name = analysis_name + "_misident";
        AFAPP::AnalysisParams misident_config(analysis_config);
        AFAPP::CutParams misident_cut_config(cut_config);
        misident_cut_config.mc_nonpion_only = true;

        auto *misident_analysis = new AliFemtoAnalysisPionPion(misident_name, misident_config, misident_cut_config);
        misident_analysis->StoreEventReaderConfiguration(*rdr);
        misident_analysis->AddStanardCutMonitors();

        manager->AddAnalysis(misident_analysis);
      }
    }
  }

  return manager;
}

void
BuildConfiguration(const TString &text,
                   AliFemtoAnalysisPionPion::AnalysisParams &a,
                   AliFemtoAnalysisPionPion::CutParams &cut,
                   MacroParams &mac)
{
  std::cout << "I-BuildConfiguration (BASE64-Encoded): " << TBase64::Encode(text) << " \n";

  const TString analysis_varname = a.GetName(),
                    cut_varname = cut.GetName(),
  // const TString analysis_varname = Form("static_cast<AliFemtoAnalysisPionPion::AnalysisParams*>(%s)", a.GetName()),
                    //  cut_varname = Form("static_cast<AliFemtoAnalysisPionPion::CutParams*>(%s)", cut.GetName()),
                   macro_varname = Form("static_cast<MacroParams*>(%s)", mac.GetName());

  gDirectory->Add(&a);
  gDirectory->Add(&cut);
  gDirectory->Add(&mac);

  TObjArray* lines = text.Tokenize("\n;");

  TIter next_line(lines);
  TObject *line_obj = nullptr;

  while ((line_obj = next_line())) {

    const TString line = ((TObjString*)line_obj)->String().Strip(TString::kBoth, ' ');

    TString cmd("");

    switch (line[0]) {
    case '$':
      cmd = cut_varname + "->" + line(1, line.Length() - 1);
      break;

    case '@':
      cmd = analysis_varname + "->" + line(1, line.Length() - 1);
      break;

    case '~':
      cmd = macro_varname + "->" + line(1, line.Length() - 1);
      break;

    case '{':
    {
      UInt_t rangeend = line.Index("}");
      if (rangeend == static_cast<UInt_t>(-1)) {
        rangeend = line.Length();
      }
      TString centrality_ranges = line(1, rangeend - 1);
      std::cout << "Loading centrality-ranges: '" << centrality_ranges << "'\n";
      TObjArray *range_groups = centrality_ranges.Tokenize(",");

      TIter next_range_group(range_groups);
      TObjString *range_group = nullptr;

      while ((range_group = (TObjString*)next_range_group())) {
        TObjArray *subrange = range_group->String().Tokenize(":");
        TIter next_subrange(subrange);
        TObjString *subrange_it = (TObjString *)next_subrange();
        TString prev = TString::Format("%02d", subrange_it->String().Atoi());
        while ((subrange_it = (TObjString *)next_subrange())) {
          TString next = TString::Format("%02d", subrange_it->String().Atoi());

          cmd = macro_varname + "->centrality_ranges.emplace_back(" + prev + "," + next + ");";
          gROOT->ProcessLineFast(cmd);

          prev = next;
        }
      }
    }
    continue;

    case '(':
    {
      UInt_t rangeend = line.Index(")");
      if (rangeend == static_cast<UInt_t>(-1)) {
        std::cerr << "W-ConfigFemtoAnalysis: " << "Expected closing parens ')' in configuration string. Using rest of line as kT-bins\n";
        rangeend = line.Length();
      }
      TString kt_ranges = line(1, rangeend - 1);
      std::cout << "Loading kt-ranges: '" << kt_ranges << "'\n";
      TObjArray *range_groups = kt_ranges.Tokenize(",");

      TIter next_range_group(range_groups);
      TObjString *range_group = nullptr;

      while ((range_group = (TObjString*)next_range_group())) {
        TObjArray *subrange = range_group->String().Tokenize(":");
        TIter next_subrange(subrange);
        TObjString *subrange_it = (TObjString *)next_subrange();
        TString prev = TString::Format("%0.6e", subrange_it->String().Atof());
        while ((subrange_it = (TObjString *)next_subrange())) {
          TString next = TString::Format("%0.6e", subrange_it->String().Atof());

          cmd = macro_varname + "->kt_ranges.push_back(" + prev + ");";
          // std::cout << "`" << cmd << "`\n";
          gROOT->ProcessLineFast(cmd);

          cmd = macro_varname + "->kt_ranges.push_back(" + next + ");";
          // std::cout << "`" << cmd << "`\n";
          gROOT->ProcessLineFast(cmd);
          prev = next;
        }
      }
    }
    continue;

    case '+':
      if (line == "+p") {
        cmd = macro_varname + "->pair_codes.push_back(AliFemtoAnalysisPionPion::kPiPlus)";
      }
      else if (line == "+m") {
        cmd = macro_varname + "->pair_codes.insert(AliFemtoAnalysisPionPion::kPiMinus)";
      }
      else {
        std::cerr << "\nError: Unknown command: " << line << "\n\n";
        throw std::runtime_error("Unknown command");
      }
      break;

    default:
      continue;
    }

    cmd += ";";

    std::cout << "I-BuildConfiguration: `" << cmd << "`\n";
    Int_t err = 0;
    gROOT->ProcessLineFast(cmd, &err);

    if (err != TInterpreter::EErrorCode::kNoError) {
      throw std::runtime_error(Form("Bad configuration line: `%s`", cmd.Data()));
    }
  }

  gDirectory->Remove(&a);
  gDirectory->Remove(&cut);
  gDirectory->Remove(&mac);

}

inline
MacroParams::MacroParams(PionAnalysis::AnalysisParams &analysis_config,
                         PionAnalysis::CutParams &c,
                         TString params)
  : MacroParams()
{
  // Read parameter string and update configurations
  BuildConfiguration(params, analysis_config, c, *this);

  if (RequestsMonteCarloData() && !analysis_config.is_mc_analysis) {
    std::cerr << "\nMonteCarlo correlation function requested when analysis is *not* MC\n\n";
    throw std::runtime_error("Macro misconfiguration : Not MC-CF requested in Non-MC analysis");
  }

}

redpajama_set_name: RedPajamaGithub


Get lyrics of Ngeke song you love. List contains Ngeke song lyrics of older one songs and hot new releases. Get known every word of your favorite song or start your own karaoke party tonight :-).
Get hot Ngeke lyrics at Lyrics.camp!
Lyrics for Kodwa Ngeke by Jabu Hlongwane. ... Kodwa Ngeke - Lyrics. Jabu Hlongwane. Lyrics not available. Be the first to add the lyrics and earn points.
Lyrics and translation for Ngeke by DJ Sbu feat. Moneoa.
Lyrics and translation for Mina Ngeke Ngilunge by Yvonne Chaka Chaka.
Lyrics for Ngeke Ngilahle Ithemba by Soul Brothers.
Lyrics and translation for Ngeke Ngiyimele by The Soul Brothers.
Jul 3, 2014 ... long time Ngeke sphinde, ngeke sphinde (O re tswarele miratho ya rona) Ngeke sphinde, ngeke sphinde boh (O re tswarele miratho ya rona).


text:
Home » Theater Reviews » Take a Chance on The Improbable Fall, Rise & Fall of John Law
Aurea Tomeski
Brad Raimondo
Caitlin Cisek
Dreamscape Theatre
Fernando Gonzalez
Greg Carere
IRT Theater
John Law
Joshua Rose
Mackenzie Knapp
Mark Van Hare
Matt Herzfeld
Monica Charline Brown
off off Broadway
Rosie Sowa
Sara Thigpen
Stephen James Anthony
The Improbable Fall Rise & Fall of John Law
The Fool's Lear
OUR WISHES FOR A HAPPY, PEACEFUL 2019!
Happy Birthday, Wanda June
Why Theater Changes and Why (and How) It's Going to Change in the Future…
Take a Chance on The Improbable Fall, Rise & Fall of John Law
Posted on Mar 11, 2016 in Theater Reviews
Greg Carere, Rosie Sowa
by Monica Charline Brown
When you scratch your brain to determine some names associated with the founding of our global economy, you might guess Adam Smith, John Maynard Keynes, Milton Friedman, or even Karl Marx. But what if I told you John Law of Edinburgh made a huge impact on the way we produce and exchange currency? John Law…let me see…I don't remember him in any history or government textbooks? With a script crafted by Matt Herzfeld and direction under Brad Raimondo's swift hand, The Dreamscape Theatre's production of The Improbable Fall, Rise & Fall of John Law strives to make the name one you will not soon forget.
First of all, John Law championed the idea that there is no intrinsic value in money. He suggested that money could merely be a physical token of wealth where, moreover, the overall capital of a nation was inherently based on trade. Instituting France's first private bank, Law inaugurated a system where the production of paper money stimulated the economy while holding designated weight over metals. Bank shares were valuable as they were attached to dividends. However, do not think this man did not have a colorful past. Before fashioning France's finances, he was a maven, gambling with cards, using his superior mind to analyze chance at a shockingly quick pace.
The play begins with a hunchback, disfigured man (Fernando Gonzalez) telling the lore of John Law as dually a fiscal mastermind and an untrustworthy con man. John Law (Greg Carere) and his mother (Sara Thigpen) are presented arguing over his gambling addiction and the future of the family fortune. Law visits a shabby tavern in London where he displays his expertise over all others in the room but likewise fails to measure up to the game of chance. His losses lead him to the doorstep of Miss Wilson (Rosie Sowa) and, in exchange for her fortune, he allows her to accompany him to a game. In a hilarity of pursuits, Edward Wilson (Mackenzie Knapp) arrives and challenges Law to a duel. Although Miss Wilson clearly had come on to Law, Edward, her brother, believes she has been taken advantage of by Law.
Law wins the duel, killing Edward in self-defense, which leads him to the dooming court of Judge Salathiel Lovell (Stephen James Anthony). The sentence is charged death by hanging, yet Law manages to escape confinement and flee to France. Seemingly a beggar by his rough appearance, he meets Katherine (Aurea Tomeski), the wife of a wealthy noble who immediately feels a connection with Law and leaves her old life behind. They voyage to Amsterdam where Law develops his theories of finance, but return home to Paris many years later. After not getting through to King Louis XV (Rosie Sowa), Law approaches The Duke of Orleans (Stephen James Anthony), who ultimately agrees to a centralized bank dealing in paper money. The printing press follows the orders and the play concludes with a shower of paper money upon Law's head.
Sara Thigpen, Stephen James Anthony,Greg Carere
Greg Carere creates a brooding and sexy John Law that is also suave and debonair. Equally succeeding in the qualities of the visionary and the hard-headed, Carere's leading man is organically multi-faceted. The remaining seven actors make up the entire ensemble of over forty characters to fill this thrillingly quirky world. The script called for comedic devices such as cursing and crude humor to keep the energy fresh, and the actors ran with it. The only components that seemed to take away from the overall commendable acting work were the inconsistency of the dialects throughout the countries from where the characters hailed (hard to justify a Southern dialect as a character choice in eighteenth century Europe) and the slow tempo of some of the stage combat sequences.
Projections of time-period appropriate sketches, paintings, and texts stylishly decorated the set during transitions, as well as the actors carrying them out. Joshua Rose, in his scenic and lighting design, generated a suitably rustic world with attention-grabbing floods of light in moments. The original compositions and sound design by Mark Van Hare were exceptionally compelling. Electronic dance modules filtered the traditional Baroque tunes as the plot thickened, musicalizing modernism as it penetrated the world of the play. Caitlin Cisek's costumes played on the theme of contemporary versus classic, sneaking in denim and leggings to match the traditional costuming of the period.
For an inventive and bizarre evening of theatre that hauntingly resounds the massive political issues surrounding the economy in current day, check out The Dreamscape Theatre's production of The Improbable Fall, Rise, & Fall of John Law.
IRT Theater – 154 Christopher St. NYC #3B (third floor). Running Mondays and Wednesdays at 7:30 pm, Thursdays – Saturdays at 8 pm, and Sundays at 5 pm through March 26. Visit: http://irttheater.org/current-season, or call Brown Paper Tickets at 1-800-838-3006. Runtime: 2 hours plus a 10-minute intermission.
Photos by Sergio Pasquariello

redpajama_set_name: RedPajamaCommonCrawl


text:
Doctor Who Theory: New TARDIS Design Created By Season 11's Big Villains
by Danny Salemme
Does the new TARDIS design in Doctor Who connect to the season 11 villain? It's common practice for the TARDIS to undergo a new design every so often, and season 11's model showcases a major evolution from the ship from previous seasons. In fact, aside from all the various factors that influenced its updated design, it's possible that villains from this season may have had a major effect on the Thirteenth Doctor's time and space-traveling police box.
In the Doctor Who season 11 premiere, the show introduced some notable changes. The Doctor was being played by a woman for the first time ever, Team TARDIS going back to the series' roots with more than a single companion (or friend, as she officially refers to them now), and Chris Chibnall has replacing Steven Moffat as showrunner. But one significant change comes courtesy of the TARDIS. Completely MIA in the first episode, the TARDIS steals the show in episode 2, "The Ghost Monument," unveiling its brand new design from the inside out. It contrasts the Twelfth Doctor's dark, metallic interior with a bright, organic look that somewhat harkens back to the Ninth and Tenth Doctors' TARDIS, and there are unique touches harmonizing with the new Doctor's personality.
Related: Doctor Who: 10 Big Questions After "The Ghost Monument"
That said, there may have been some outside influence that the Doctor hasn't yet noticed, courtesy of a brand new villain in the Doctor Who universe - an alien race called the Stenza - and the connection kicks off the moment the Doctor constructs her brand new sonic screwdriver.
The Stenza were introduced in the Doctor Who premiere via T'zim-Sha, who spread his alien presence throughout much of Sheffield. The most important impact was when the Doctor borrowed some Stenza tech while constructing the new screwdriver. From a craftsmanship perspective, it makes perfect sense that the Doctor would make the most of her surroundings and implement whatever alien technology she can find in order to craft a working sonic screwdriver, but in doing so, she may have gotten a little too close for comfort. The new TARDIS interior's crystals are strikingly similar to those used in the screwdriver, which may suggest this design has a link to the Stenza.
At first, the Stenza seemed like a mostly throwaway "Monster of the Week," but then they were mentioned again in episode 2 (they were in charge of the weapons facility on Desolation). It's beginning to look like the Stenza could be Doctor Who's new overarching villain presence, which makes the physical likeness of the screwdriver and the TARDIS peculiar. Is their technology simply part of a new visual language for the show, or the sign that they've got their invisible hooks deeper into the Doctor than she realizes? The TARDIS was on Desolation phasing in and out for long enough before the Doctor found it to become a legend, so they could have easily found it.
Related: Doctor Who: Who Is The Timeless Child?
With little known about the Stenza beyond their violent culture, it's hard to draw any concrete conclusions about how everything connects. The TARDIS' crystals may be derived from the new screwdriver, or simply a result of Doctor Who's new production designer, Arwel Wyn Jones, taking a personal liking to crystalized features. But in the Doctor Who fandom, half the fun is the speculation - and this could be on hell of a twist.
More: Doctor Who Viewing Guide: Tips, Suggestions & Complete Episode List
Season 11 of Doctor Who airs on Sundays on BBC America and BBC One.
Tags: doctor who
The MCU Vastly Improved Spider-Man's Spider-Sense (Eventually)
John Orquiola
Hannah Shaw-Williams


Dating Sites in the UK can be a pleasure to explore and use. Many of them are really easy to use, and you will get to have plenty of fun using those. It's a good idea to check them out if possible, as they are well worth the investment. You will need to give them a shot and work with as many sites as you can in order to achieve the best possible experience. But which are the best Dating Sites in the UK?
Eharmony is great because it has tons of great filters to help you find the love you always wanted. It's a great website with nice features to explore and plenty of unique options for you to check out. The attention to detail is impressive here, and you will like how everything is created and works out here. They did a very good job at covering all the UK as well, so it's one of the Dating Sites that can really make dating a lot easier for you!
Match.com is a stellar website, and the UK version is also one of the best Dating Sites out there. They offer you great filters, and you can even find people based on your birth date. It's definitely one of the nicest features that you can find out there, and the site does a tremendous job at bringing in efficiency and value in a single package. It's very professional, so you should totally check it out.
Elite Singles has more than 100000 members per month. Most of them are university educated, which means you won't have a problem finding the right match for you. and they do have some amazing features like incredible profile creation, fast finding for the persons you want and so on. It's by far a great site to visit, and you need to check it out. woman.
With more than 190000 members, the site does a very good job for people over 50. It does focus on a very specific niche, but it makes dating a lot faster and easier, which is exactly what you need. This is a great website that offers comprehensive dating features, and the results that it can deliver are well worth it.
In case you are looking for one of the best interracial Dating Sites, this is the best. The filters are there, and you will particularly like the outstanding features and benefits delivered here. The value shared with this is second to none, and you will particularly like the tremendous opportunities found on the market. Just consider checking this out, it will be worth it.
Millionaire Match has been around for many years. It has millions of people on the site, and it's widely known as one of the better sites for dating. It's also fun to use and quite easy to enjoy all of its benefits too, which is also something you will like. If you enjoy having a great dating experience with millionaires in general, this is one of the best sites for you. Plus, you have features like filters and so on that makes things simpler for you!
Herpes dating in the UK is not easy. But that doesn't mean it has to be hard either. Positive Singles has a ton of cool people ready to come and work closely with you. It's by far one of the nicest features that you can find in here, and you will be quite impressed with it. You can choose the herpes type, age and a variety of other factors here in no time.
This website is great of Jewish singles that want to find their love as fast as possible. It's a very comprehensive, easy to use site that helps you meet new people just like you. You can access a thriving community of Jewish people that are ready to help you enjoy your time. It's a wonderful place to start dating in the UK, and you should totally check it out.
As the name suggests, the website does a very good job at connecting you with Christian users. If you value Christianity and want to base your relationship on it, this is the right site to visit. It can offer you tremendous benefits and results, not to mention you can find your love very easy with this approach. It's the type of site you will enjoy using a lot, and it's well worth checking it out.
Authenticity is key in a relationship, and this website knows that. It has more than 760000 users and it does a very good job at making the dating experience a fun and engaging one. You will appreciate the value offered here, and the results on their own are among some of the best out there.
Each one of these Dating Sites is amazing and a pleasure to use. If you want to have a wonderful dating experience, this is the right website for you. It all comes down to making the right choice, and the results on their own can be second to none. It will be a great experience, you can rest assured that you will find the results you want in no time!
Online Dating is a lot of fun. But at the same time it can also be very dangerous, because you never know who you encounter and what type of person that can be. It's very important to tackle all these things with the utmost priority, so here are some of the best options you can take into consideration. This way you will get to stay safe online, and the dating experience will be a very good one all the time.
Sure, you may be in the heat of the moment, but the idea is to avoid sharing too much about you. The less that person knows about you, the better it will be. The idea here is to have him respect your privacy, and once you do that the results can be well worth the effort. Just remember, you want to keep your identity and other personal info safe, and you are the only one that can control that.
Try to learn as much as you can about them. This will help you protect yourself from people that want to extort you of money or anything like that. The more you know about the person, the better. Check them out online and see their profiles, what they post, etc.
Some people will ask you to send money to strangers. So what you want to do here is to figure out what they want to use that money from. But in general, people that ask others for money without meeting them will just want to extort them of cash. That's not a real relationship, and you have to understand that. The faster you do that, the better it will be in the end.
Let them know when and where you are meeting that person. If you can take a person you trust with you, that would be great. The idea here is to know that you have someone with you which can help you when you get attacked. You never know who will attack you and when, so you might as well want to use this as a great advantage on your side.
Red flags can appear at any given time. When you want to go out with someone, you will try to avoid those. But let's face it, the idea here is that you want to have a great, safe dating experience and a very enjoyable one that you will like quite a bit. Try to take that into consideration and you will not have a problem staying safe with your dating experience.
One thing is certain, proper online dating can be fun and exciting. You really need to think about all the possible options and features out there. Sure, there can always be some challenges with dating online, but try to stay away from dangerous people. If you see any red flag, just walk away. There are lots of legit people trying to find a date online!


text:
Cuts to Developmental Services to hit London's most vulnerable - OPSEU
OPSEU
LONDON, ON, Jan. 6, 2012 /CNW/ - An announcement this week by Community Living London that seven staff will receive layoff notices will be a catastrophic blow to services for persons with developmental disabilities, says the Ontario Public Service Employees Union.
Warren (Smokey) Thomas, President of OPSEU, says the government's refusal to provide adequate funding for developmental services is a shameful act, hurting the most vulnerable people in the London area.
"The Ministry of Community and Social Services has continued to ignore the chronic under-funding crisis in this sector," Thomas said. "Waiting lists across the province continue to rise with no relief in sight."
Community Living London announced early this week a plan to lay off seven developmental service workers and to dramatically reduce part-time hours in an effort to balance their budget. Community Living London has made it clear that unless the Ministry provides the required funding further cuts and loss of employment will occur in April. The impact of this for families throughout the City will be profound.
The government's refusal to provide adequate funding comes on the heels of announcing a $36 million expenditure on "performance bonuses" for civil service managers. This reflects the current private-sector trend of prioritizing executive bonuses over the needs of the marginalized. "The Public Sector is expected be a role-model of public accountability," Thomas said. "Public funds should be spent to the benefit of the public, not for select managers."
Currently in Ontario there are more than 12,000 people waiting for residential supports, 7,000 waiting for other supports and 1,500 providing primary care to their sons or daughters who have an intellectual disability on a waitlist for residential services. Eighty per cent of these parents are over the age of 70.
"The newly-appointed Minister of Community and Social Services, John Milloy, is refusing to talk to both Community Living London and the union about this crisis," Thomas said. "The Minister needs to take immediate action and resolve this funding issue before something tragic occurs."
OPSEU represents approximately 420 employees at Community Living London.
Debbie Morphew, OPSEU Local 166 519-671-2121
Lynne Easter-Froats, OPSEU Staff Rep 519-657-8312
Community Living Association for South Simcoe Staff Raise Awareness of Increase in Workplace Violence
/R E P E A T -- Media Advisory - OPSEU/SEFPO Calls for Reinstatement of Nine Unfairly Suspended Workers/
Media Advisory - OPSEU/SEFPO Calls for Reinstatement of Nine Unfairly Suspended Workers
Ontario Public Service Employees Union (OPSEU)
The Ontario Public Service Employees Union (OPSEU) is one of the most progressive and powerful unions in Ontario. It represents 165,000 frontline workers who provide a vast array of public services in communities across the province. They work in provincial government...


text:
"police" tag
November 23, 2011 · 0 Comments · admin
UC Faculty Side with Students in Protests
http://stevebeckow.com/2011/11/uc-faculty-side-with-students-in-protests/ Statement of UC Faculty in support of peaceful students This week, we have seen excessive force used against non-violent protesters at UC Berkeley, UCLA, CSU Long Beach, and UC Davis. Student, faculty…
California Campus Police on Leave After Pepper-Spraying
California campus police on leave after pepper-spraying By the CNN Wire Staff, November 21, 2011 http://www.cnn.com/2011/11/20/us/california-occupy-pepperspray/index.html?hpt=hp_t3 Police spray seated Occupy protesters (CNN) — The University of California at Davis has placed two police officers…
Police Captain Joins Occupy Wall Street, Gets Arrested
One always hopes that this will prove to be the thin edge of the wedge, as with the Syrian army officers who turned against Assad. Philadelphia Police Department Captain Ray Lewis joins OWS…
1,000 at old Occupy Oakland camp to discuss future
Jill Tucker, Demian Bulwa, Kevin Fagan,Matthai Kuruvila, SF Chronicle Staff Writers Tuesday, November 15, 2011 http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2011/11/14/BAD91LUQMM.DTL#ixzz1dnqn1BGC Sean Palmer was among a few protesters who were attempting to occupy the intersection at Broadway and…
Midnight Raid: NYPD Invade Zuccotti Park, Force Out Occupy Wall Street Protesters
http://www.huffingtonpost.com/2011/11/15/zuccotti-park-cleared-occupy-wall-street_n_1094313.html#liveblog Midnight Raid: NYPD Invade Zuccotti Park, Force Out Occupy Wall Street Protesters By Lila Shapiro and Maxwell Strachan First Posted: 11/15/11 05:59 AM ET In an unexpected move, the New York City…
November 7, 2011 · 0 Comments · admin
US Police Try to Remove Online Evidence of Brutality
US cops tried to erase online evidence of brutality Russia Today, 26 October, 2011 http://rt.com/news/google-report-police-brutality-767/?mid=5141187 The police block streets near the Oakland City Hall as the Occupy Oakland protesters march towards the city…
Occupy Oakland: Second Iraq War Veteran Injured After Police Clashes
Kayvan Sabehgi in intensive care with a lacerated spleen after protests in Oakland, a week after Scott Olsen was hurt. He says police beat him with batons By Adam Gabbatt, Guardian, 4 November…
Occupy Oakland: Police to be Investigated Over Scott Olsen Injury
Citizens' Police Review Board to launch formal investigation as Oakland prepares for general strike on Wednesday By Adam Gabbatt 11.1. 2011 14.58 EDT http://www.guardian.co.uk/world/2011/nov/01/occupy-oakland-police-scott-olsen Oakland police are to be the subject of a…
Occupy Nashville: Tennessee Officials Agree To Stop Arresting Protesters
By TRAVIS LOLLER, The Associated PressPosted: 11/1/11 01:09 AM ET http://www.huffingtonpost.com/2011/11/01/occupy-nashville-officials_n_1068795.html NASHVILLE, Tenn. (AP) — Tennessee officials agreed Monday to stop enforcing a new curfew used to dislodge Occupy Nashville protesters from the grounds…
October 25, 2011 · 0 Comments · admin
Albany Police Defy Order to Arrest Protesters
Under pressure to make arrests, police and troopers push back Governor's office urged mayor to press police to make arrests at protest By BRENDAN J. LYONS Senior writer Monday, October 24, 2011 http://www.timesunion.com/local/article/Under-pressure-to-make-arrests-police-and-2232934.php#ixzz1bkmhURKz…


text:
Strength of a woman
Published : Jun 2, 2019, 12:05 am IST
Updated : Jun 2, 2019, 12:05 am IST
Mamatha Sanathkumar, the first South Indian bodybuilder to hold an IFBB Pro card, has overcome all odds to pursue her unconventional dreams.
Mamatha Sanathkumar
While many still subscribe to the view that girls and women aren't allowed to have or flaunt their biceps, Bengaluru-based mom of a five-year-old and professional bodybuilder Mamatha Sanathkumar has proven otherwise.
The first South Indian bodybuilder to hold an IFBB Pro card that allows her to perform at international forums, Mamatha is now gearing up to represent India at a Portugal Pro League show that will host over 13 countries on July 21.
However, she admits that she had to struggle to fulfill her dreams. "I share an emotional bond with bodybuilding. I had no support from my family, emotionally or financially. But I always wanted to be an independent woman, and started my journey on my own," she says.
Ready to perform in her two piece
Being born in an orthodox family meant that they would never accept her in a two-piece. "But things changed when people started appreciating my work. After seeing what I do, my husband Sanath, parents and in-laws now support me 100 per cent," she shares, adding that she initially took to bodybuilding after her husband lost his job.
"He used to take his frustrations out on me and bodybuilding became my escape — a way to deal with what was happening at home," says Mamatha, who reveals that the journey has been far from easy.
"Women have a smaller frame when compared to men which makes it difficult to adapt to this sport. But if you have passion for it, then it becomes very easy," she adds.
Her daughter Purvika, who is her biggest fan
Mamatha is not just a bodybuilder but a devoted mom as well. When asked how she balances these two major roles, she explains, "My mom and daughter Purvika are my biggest supporters. It's not really tough as my daughter loves bodybuilding too. Though young, she understands that her mom is doing something big and creating a name for herself and her country."
Till now, Mamatha's greatest achievement has been getting the IFBB Pro card which allows her to compete in the Olympics and other international forums. "Having this card is truly an honour because I can represent India. I'm also the only South Indian to hold this card," she states proudly, sharing that her end goal is to represent India in the Arnold Classic.
Apart from achieving her dreams, Mamatha is also changing the lives of other people through her training. She firmly believes that you need to devote some time to yourself each day. "If you give yourself one hour every day to get fit, life will be better," she says, even as she gears up to compete at the Pro League show that is set to happen in Portugal in July.
"I will be competing against bodybuilders from over 13 countries," shares Mamatha, adding that it has become quite expensive in terms of preparation.
"I need to have 750 grams of salmon every day along with 12 eggs. I spend over 60,000 every month. Therefore, I am currently looking for sponsors," she says as she signs off.
Tags: mamatha sanathkumar
Latest From Age on Sunday
Live in the moment!
Caught in the firing line
A love letter to Africa
An art of Passion!


text:
English: Sentence Completion Set – 70
February 27, 2020 February 23, 2020 Shubhra
Directions: In each of the following questions a short passage is given with one of the lines in the passage missing and represented by a blank. Select the best out of the five answer choices given, to make the passage complete and coherent (coherent means logically complete and sound).
In popular imagination, the Railway Budget was seen as a grand spectacle, with the Railway Minister using it as a platform for populism and political grandstanding. What is not appreciated is that the Budget is not merely a statement of allotment of funds to various projects and programmes, unlike other ministries, but comprises a fairly detailed performance review, physical and financial, of the previous year and prospects for the current (Budget) year. ____________________________. A separate post-Budget discussion in Parliament on the Railways, as indicated by the Finance Minister, is no substitute, as the focus most likely will be on allotments to various projects, not on financial performance.
The fact is that the Railways is indeed unlike any other Central ministry in size and scope, it is actually an operational ministry.
There have been sporadic calls in the past for doing away with a separate Railway Budget for various reasons, but the matter was never pursued seriously.
Perhaps nowhere in the world is a political functionary called upon to present a financial report card of the country's largest public undertaking in the full glare of publicity.
No other Ministry has a separate budget and the practice exists in no other country today; the Bibek Debroy Committee has recommended discontinuance of a separate Rail Budget and it is part of the Prime Minister's reform programme.
A point particularly stressed by the Finance Minister in the press conference announcing the Cabinet decision was that the Railways' share in the General Budget has progressively reduced over the years, making a separate budget an anachronism.
Out of all the taxes, corporate taxes imposed on multinational corporations (MNCs) are major sources of revenue for most economies. But in the event of these corporate tax payers shifting their tax liabilities from a high tax jurisdiction to a low- or no-tax jurisdiction, massive revenue losses are imminent for the fiscal jurisdiction where the taxes should have been ideally paid. ______________________________. With a mélange of some creative accounting techniques and existing loopholes in different fiscal jurisdictions across the world, tax evasion has emerged as a global woe in the last few decades.
Both historical and contemporary perceptions of tax have characterised it as a necessary extraction, a penalty.
Despite some major limitations, various fiscal jurisdictions have already gone ahead with signing such agreements.
Tax evasion is where a seepage in the boundaries set by fiscal laws is discovered, and which is then used to escape the tax net to a great extent or altogether.
Various countermeasures have been deployed by states, either at an individual level or as members of different economic groups.
Once riddled with incidents of double taxation, the MNCs have now outsmarted the system and have moved into an era of double non-taxation.
Even the United States lets its citizens know when public databases are breached. Aadhaar and NATGRID might be hacked several times a year for all we know; no one is obligated to tell us. _________________________________. This renders us powerless and steps around our painstakingly crafted civil liberties to hand control of our lives and information back to the state.
We have no idea how secure these databases are and have given no thought to what will happen if someone hacks them or misuses the sensitive information contained in them.
The government wants to add our travel and bank information to these databases, and is pressuring all the phone manufacturers to integrate with them.
This is a governance form in which governments use surveillance, data collection, data mining and other such invasive methods to prevent crime, terrorist attacks and to deliver welfare services.
The imbalance of power created by the state's attempts at treating citizens like pawns is dangerously magnified by advances in digital technology that allow for easy monitoring of communication and access to large amounts of data.
It appears that we are travelling fast towards a complete transformation into a National Surveillance State.
General Motors Corporation, also known as GM, is a multinational corporation headquartered in the United States and has been the world's most dominant automaker since 1931. Recent times, however, have not been as favourable for the automotive giant with GM posting a record $38.7 billion loss in 2016. These losses were sustained due to a variety of factors, such as adverse market conditions in the United States and Europe, high inventory levels as well as the fall in the value of the U.S. dollar. _________________________________.
GM's management is to be blamed for not venturing into emerging markets like Russia and India.
Since the value of the dollar is still falling, the losses sustained seem destined to continue in 2017.
In response to this crisis, GM announced the launch of a slew of new models.
GM now ranks as the world's second largest automaker, behind Toyota Motor Corporation.
Higher oil prices would probably lead to GM incurring another big loss to its bottom line in 2017.
The Firefox project had undergone several name changes. Originally titled Phoenix, it was renamed because of trademark issues with Phoenix Technologies. ____________________________________. In response, the Mozilla Foundation stated that the browser should always bear the name Mozilla Firebird to avoid confusion with the database software. Continuing pressure from the database server's development community forced another change; on February 9, 2004, Mozilla Firebird became Mozilla Firefox, often referred to as simply Firefox.
As of August 2011, Firefox was the second most widely used browser, with approximately 30% of worldwide usage share of web browsers.
Phoenix Technologies sued the Mozilla Foundation for trademark infringement.
The Mozilla Foundation then came up with the replacement name, Firebird.
The replacement name, Firefox, provoked an intense response from the Firefox free database software project.
The Mozilla Foundation, after lengthy deliberations with trademark lawyers, came up with the name Firebird which had not, at that time, been trademarked.
Investment is necessary for economic growth. It could be undertaken by domestic or foreign investors. _________________________________. If domestic investment is not forthcoming, either because of a profitability crisis in the private sector or a self-imposed restraint on public spending (example, India's Fiscal Responsibility and Budget Management Act), then we may be forced to attract foreign investment. In other words, in the event of a domestic investment crunch, relying on foreign investment is an option in the short term.
However, relying on foreign investment in the long term is not an economically sound policy.
However, a probable positive consequence of foreign investment is the inflow of new technology and its subsequent diffusion.
However, there are not any priority reasons for favouring foreign investment over domestic investment under normal economic conditions.
However, one central character of private investment makes it unreliable in the long term: volatility.
It is obvious that investment in a labour-intensive sector will generate more employment than the same investment in a capital-intensive sector.
"Universal" is a tricky word. It has an enormous appeal, an unquestioned romance of taking everyone along. Universal human rights, universal access to basic services, housing for all. It is the barometer of inclusion done right. __________________________________. Often the "universal" is a vanishing horizon and, like all horizons, the mirage is what makes you lose sight of the very real trade-offs and constraints in your way.
The irony is that even those who defend such exclusions do not fully realise the cost they themselves pay for them.
However, the exclusions are simultaneously socially performed, legally enshrined, and economically reproduced.
Yet herein, in the romance, lies the first danger of taking an important move and losing ourselves in a mirage well before the horizon is near.
The dark side of the romance is that it's one of the hardest things to achieve.
In Indian cities, one of the biggest blocks to any imagination of "universal" or "inclusive" development is not lack of money, land or technology as is so often imagined.
'Good governance' was the cornerstone of the National Democratic Alliance government's poll promises. While there is an effort to deliver this in many sectors, the functioning of the Ministry of Environment, Forest and Climate Change is at odds with its mandate. _____________________________________. Since 2011, it has consistently ignored the Supreme Court's direction on the appointment of a national regulator for enforcing environmental conditions and to impose penalties.
It unambiguously mandates that there shall be no destruction or diversion of habitat unless it is for the improvement and better management of wildlife.
While it has been periodically expressing its commitment to forest conservation, the reality is, the Ministry has been bending over backwards to meet the demands of 'development', compromising India's ecological security.
Another worrisome indicator on unbridled clearances is the strategy of diluting regulations through a slew of guidelines.
The most crucial governance challenge for the Ministry is how to balance development imperatives without compromising on ecological security.
An objective analysis reveals that the MoEF has turned into a virtual project-clearing house.
The fact that AFSPA and representative democracy have co-existed in many parts of India's Northeast for almost 60 years itself suggests that there is something amiss about the way democratic institutions have functioned in the region. Consider for a moment how AFSPA found roots in post-Independence India. _____________________________________. This claim was something the Indian nation-state could neither ignore nor acknowledge.
Within the representational schemata of the nation-state, the first term on either side of the equality is of a lesser worth than the second.
India's Northeast very much finds itself within such a theoretical and political impasse, caught up, as it is, within a non-space — inside the physical space of India, yet outside the political and epistemic space underlying its imagination.
A pattern of exhibition of sovereign power has persisted for the last 16 years.
Despite its length and hardship, it failed to receive an acknowledgement from the Indian state, nor did it register in the consciousness of the nation.
Its formulation in 1958 was a response to the demands of the Nagas for sovereignty based on the assertion that the Nagas are a nationality, distinct from the Indian nationality.
The Chief Justice of India's high-octane laments about vacancies caused due to the stand-off between the judiciary and government in appointing judges has brought a renewed focus to delays in the judicial system. ___________________________________________. By all accounts, the judicial system is painfully slow — as of December 31, 2015, 51.2 per cent of all cases pending in the subordinate courts have been pending for more than two years and 7.5 per cent for more than 10 years; in the high courts the corresponding figures are 68 per cent and 19.22 per cent. This is unacceptable for any state that promises the rule of law to its citizens.
At the same time, to view the stand-off on judicial appointments and the consequent vacancies that are created through the lens of judicial delays is to miss the wood for the trees.
The CJI also believes that it is because vacancies are a product of a systemic lack of incentives for persons of high quality and integrity to take up judgeships.
The complexity of causes responsible for judicial delays should make it amply clear that it is merely a by-product when it comes to the vexed question of judicial appointments.
The CJI holds vacancies responsible for creating delays, bringing justice delivery to a grinding halt for several litigants.
It is little surprise that litigants take a chance before the higher judiciary since securing an admission is often perceived as a game of roulette.
Banking Quiz, English LanguageSentence Completion
Mixed Reasoning Questions for Upcoming Exams(for mains exam) – Set 136
Daily Current Affairs 27th February, 2020


2004 infiniti m45 display wire diagram Function display was This case that means the next generation m45 sports sedan which debuts about a year from its part of an effort to give infiniti a more powerful brand identity. The m concept features a variety On the features front the new elite i20 gets a 7 inch touchscreen infotainment system with apple carplay android auto and mirrorlink compatibility rear parking camera display on infotainment.
2004 infiniti m45 display wire diagram Recall date 2005 04 01 description on certain vehicles the sensotronic brake control sbc system may prematurely shift to the hydraulic back up function mode due to deterioration of the wiring Love everything about this car with the exception of the infiniti connect system emergency unlock valet features etc.. Various apps for different things and most never worked or were developed as Front and rear roof airbag driver and passenger front airbag with occupant sensors front side airbag two height adjustable active head restraints on front seats two head restraints on rear seats.
2004 infiniti m45 display wire diagram Cardekho is the one stop solution for your all needs related coming to the query mahindra xuv500 w4 entertainment has 15 cm 6quotquot monochrome infotainment display with usb bluetooth audio Under dash consequence if the headlamps fail to function this will lead to reduced driver visibility increasing the risk of a crash. Recall date 2012 08 14 description suzuki is The 2012 toyota prius v wagon is the first of several additions to the prius line which since 2004 has been only a five with the high level central display offering a scattershot array of.
It's possible to get or download caterpillar-wiring diagram from several websites. If you take a close look at the diagram you will observe the circuit includes the battery, relay, temperature sensor, wire, and a control, normally the engine control module. With an extensive collection of electronic symbols and components, it's been used among the most completed, easy and useful wiring diagram drawing program. 2004 Infiniti M45 Display Wire Diagram. The wiring diagram on the opposite hand is particularly beneficial to an outside electrician. Sometimes wiring diagram may also refer to the architectural wiring program. The simplest approach to read a home wiring diagram is to begin at the source, or the major power supply. Basically, the home wiring diagram is simply utilized to reveal the DIYer where the wires are.
In a parallel circuit, each unit is directly linked to the power supply, so each system gets the exact voltage. There are 3 basic sorts of standard light switches. The circuit needs to be checked with a volt tester whatsoever points. 2004 Infiniti M45 Display Wire Diagram. Each circuit displays a distinctive voltage condition. You are able to easily step up the voltage to the necessary level utilizing an inexpensive buck-boost transformer and steer clear of such issues. The voltage is the sum of electrical power produced by the battery. Be sure that the new fuse isn't blown, and carries the very same amperage.
The control box may have over three terminals. After you have the correct size box and have fed the cable to it, you're almost prepared to permit the wiring begin. Then there's also a fuse box that's for the body controls that is situated under the dash. 2004 Infiniti M45 Display Wire Diagram. You will find that every circuit has to have a load and every load has to have a power side and a ground side. Make certain that the transformer nameplate power is enough to supply the load that you're connecting.
2004 infiniti m45 custom 2004 infiniti m45 rear 2004 infiniti m45 mpg 2004 infiniti m35x 2004 infiniti m45 supercharger 2003 infiniti m45 mpg 2003 infiniti m45 sport lowered infiniti m45.


Elisabeth Beresford wrote a number of Womble short stories upon request for various causes which have not been anthologized. In 1986 she wrote one for a local paper when she made an appearance at the Wimbledon public library – I was sent a photocopy of it in a letter she wrote in reply to my inquiry about her Womble stories. I wonder if there are enough stories to compile a collection of them for publication.
How interesting – I wasn't aware of these stories (and how nice of Elisabeth to write back to you). If you're ever in the Newcastle area, you would be very welcome to come and consult the Elisabeth Beresford collection at Seven Stories and see if we have any of these hiding in our archive! To book an appointment to consult the Collection, just get in touch by emailing collections@sevenstories.org.uk or phone: 01914952707.


I acknowledge Frank Natale's contribution to my writer's journey that accelerated when I took his Results Course presenter training in 1986. Writing and publishing were among my first list of "chosen results" and all of those that followed.
The following piece was written as a poem in the early 90s that I performed at several venues while living in Los Angeles. Ironic that, over twenty years later, the themes of corruption and excess, freedom and self-reliance are even more relevant. Share as you will.
There will be no revolution as long as we are prisoners of ourselves. We've built our homes beneath floodgates and mortgaged our lives to the gatekeepers, to the bankers and lawyers and the home shopping networks.
We're programmed for conspicuous consumption, believe we're lacking something essential and that peace can only be found outside of ourselves. We believe the ultimate truth is a fashion statement, that perfect breasts attract true love and you can lose 50 pounds for only $19.95.
We are the slaves of credit card debts, Wall Street wizards and junk bond junkies. We are the slaves of apathy. The American Dream of upward mobility is dying on the smoldering compost pile of our disposable society.
We've lived long enough to see the truth unfold before us. Wealth is hereditary.
Wealth is stolen. Wealth is luck. Wealth is a job-related accident. The barriers to gaining ground are great. It takes money to make money, and we are broke.
We have lost our way. We're afraid of asking for more, of losing our jobs, of getting sick, of our children being shot by other children. We are afraid to look the homeless in the eyes and afraid to look in the mirror at ourselves. We're afraid of the men who live up stream, the men who control the floodgates, and the money and the politicians.
Yet, we don't have to be afraid. We possess the freedom to stand up and speak out.
We don't need more laws or lawyers. We need more citizens who are intolerant of deception, who speak with their neighbors – citizens who leak more stories to the press. Men and women willing to take back their power, who choose to live on higher ground and make the world safe for all of the children who live down stream.
We've reached the turning point. The moment of truth has arrived. It's time for us to lead ourselves out of the darkness, to take back our birthright and to exercise our freedom. It's time for courage. It's time for change. It's time for each of us to govern our selves.


Donna Austin Customer Testimonial from Greg Mueller on Vimeo.
This was our 5th Real estate deal and closing with Donna Austin in the last 7 years. We have referred her several times to others as well. Our recent closing on 53 Portero was the worst case scenario and had it not been for Donna servicing us, we may not have followed through with the deal.
We closed on May 12, 2017 and were notified later that day that there was a problem with the probate, so the closing was null and void. Donna was a pitbull on our behalf and the deal was finally closed for the 2nd time on May 25, 2017. It took Donna a lot of work, but she managed to get us closed in a relatively short amount of time.
Donna told us not to stress. She carried the stress for us!! Again a pitbull, on our behalf. We would never call another "regular" Real estate individual because Donna is tried and true. She is a professional with high ethics. Donna is out Realtor and there will be more closings to come from us.
Jones Healy should be aware of Donna's worth to this company and this community.
"Donna's exceptional ability to communicate with her clients makes them relax and enjoy the process of either buying or selling their home.
I am honored to write a letter of support for Mrs. Donna Austin. I feel confident when recommending Donna to my friends and family to assist them in one of the most important financial decisions of a lifetime. On both a personal and professional level I have found Donna to be a person of high principles and moral practices. As a Realtor, Donna contributes and gives back to the community of Pueblo. Donna has over 10 years of sales experience and is rightfully in the top five percent of Realtors nationwide. Her extensive knowledge is advantageous to Jones-Healy and Clients alike!
Besides being a joy to work with, Donna is a take-charge person who is able to present creative ideas and communicate the benefits to a home buyer or seller. By helping us see our home through the eyes of potential buyers, Donna gave us the perspective we needed to get our home "ready" for the market. Because of her hands on approach & help our home was successfully listed & sold in a staggering 3 weeks!
The next month, Donna was an asset to our family again in the purchase of our new home. She listened carefully to our wants and needs, found exactly what we were looking for, walked us through the process from beginning to end & delivered what she promised. At Donna's suggestion, we asked the seller to provide a home warranty. Thanks to Donna's forethought, we had help when an emergency arose. The very week we moved in, we discovered a huge water leak. I immediately called Donna and she sprang into action! She was on the phone with the Seller's Realtor, the warranty company, and the Inspector. Thanks to her diligence & perseverance, the problem was fixed. Donna is a woman of her word, an active participant in our community, a true inspiration & motivator, & definitely my Realtor!
I have known Donna for many years. I believe that she exhibits professionalism and sincerity. Most recently we were dealing with a customer that required a great deal of attention. Donna took her by the hand and led her to homeownership. Donna illustrates compassion and understanding with her clients. I believe this is the core of Donna. She really cares about people and always does the right thing for them.
I believe that many times, we as professionals fail to realize that it is about the customer and not ourselves. Donna's actions define that time and time again. She is extremely passionate about her position by realizing she is the advocate and their voice. She always looks out for their best interest even if it means she may not close a deal.
I have had the pleasure of knowing Donna Austin for over ten years as a colleague and a friend. She is the epitome of what being a Realtor is about. She is a leader by example, exuding a tremendous work ethic, relentless attention to detail together with impeccable ethics and integrity. She has been vigilant in ongoing education, achieving several designations, as well as volunteering on several association board committees.
Even with all this, she manages to make it a priority to be a strong participator in the life and activities of her husband and teenage son.
When I need a great Realtor to work with my best friend or family, she is the one I trust knowing she will work for anyone and everyone to the best of her ability always in the best interest of her clients.
In 2016 my wife and I decided to build a new home, we had used Donna Austin to help us sell our old house and she was amazing so naturally we wanted to use her to help us with this venture, and we are very glad that we did. Donna was a very key person in the purchase and building of our new home. Not only was she very knowledgeable and informative about everything to do with the real estate side of the deal, but she also was there to step in and mediate disagreements between the home builder and us (which she had to do often). Donna always did everything in her power to get questions answered as soon as possible, as well as kept us and the home builder on track throughout the entire process. My wife and I thought in the beginning of the building process we could handle most of this process ourselves but we soon realized that without Donna's 110% and mediation skills we would have been lost throughout the whole process and ultimately we would have ended up walking away from the house or at the least been extremely unhappy with how it would have turned out. Donna promised us in the beginning that she would be by our side for the entire process and even now that the deal is done and we are moved in she continues to stand by her word and help us whenever needed.
One of the most important values a person can have is standing by their word and following through with what they say they are going to do, and Donna Austin has lived up to that time and time again for us and we will not hesitate to call her in the future if we are looking for a new home.
I have been working with Donna for the past several years and within those transactions we have closed together, I have been able to learn from Donna's experience, expertise and her willingness to get the job done. Donna has her customer's best interest at heart throughout the entire process from writing the contracts to signing the closing documents. Donna strives to be the best, by staying on top of the current trends, keeping up with the changing markets and continuing her education exceeding her industry standards. If you want a realtor that will be by your side throughout the entire listing and selling process. The transactions that I have closed for Donna, both buyers and sellers have walked away from the closing table knowing that everything was taken care per the contract in the best interest of each property.
Donna Austin is awesome!! If there is anyone you would want on your side to treat you fairly and give you all the knowledge you need to buy a new home she is the one. Donna will always work tirelessly for you and get you the very best deal. She will answer all your questions and provide you with the real estate knowledge you need to have to acquire your very own home. You need not look any further than Donna Austin!
I am in awe of Ms. Donna; she always has her stuff together, and goes in 50 directions at one time. She is very diligent in her business, has great marketing ideas and carries them out with great enthusiasm. She also shares them with "THE GROUP" our networking group which I appreciate, There have been a couple of times that I have been on the verge of giving up, as working on commission is one of the hardest things to do, and we come together for the meetings once a week and I am inspired by her to carry on.
Her passion for the American Cancer Society is one of the greatest things she gives of herself. Her unselfish acts of her time and fund raising efforts have helped as she is giving to the millions of patients that have this horrible disease in the smallest of the things that she does. I hope that someday they find a cure for Cancer because she is a big part of that, and I can say "Yes I Know Donna Austin".
In her business life she genuinely cares for her clients, She keeps in touch with them, in case they should need anything, and goes with them from the sale to the closing table and after, Buying a home is a very stressful purchase, and if need be she goes to battle for her clients, I have been there, As I was an Escrow Officer, before I took on the Insurance world. I have more confidence in her I think then anybody else I know in the business community, I am very confident in handing my clients to her, I just wished there was more of them.
I have known Donna Austin for many years after she invited me to visit THE GROUP. I was so impressed with her and the other entrepreneurs, I decided to join. Donna is by far our best member. She has been the winner of our membership drive every year. She is always generous and kind. She helps and inspires our entire group with her drive and tenacity.
As a Realtor, she is diligent and tenacious. She continues to lear and is especially professional. Her reputation is excellent in her field. I would recommend her as a realtor above others that I know. Her expertise is unmatched.
Donna also works very hard to support her communtiy and her favorite charity, "The American Cancer Society". She is a key person working with the annual walk and has many other fundraisers she assists with throughout the year. I am always inspired by Donna Austin!
I am proud to know such an honorable woman and would recommend her professionally and personally!
I have worked in a number of real estate offices since 1991 which means I have worked with alot of realtors. I know what makes a good realtor and Donna Austin of Jones-Healy is one of the best in the business.
Donna Austin is dependable and reliable which is important when dealing with one of the most expensive purchases people make in their lifetime. Donna is also determined to help her buyers and sellers fulfill their real estate goals.
I have recommended Donna Austin in the past and will continue to do so in the future without hesitation.
I have had the privilege of knowing Donna Austin for almost 8 years. She is an amazing Realtor and person. The manner in which she treats her customers is truly refreshing. I count it an honor to work along side a professional like Donna. Her attitude and dedication to customer service is only measured by her willingness to succeed in finding the perfect home for you.
Donna, thank you for making the world of home buying a positive experience for every one of your current and future customers!


Hereby the document in which the opc log is described. I hope you can look into it and confirm or explain my findings.
I believe I have reproduced the problem in my lab!
In both 5.1RevD and 5.1FP4RevE I think I see an update of the old value a second before the newly written value is returned.
If I turn off audit trail, the intermediate update does not appear.
I believe the "control read" made when audit is enabled "bleed" to the client. No other clients are affected.
Since most I write here on AKS is "gossip" I recommend that you ask your regional ABB support center to file a support case. You may refer to the two threads you have written here on AKS.
Thanks, i'll prepare a case and drop it at our local ABB support center.
Thanks for your help. Because of the quick responses on AKS it is possible to go really deep into the matter and make progress in analysing the issue.
Writing a 1 works as expected, but writing a 0 results in a 1 followed by a 0.
What OPC server is used?
Do you get the same result with another OPC server?
What do you get if you write to a General Property?
Without knowing, the incorrect updates (!) must originate in the write destination's OPC server.
The wrong updates should be visible there as well, and then we know the write destianation OPC server is sending them.
If audit operator action is enabled, try disabling it. If this audit option is on, each write is preceeded by a control read (read before write) - but the response on the control read should not "bleed through" to the client posting the write.
I just finished testing with AdvDsOPCConnector loglevel 3 and it seems that they also produce events with the old status before the new one is sent. I test against an ABB connectivity server Version 5.1d. Version 5.1a did not show this behaviour. Writing to a General Property does not show this behaviour too. Finally i unchecked audit operator action and i looks like the problem is solved. I tested it several times and every time i only get only one event back with the right status. Tomorrow we go on testing so will be continued. Thanks for your help so far.
Just spoke with the developer; audit reads should not leak (this is controlled in a state machine in the connector; the control read is made with a known transaction ID and should be "caught" by the state machine as control read response instead of general response. Buf if the OPC server is not returning with correct transaction ID I guess the control read response could leak up to the client).
May I ask what OPC server you are experiencing this with?
General Properties are not like a true OPC server.
Do you have any other OPC server at hand you could test with?
I'm not familiar with other OPC servers but maybe one of my collegues is. I suggest we first confirm the solution with our MES developper. If he is satisfied we can see if we can check with another OPC server. Otherwise we have to look further. What do you mean with your question about what OPC server we are using. I test against the standard ABB OPC server in 800xa version 5.1d (5.1-4).
Which PLC is holding the Boolean property you have trouble with?
You can attach a file via next answer, attachment feature is not available in comment section.So attach file via adding new answer.
Yesterday we tested whole day on this issue. If we disable AuditEvent_OperatorAction we inmediately see improvement in OPC behavior (in afwapplogviewer) and only expected events are there. The curious thing is that we did not see this improvement in our MES applications. After rebooting the production connectivity servers our MES apllications also worked fine. We rebooted the servers but maybe killing the opcsurrogate service should have worked too. We did not test that. So it appears that AuditEvent_OperatorAction does something with opc behaviour. This can easily be tested by using the procedure Stefan described in part 1 of this issue. This behaviour is seen by changing values from a client. The curious thing still is that if a value is changed by the controller we see only one datachange_event in the afwapplogviewer however the MES application is seeing several datachange_events. Those events do not appear in the afwapplogviewer (???). In the MES applications we use the latest libraries of the OPC foundation. Is it possible that the afwapplogviewer does not detect all events?
For now we switched off the AuditEvent_OperatorAction option in our production system but off course we want to log those actions too. @Stefan what do you suggest how to solve this issue? Do i have to make this a case or is this internally already picked up? By the way we tested this with a PM864 controller as well as a softcontroller. Both showed the same behaviour.


Playing the trumpet and accordion, often at the same time, Jack Garton mixes everything from rockabilly to country, Cajun, and roots into his sound and high energy shows. Join us for these more intimate performances by up and coming artists like you'd find in big city clubs. See these incredible musicians live before they make it big.
The Idaho Falls Downtown Development Corporation strives to create a unique and inviting	atmosphere for Downtown Idaho Falls.


Walt Disney World this week announced plans to start charging its overnight resort guests for parking. Beginning March 21, drivers staying in its on-property hotels will pay $13 to $33 per night for parking. Guests at its Fort Wilderness Resort campground and day-only guests will not be charged for parking.