text:
/*	$NetBSD: html-text.cpp,v 1.1.1.3 2006/02/06 18:14:47 wiz Exp $	*/

// -*- C++ -*-
/* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
 * Free Software Foundation, Inc.
 *
 *  Gaius Mulley (gaius@glam.ac.uk) wrote html-text.cpp
 *
 *  html-text.cpp
 *
 *  provide a troff like state machine interface which
 *  generates html text.
 */

/*
This file is part of groff.

groff is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.

groff is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License along
with groff; see the file COPYING.  If not, write to the Free Software
Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */

#include "driver.h"
#include "stringclass.h"
#include "cset.h"

#if !defined(TRUE)
#   define TRUE  (1==1)
#endif
#if !defined(FALSE)
#   define FALSE (1==0)
#endif

#include "html-text.h"

#undef DEBUGGING
// #define DEBUGGING

html_text::html_text (simple_output *op) :
  stackptr(NULL), lastptr(NULL), out(op), space_emitted(TRUE),
  current_indentation(-1), pageoffset(-1), linelength(-1),
  blank_para(TRUE), start_space(FALSE)
{
}

html_text::~html_text ()
{
  flush_text();
}

#if defined(DEBUGGING)
static int debugStack = FALSE;

/*
 *  turnDebug - flip the debugStack boolean and return the new value.
 */

static int turnDebug (void)
{
  debugStack = 1-debugStack;
  return debugStack;
}

/*
 *  dump_stack_element - display an element of the html stack, p.
 */

void html_text::dump_stack_element (tag_definition *p)
{
  fprintf(stderr, " | ");
  switch (p->type) {

  case P_TAG:      if (p->indent == NULL) {
                      fprintf(stderr, "
", (char *)p->arg1); break;
                   } else {
                      fprintf(stderr, "
", (char *)p->arg1); break;
		   }
  case I_TAG:      fprintf(stderr, ""); break;
  case B_TAG:      fprintf(stderr, ""); break;
  case SUB_TAG:    fprintf(stderr, ""); break;
  case SUP_TAG:    fprintf(stderr, ""); break;
  case TT_TAG:     fprintf(stderr, "<TT>"); break;
  case PRE_TAG:    if (p->indent == NULL) {
                      fprintf(stderr, "
"); break;
                   } else {
                      fprintf(stderr, "
"); break;
		   }
  case SMALL_TAG:  fprintf(stderr, ""); break;
  case BIG_TAG:    fprintf(stderr, "<BIG>"); break;
  case BREAK_TAG:  fprintf(stderr, "<BREAK>"); break;
  case COLOR_TAG:  {
    if (p->col.is_default())
      fprintf(stderr, "<COLOR (default)>");
    else {
      unsigned int r, g, b;

      p->col.get_rgb(&r, &g, &b);
      fprintf(stderr, "<COLOR %x %x %x>", r/0x101, g/0x101, b/0x101);
    }
    break;
  }
  default: fprintf(stderr, "unknown tag");
  }
  if (p->text_emitted)
    fprintf(stderr, "[t] ");
}

/*
 *  dump_stack - debugging function only.
 */

void html_text::dump_stack (void)
{
  if (debugStack) {
    tag_definition *p = stackptr;

    while (p != NULL) {
      dump_stack_element(p);
      p = p->next;
    }
  }
  fprintf(stderr, "\n");
  fflush(stderr);
}
#else
void html_text::dump_stack (void) {}
#endif

/*
 *  end_tag - shuts down the tag.
 */

void html_text::end_tag (tag_definition *t)
{
  switch (t->type) {

  case I_TAG:      out->put_string(""); break;
  case B_TAG:      out->put_string(""); break;
  case P_TAG:      if (t->indent == NULL) {
                     out->put_string("
");
                   } else {
		     delete t->indent;
		     t->indent = NULL;
                     out->put_string("
");
		   }
		   out->enable_newlines(FALSE);
                   blank_para = TRUE; break;
  case SUB_TAG:    out->put_string(""); break;
  case SUP_TAG:    out->put_string(""); break;
  case TT_TAG:     out->put_string("</tt>"); break;
  case PRE_TAG:    out->put_string("
"); out->enable_newlines(TRUE);
                   blank_para = TRUE;
                   if (t->indent != NULL)
		     delete t->indent;
		   t->indent = NULL;
                   break;
  case SMALL_TAG:  out->put_string(""); break;
  case BIG_TAG:    out->put_string("</big>"); break;
  case COLOR_TAG:  out->put_string(""); break;

  default:
    error("unrecognised tag");
  }
}

/*
 *  issue_tag - writes out an html tag with argument.
 *              space == 0 if no space is requested
 *              space == 1 if a space is requested
 *              space == 2 if tag should not have a space style
 */

void html_text::issue_tag (const char *tagname, const char *arg,
			   int space)
{
  if ((arg == 0) || (strlen(arg) == 0))
    out->put_string(tagname);
  else {
    out->put_string(tagname);
    out->put_string(" ");
    out->put_string(arg);
  }
  if (space == TRUE) {
    out->put_string(" style=\"margin-top: ");
    out->put_string(STYLE_VERTICAL_SPACE);
    out->put_string("\"");
  }
  if (space == TRUE || space == FALSE)
    out->put_string(" valign=\"top\"");
  out->put_string(">");
}

/*
 *  issue_color_begin - writes out an html color tag.
 */

void html_text::issue_color_begin (color *c)
{
  unsigned int r, g, b;
  char buf[6+1];

  out->put_string("is_default())
    sprintf(buf, "000000");
  else {
    c->get_rgb(&r, &g, &b);
    // we have to scale 0..0xFFFF to 0..0xFF
    sprintf(buf, "%.2X%.2X%.2X", r/0x101, g/0x101, b/0x101);
  }
  out->put_string(buf);
  out->put_string("\">");
}

/*
 *  start_tag - starts a tag.
 */

void html_text::start_tag (tag_definition *t)
{
  switch (t->type) {

  case I_TAG:      issue_tag("arg1); break;
  case B_TAG:      issue_tag("arg1); break;
  case P_TAG:      if (t->indent != NULL) {
                     out->nl();
#if defined(DEBUGGING)
		     out->simple_comment("INDENTATION");
#endif
		     out->put_string("\n
indent->begin(start_space);
                     issue_tag("", (char *)t->arg1);
                   } else {
                     out->nl();
                     issue_tag("\n
arg1, start_space);
		   }

                   out->enable_newlines(TRUE); break;
  case SUB_TAG:    issue_tag("arg1); break;
  case SUP_TAG:    issue_tag("arg1); break;
  case TT_TAG:     issue_tag("<tt", (char *)t->arg1); break;
  case PRE_TAG:    out->enable_newlines(TRUE);
                   out->nl(); out->put_string("
indent == NULL)
		     issue_tag("", (char *)t->arg1, start_space);
		   else {
		     t->indent->begin(start_space);
		     issue_tag("", (char *)t->arg1);
		   }
                   out->enable_newlines(FALSE); break;
  case SMALL_TAG:  issue_tag("arg1); break;
  case BIG_TAG:    issue_tag("<big", (char *)t->arg1); break;
  case BREAK_TAG:  break;
  case COLOR_TAG:  issue_color_begin(&t->col); break;

  default:
    error("unrecognised tag");
  }
}

/*
 *  flush_text - flushes html tags which are outstanding on the html stack.
 */

void html_text::flush_text (void)
{
  int notext=TRUE;
  tag_definition *p=stackptr;

  while (stackptr != 0) {
    notext = (notext && (! stackptr->text_emitted));
    if (! notext) {
      end_tag(stackptr);
    }
    p = stackptr;
    stackptr = stackptr->next;
    delete p;
  }
  lastptr = NULL;
}

/*
 *  is_present - returns TRUE if tag is already present on the stack.
 */

int html_text::is_present (HTML_TAG t)
{
  tag_definition *p=stackptr;

  while (p != NULL) {
    if (t == p->type)
      return TRUE;
    p = p->next;
  }
  return FALSE;
}

/*
 *  uses_indent - returns TRUE if the current paragraph is using a
 *                html table to effect an indent.
 */

int html_text::uses_indent (void)
{
  tag_definition *p = stackptr;

  while (p != NULL) {
    if (p->indent != NULL)
      return TRUE;
    p = p->next;
  }
  return FALSE;
}

extern void stop();

/*
 *  do_push - places, tag_definition, p, onto the stack
 */

void html_text::do_push (tag_definition *p)
{
  HTML_TAG t = p->type;

#if defined(DEBUGGING)
  if (t == PRE_TAG)
    stop();
  debugStack = TRUE;
  fprintf(stderr, "\nentering do_push (");
  dump_stack_element(p);
  fprintf(stderr, ")\n");
  dump_stack();
  fprintf(stderr, ")\n");
  fflush(stderr);
#endif

  /*
   *  if t is a P_TAG or PRE_TAG make sure it goes on the end of the stack.
   */

  if (((t == P_TAG) || (t == PRE_TAG)) && (lastptr != NULL)) {
    /*
     *  store, p, at the end
     */
    lastptr->next = p;
    lastptr       = p;
    p->next       = NULL;
  } else {
    p->next       = stackptr;
    if (stackptr == NULL)
      lastptr = p;
    stackptr      = p;
  }

#if defined(DEBUGGING)
  dump_stack();
  fprintf(stderr, "exiting do_push\n");
#endif
}

/*
 *  push_para - adds a new entry onto the html paragraph stack.
 */

void html_text::push_para (HTML_TAG t, void *arg, html_indent *in)
{
  tag_definition *p= new tag_definition;

  p->type         = t;
  p->arg1         = arg;
  p->text_emitted = FALSE;
  p->indent       = in;

  if (t == PRE_TAG && is_present(PRE_TAG))
    fatal("cannot have multiple PRE_TAGs");

  do_push(p);
}

void html_text::push_para (HTML_TAG t)
{
  push_para(t, (void *)"", NULL);
}

void html_text::push_para (color *c)
{
  tag_definition *p = new tag_definition;

  p->type         = COLOR_TAG;
  p->arg1         = NULL;
  p->col          = *c;
  p->text_emitted = FALSE;
  p->indent       = NULL;

  do_push(p);
}

/*
 *  do_italic - changes to italic
 */

void html_text::do_italic (void)
{
  if (! is_present(I_TAG))
    push_para(I_TAG);
}

/*
 *  do_bold - changes to bold.
 */

void html_text::do_bold (void)
{
  if (! is_present(B_TAG))
    push_para(B_TAG);
}

/*
 *  do_tt - changes to teletype.
 */

void html_text::do_tt (void)
{
  if ((! is_present(TT_TAG)) && (! is_present(PRE_TAG)))
    push_para(TT_TAG);
}

/*
 *  do_pre - changes to preformated text.
 */

void html_text::do_pre (void)
{
  done_tt();
  if (is_present(P_TAG)) {
    html_indent *i = remove_indent(P_TAG);
    int space = retrieve_para_space();
    (void)done_para();
    if (! is_present(PRE_TAG))
      push_para(PRE_TAG, NULL, i);
    start_space = space;
  } else if (! is_present(PRE_TAG))
    push_para(PRE_TAG, NULL, NULL);
  dump_stack();
}

/*
 *  is_in_pre - returns TRUE if we are currently within a preformatted
 *
 block.
 */

int html_text::is_in_pre (void)
{
  return is_present(PRE_TAG);
}

/*
 *  do_color - initiates a new color tag.
 */

void html_text::do_color (color *c)
{
  shutdown(COLOR_TAG);   // shutdown a previous color tag, if present
  push_para(c);
}

/*
 *  done_color - shutdown an outstanding color tag, if it exists.
 */

void html_text::done_color (void)
{
  shutdown(COLOR_TAG);
}

/*
 *  shutdown - shuts down an html tag.
 */

char *html_text::shutdown (HTML_TAG t)
{
  char *arg=NULL;

  if (is_present(t)) {
    tag_definition *p    =stackptr;
    tag_definition *temp =NULL;
    int notext           =TRUE;

    dump_stack();
    while ((stackptr != NULL) && (stackptr->type != t)) {
      notext = (notext && (! stackptr->text_emitted));
      if (! notext) {
	end_tag(stackptr);
      }

      /*
       *  pop tag
       */
      p        = stackptr;
      stackptr = stackptr->next;
      if (stackptr == NULL)
	lastptr = NULL;

      /*
       *  push tag onto temp stack
       */
      p->next = temp;
      temp    = p;
    }

    /*
     *  and examine stackptr
     */
    if ((stackptr != NULL) && (stackptr->type == t)) {
      if (stackptr->text_emitted) {
	end_tag(stackptr);
      }
      if (t == P_TAG) {
	arg = (char *)stackptr->arg1;
      }
      p        = stackptr;
      stackptr = stackptr->next;
      if (stackptr == NULL)
	lastptr = NULL;
      if (p->indent != NULL)
	delete p->indent;
      delete p;
    }

    /*
     *  and restore unaffected tags
     */
    while (temp != NULL) {
      if (temp->type == COLOR_TAG)
	push_para(&temp->col);
      else
	push_para(temp->type, temp->arg1, temp->indent);
      p    = temp;
      temp = temp->next;
      delete p;
    }
  }
  return arg;
}

/*
 *  done_bold - shuts downs a bold tag.
 */

void html_text::done_bold (void)
{
  shutdown(B_TAG);
}

/*
 *  done_italic - shuts downs an italic tag.
 */

void html_text::done_italic (void)
{
  shutdown(I_TAG);
}

/*
 *  done_sup - shuts downs a sup tag.
 */

void html_text::done_sup (void)
{
  shutdown(SUP_TAG);
}

/*
 *  done_sub - shuts downs a sub tag.
 */

void html_text::done_sub (void)
{
  shutdown(SUB_TAG);
}

/*
 *  done_tt - shuts downs a tt tag.
 */

void html_text::done_tt (void)
{
  shutdown(TT_TAG);
}

/*
 *  done_pre - shuts downs a pre tag.
 */

void html_text::done_pre (void)
{
  shutdown(PRE_TAG);
}

/*
 *  done_small - shuts downs a small tag.
 */

void html_text::done_small (void)
{
  shutdown(SMALL_TAG);
}

/*
 *  done_big - shuts downs a big tag.
 */

void html_text::done_big (void)
{
  shutdown(BIG_TAG);
}

/*
 *  check_emit_text - ensures that all previous tags have been emitted (in order)
 *                    before the text is written.
 */

void html_text::check_emit_text (tag_definition *t)
{
  if ((t != NULL) && (! t->text_emitted)) {
    check_emit_text(t->next);
    t->text_emitted = TRUE;
    start_tag(t);
  }
}

/*
 *  do_emittext - tells the class that text was written during the current tag.
 */

void html_text::do_emittext (const char *s, int length)
{
  if ((! is_present(P_TAG)) && (! is_present(PRE_TAG)))
    do_para("", FALSE);

  if (is_present(BREAK_TAG)) {
    int text = remove_break();
    check_emit_text(stackptr);
    if (text) {
      if (is_present(PRE_TAG)) {
	out->nl();
      } else
	out->put_string("
").nl();
    }
  } else
    check_emit_text(stackptr);

  out->put_string(s, length);
  space_emitted = FALSE;
  blank_para = FALSE;
}

/*
 *  do_para - starts a new paragraph
 */

void html_text::do_para (const char *arg, html_indent *in, int space)
{
  if (! is_present(P_TAG)) {
    if (is_present(PRE_TAG)) {
      html_indent *i = remove_indent(PRE_TAG);
      done_pre();
      if ((arg == NULL || (strcmp(arg, "") == 0)) &&
	  (i == in || in == NULL))
	in = i;
      else
	delete i;
    }
    remove_sub_sup();
    push_para(P_TAG, (void *)arg, in);
    start_space = space;
  }
}

void html_text::do_para (const char *arg, int space)
{
  do_para(arg, NULL, space);
}

void html_text::do_para (simple_output *op, const char *arg1,
			 int indentation_value, int page_offset,
			 int line_length, int space)
{
  html_indent *ind;

  if (indentation_value == 0)
    ind = NULL;
  else
    ind = new html_indent(op, indentation_value, page_offset, line_length);
  do_para(arg1, ind, space);
}

/*
 *  done_para - shuts down a paragraph tag.
 */

char *html_text::done_para (void)
{
  char *result;
  space_emitted = TRUE;
  result = shutdown(P_TAG);
  start_space = FALSE;
  return result;
}

/*
 *  remove_indent - returns the indent associated with, tag.
 *                  The indent associated with tag is set to NULL.
 */

html_indent *html_text::remove_indent (HTML_TAG tag)
{
  tag_definition *p=stackptr;

  while (p != NULL) {
    if (tag == p->type) {
      html_indent *i = p->indent;
      p->indent = NULL;
      return i;
    }
    p = p->next;
  }
  return NULL;
}

/*
 *  remove_para_space - removes the leading space to a paragraph
 *                      (effectively this trims off a leading `.sp' tag).
 */

void html_text::remove_para_space (void)
{
  start_space = FALSE;
}

/*
 *  do_space - issues an end of paragraph
 */

void html_text::do_space (void)
{
  if (is_in_pre()) {
    do_emittext("", 0);
    out->force_nl();
    space_emitted = TRUE;
  } else {
    html_indent *i = remove_indent(P_TAG);

    do_para(done_para(), i, TRUE);
    space_emitted = TRUE;
  }
}

/*
 *  do_break - issue a break tag.
 */

void html_text::do_break (void)
{
  if (! is_present(PRE_TAG))
    if (emitted_text())
      if (! is_present(BREAK_TAG))
	push_para(BREAK_TAG);

  space_emitted = TRUE;
}

/*
 *  do_newline - issue a newline providing that we are inside a
 tag.
 */

void html_text::do_newline (void)
{
  if (is_present(PRE_TAG)) {
    do_emittext("\n", 1);
    space_emitted = TRUE;
  }
}

/*
 *  emitted_text - returns FALSE if white space has just been written.
 */

int html_text::emitted_text (void)
{
  return !space_emitted;
}

/*
 *  ever_emitted_text - returns TRUE if we have ever emitted text in this
 *                      paragraph.
 */

int html_text::ever_emitted_text (void)
{
  return !blank_para;
}

/*
 *  starts_with_space - returns TRUE if we started this paragraph with a .sp
 */

int html_text::starts_with_space (void)
{
  return start_space;
}

/*
 *  retrieve_para_space - returns TRUE, if the paragraph starts with
 *                        a space and text has not yet been emitted.
 *                        If TRUE is returned, then the, start_space,
 *                        variable is set to FALSE.
 */

int html_text::retrieve_para_space (void)
{
  if (start_space && blank_para) {
    start_space = FALSE;
    return TRUE;
  }
  else
    return FALSE;
}

/*
 *  emit_space - writes a space providing that text was written beforehand.
 */

void html_text::emit_space (void)
{
  if (is_present(PRE_TAG))
    do_emittext(" ", 1);
  else
    out->space_or_newline();

  space_emitted = TRUE;
}

/*
 *  remove_def - removes a definition, t, from the stack.
 */

void html_text::remove_def (tag_definition *t)
{
  tag_definition *p    = stackptr;
  tag_definition *l    = 0;
  tag_definition *q    = 0;

  while ((p != 0) && (p != t)) {
    l = p;
    p = p->next;
  }
  if ((p != 0) && (p == t)) {
    if (p == stackptr) {
      stackptr = stackptr->next;
      if (stackptr == NULL)
	lastptr = NULL;
      q = stackptr;
    } else if (l == 0) {
      error("stack list pointers are wrong");
    } else {
      l->next = p->next;
      q = p->next;
      if (l->next == NULL)
	lastptr = l;
    }
    delete p;
  }
}

/*
 *  remove_tag - removes a tag from the stack.
 */

void html_text::remove_tag (HTML_TAG tag)
{
  tag_definition *p = stackptr;

  while ((p != 0) && (p->type != tag)) {
    p = p->next;
  }
  if ((p != 0) && (p->type == tag))
    remove_def(p);
}

/*
 *  remove_sub_sup - removes a sub or sup tag, should either exist
 *                   on the stack.
 */

void html_text::remove_sub_sup (void)
{
  if (is_present(SUB_TAG)) {
    remove_tag(SUB_TAG);
  }
  if (is_present(SUP_TAG)) {
    remove_tag(SUP_TAG);
  }
  if (is_present(PRE_TAG)) {
    remove_tag(PRE_TAG);
  }
}

/*
 *  remove_break - break tags are not balanced thus remove it once it has been emitted.
 *                 It returns TRUE if text was emitted before the
 was issued.
 */

int html_text::remove_break (void)
{
  tag_definition *p    = stackptr;
  tag_definition *l    = 0;
  tag_definition *q    = 0;

  while ((p != 0) && (p->type != BREAK_TAG)) {
    l = p;
    p = p->next;
  }
  if ((p != 0) && (p->type == BREAK_TAG)) {
    if (p == stackptr) {
      stackptr = stackptr->next;
      if (stackptr == NULL)
	lastptr = NULL;
      q = stackptr;
    } else if (l == 0)
      error("stack list pointers are wrong");
    else {
      l->next = p->next;
      q = p->next;
      if (l->next == NULL)
	lastptr = l;
    }
    delete p;
  }
  /*
   *  now determine whether text was issued before

   */
  while (q != 0) {
    if (q->text_emitted)
      return TRUE;
    else
      q = q->next;
  }
  return FALSE;
}

/*
 *  remove_para_align - removes a paragraph which has a text
 *                      argument. If the paragraph has no text
 *                      argument then it is left alone.
 */

void html_text::remove_para_align (void)
{
  if (is_present(P_TAG)) {
    tag_definition *p=stackptr;

    while (p != NULL) {
      if (p->type == P_TAG && p->arg1 != NULL) {
	html_indent *i = remove_indent(P_TAG);
	int          space = retrieve_para_space();
	done_para();
	do_para("", i, space);
	return;
      }
      p = p->next;
    }
  }
}

/*
 *  get_alignment - returns the alignment for the paragraph.
 *                  If no alignment was given then we return "".
 */

char *html_text::get_alignment (void)
{
  if (is_present(P_TAG)) {
    tag_definition *p=stackptr;

    while (p != NULL) {
      if (p->type == P_TAG && p->arg1 != NULL)
	return (char *)p->arg1;
      p = p->next;
    }
  }
  return (char *)"";
}

/*
 *  do_small - potentially inserts a  tag into the html stream.
 *             However we check for a <big> tag, if present then we terminate it.
 *             Otherwise a  tag is inserted.
 */

void html_text::do_small (void)
{
  if (is_present(BIG_TAG))
    done_big();
  else
    push_para(SMALL_TAG);
}

/*
 *  do_big - is the mirror image of do_small.
 */

void html_text::do_big (void)
{
  if (is_present(SMALL_TAG))
    done_small();
  else
    push_para(BIG_TAG);
}

/*
 *  do_sup - save a superscript tag on the stack of tags.
 */

void html_text::do_sup (void)
{
  push_para(SUP_TAG);
}

/*
 *  do_sub - save a subscript tag on the stack of tags.
 */

void html_text::do_sub (void)
{
  push_para(SUB_TAG);
}

redpajama_set_name: RedPajamaGithub


As the Western establishment continues to try and crush Syria, Venezuela, Iran and the Philippines, the empire is setting its sights on a new target which is receiving itself less attention: Tanzania.
Although not in the form of bombs and sanctions (yet), the G8 is moving to force Tanzania to accept GMOs and patented seeds under the guise of developmental assistance and aid to one of the world's most impoverished nations. The G8 is doing so through its NAFSN (New Alliance for Food Security and Nutrition) which was created in 2012. Its publicly stated goal was to end poverty for 50 million people and it is funded by the EU, U.S., UK, World Bank, and the Bill and Melinda Gates Foundation. One of its many partners in Tanzania is of course, Monsanto.
In other words, the same countries who are marching across the world and creating the largest humanitarian disasters of the 21st century are working with a global bank that has slashed, indebted and privatized countries into abject poverty. A foundation has crippled children in India and helped bring back polio and a corporation that has poisoned the food supply and the environment and destroyed the health of hundreds of millions of people. Indeed, the NAFSN is an all-star cast of prime examples of governments and organizations that no one should ever want being involved in their country.
The G8, World Bank and its "partners" has long been known to force GMOs onto hapless countries. But what they are doing to Tanzania is particularly egregious. This is because the NAFSN is not only opening Tanzania up to GMOs, it is forcing Tanzania to accept GMOs at the barrel of a gun.
The NAFSN has forced the Tanzanian government to change its agricultural laws so that GM crops are now able to be planted in the country and incredibly stiff penalties exist will be implemented for anyone who dares share the patented seeds. Individuals who violate the law will face minimum of 12 years in prison and a $230,000 fine or both.
The NAFSN claims the decision will benefit small farmers, but it is important to note that local and small farmers and Tanzanian farming organizations were completely kept out of the negotiation process while Big Ag essentially controlled. One of the tenets of the new law much praised is that private investors will be given easier access through a more streamlined process to Tanzanian agricultural land.
What the NAFSN has done is much worse than extortion and it is more than criminal. It is open colonialism in the 21st century. Essentially, the NAFSN has used the poverty in Tanzania as a bargaining chip for its alleged food aid which is actually a bundle of toxic crops, an open police state and a massive boon to Big Ag's balance sheets.
The West has negotiated a deal which impoverished people, shivering in the cold will be given blankets covered in small pox. It is odd how things change, but remain constantly the same.
This new law is the incremental disintegration of nature, self-sustainability and independence. This introduction of GMO crops will eventually lead to the evaporation of natural and traditional practices of both agriculture and culture over time.
It is thus telling that the World Bank, one of the self-proclaimed leaders of world charity, would push through a law such as this despite it being in contradiction to laws put forward by its own international sister organizations.
But international law or no international law, are we really to expect Tanzanian farmers to make a successful court case against the NAFSN and their own government? They have limited economic resources, limited knowledge of international law, and they are facing a coalition of the worst and most powerful elements of world civilization. They will expend many resources to find that if they are successful, they will still be competing with Big Ag. By the time the lawsuit is finished the damage will be done.
The NASFN proudly boasts that it has secured $3.7 billion dollars in "private sector investment" in Africa since 2012. And they repeat these figures as if members of the organization have been collecting money with their caps in their hands. In reality, however, they have merely been talking amongst themselves and making the decision as to who can feed off of the Tanzanian people and how many shares they can have. This is not charity. It is colonialism.


From the beginning, when we installed the Microsoft Lync 2013 client, we had a problem with the fact that Lync 2013 does not update the status on the basis of meetings listed in the Outlook calendar.
The result of this was that we had to adjust the status of Lync 2013 client manually for Busy eg.: when a calendar appointment was entered, and then adjust it to Available, after appointment.
remove and recreate Lync user account, change Windows OS version to 7 or 8 with the same result.
Unfortunately, nothing helped, so this weekend we decided to finally take the subject seriously.
As it turned out, after a search we found KB2804472 article published by Microsoft on 01/17/2013, which solved the problem.
We've read that primary SMTP address assigned to mailbox is causing problems, with status updates in Microsoft Lync 2013.
This problem may occur when the user's primary SMTP address contains uppercase characters.
It is in our opinion a very strange behavior, because most e-mails rather on Microsoft Exchange servers are created so that the first letters of the name and the names are spelled with a capital letter.
In this case, at the time of implementation of all the Lync 2013 client, suddenly we had a lot of users unhappy with the operation of the new client.
The solution to the problem, and in fact the workaround recommended by Microsoft is, of course, change the SMTP primary address to lowercase letters.
Unfortunately, such operations can not be performed easily in the console EMC because SMTP address rewriting to lowercase letters for the console is not recognized as any change in the EMC console and the address is entered again as it was with capital letters.
You need to change letters to lowercase and in the same time add some sign (letter or digit) to address and save.
Then address will be saved with lowercase letters.
After this operation, we need to re-edit the address and remove the appended character.
We hope that the issue with Microsoft Lync 2013 status will not be swept under the carpet by Microsoft and in the next update or CU for Microsoft Lync will be corrected.
Tagged KB2804472, Lync 2013 update status problem, Microsoft Lync 2013. Bookmark the permalink.


User the "Find" tool in your browser to look for specific names.
Betsy HAUGER XE "Hauger, Betsy"
27211 XE "Livengood, Alice Ada"
27212 XE "Livengood, Anna Mary"
27213 XE "Livengood, William Wallace"
ch: Marian A., Henry W.
272131 XE "Livengood, Marian A."
272132 XE "Livengood, Henry W."
27214 XE "Livengood, Charles Abraham"
272141 XE "Livengod, Catherine Amanda"
2721411 XE "Nesemeier, Gordon Keith"
2722 XE "Livengood, Elias Peter"
ch: Sadie A., Mary S., Fanny E., Robert M., Lulu G.
27221 XE "Livengood, Sadie A."
272212 XE "Puterbaugh, H. Brice"
2722121 XE "Puterbaugh, Marjorie May"
2722122 XE "Puterbaugh, Edwin Milton"
27222 XE "Livengood, Mary S."
ch: Elizabeth E., Edson P., Kermit C., William H., Robert E.
27223 XE "Livengood, Fanny E."
ch: Marguerete, Ralph M., Edwin P., Helen R.
272232 XE "Flickinger, Ralph M."
2722321 XE "Flickinger, Charlotte Ione"
2722322 XE "Flickinger, Dwight Alan"
2722323 XE "Flickinger, Joyce Carlene"
272233 XE "Flickinger, Edwin P."
272234 XE "Flickinger, Helen R."
2722341 XE "Lamoreux, Joan Elaine"
27224 XE "Livengood, Robert M."
27225 XE "Livengood, Lulu G."
272251 XE "Sward, Ruth Elizabeth"
272252 XE "Sward, Eldon Weith"
ch: Michael, Samuel, Lizzie, William Henry, others?
Samuel, John Z., Frank E.
2741 XE "Livengood, Zachary Taylor"
27411 XE "Livengood, John A."
27421 XE "Livengood, William M."
274211 XE "Livengood, William Joseph"
William is a graduate of U. of Washington. He was in life insurance.
27422 XE "Livengood, Edith May"
Edith was a music teacher.
274221 XE "Moseley, Susan Caroline"
Henry WALKER XE "Walker, Henry"
William Spencer BELL XE "Bell, William Spencer" s/o William G. and Eliza A.
2745 XE "Livengood, Abraham Lincoln"
2746 XE "Livengood, Annie L. E."
2747 XE "Livengood, William C."
2748 XE "Livengood, Sarah Ella"
27481 XE "Flickinger, Edgar L."
Ida SMITH XE "Smith, Ida"
274a XE "Livengood, John Z."
274b XE "Livengood, Frank E."
274b12 XE "Anderson, Norma Louise"
Shepherd H. ZIMMERMAN XE "Zimmerman, Shepherd H."
2762 XE "Herrington, Emma Blanche"
J. E. MILLER XE "Miller, J. E."
ch: Edward J., Marion, ?
27621 XE "Miller, Edward J."
Normal School, Ellensburg, WA. She was a teacher.
276211 XE "Miller, Edward Joseph"
276221 XE "Beard, Ward Powers"


text:
This survey once again provides a comprehensive view on diabetes care across the whole population of Scotland. The systems in place to record these data are such that we are able to present information about over 99% of the population diagnosed with diabetes. SCIDiabetes, our clinical management and information system, is world-leading, and continues to enable us to track the effects of health policy on the delivery of care and outcomes for the 304,375 people with diabetes in Scotland.
This survey once again provides a comprehensive view on diabetes care across the whole population of Scotland. The systems in place to record these data are such that we are able to present information about over 99% of the population diagnosed with diabetes. SCIDiabetes, our clinical management and information system, is world leading, and continues to enable us to track the effects of health policy on the delivery of care and outcomes for the 298 thousand people with diabetes in Scotland.
Diabetes Conference 2018 slides published
On 2 February 2018 the Scottish Government and the Scottish Diabetes Group hosted the "Improving Diabetes Care in Scotland 2018 – Understanding the present and shaping the future. The slides presented on the day can be found in Publications.
This is now the 16th year of the Scottish Diabetes Survey that describes aspects of diabetes care in Scotland in December 2016. It contains core information from over 99% of people diagnosed with diabetes in Scotland, thereby comprehensively describing the work of patients, carers and health care professionals across all of Scotland. It combines information from many sources both in hospitals and in the community that provide integrated care through the managed clinical networks. The data also reflect the influence of Scottish Government policy, the Scottish Diabetes Group and the third sector such as Diabetes Scotland.
UPDATE 20/9/17
Measure 5 (Page 113) Figure 47 – Label has been updated to reflect that this relates to Type 1 Age 50-70 by NHS Board.
Measure 5 (Page 114) Figure 48 – This is new addition to reflect Type 2 and Other Age 50-70 by NHS Board.
Please note: Due to the addition of the new Figure 48 (Page 114) the numbering in subsequent figure bar charts (from page 114 to 123) has changed by one, for example figure 51 in the previous version is now figure 52.
You can access the survey here.
The Survey shows more people than ever before have had a blood glucose measurement and eye screening, and we have significantly increased the number of people accessing insulin pump therapy. As in previous years, the Survey also shows an ongoing increase in the prevalence of diabetes without a definite increase in the incidence of Type 2 Diabetes.
One aim of the 2014 Diabetes Improvement Plan is to enable more dynamic and local use of the information available within SCI-Diabetes. We have put in place a mechanism to automatically provide quarterly feedback to NHS Boards of important aspects of diabetes care. A sample of these reports is described in this survey.
The 2014 survey shows that there are more people than ever before living with diabetes having their HbA1c recorded, having their foot score measured and accessing retinopathy screening. There has also been an increase in the number of people with good glucose control, and a decrease in the number of people with poor glucose control.
The survey also highlights some challenges for NHS Scotland. The number of people with diabetes continues to increase, increasing organisational and resource pressures on Boards. The high prevalence of smoking in the diabetes population that is already at very high risk of cardiovascular disease also continues to be of concern.
The Survey will also assist the Scottish Diabetes Group in understanding progress with the Diabetes Improvement Plan. We therefore expect to build on the messages the Survey gives us to further improve the quality of diabetes care in Scotland and help ensure that people with diabetes in Scotland receive world class, safe, effective and person centred care.
New document supporting Type 1 diabetes in education launched
New guidance will be issued to schools and parents from this week to help them support children with Type 1 diabetes.
It comes as the annual Scottish Diabetes Survey, published this weekend, shows the number of cases of Type 1 diabetes continues to rise. The number of people with Type 1 diabetes has increased from 26,294 in 2006 to 29,251 in 2014 – an increase of 11.3 per cent.
The new guidelines – Supporting Children and Young People with Type 1 Diabetes in Education - set out the responsibilities of local councils, schools, parents and young people. It includes advice on exam planning, injecting and storing insulin, blood glucose monitoring, eating, and physical activity in school.
The guidance brings together, for the first time, some of the best policies that are in place around Scotland. It has been produced in collaboration with teachers, parents, young people and healthcare professionals, and will be distributed to schools and colleges throughout Scotland. It will also be available online.
The booklet has been produced by the Childhood & Adolescent Subgroup of the Scottish Diabetes Group and Diabetes Scotland, with funding from the Scottish Government.
According to the Scottish Diabetes Survey there were 3,733 under 20s with Type 1 diabetes in Scotland at the end of 2013, and 1,860 under 15. The total number of people with diabetes is 268,154, of which 29,261 have type 1, 10.9 per cent of the total.
The increase of Type 1 cases reflects the rising incidence in children, and that people with the condition are now living longer. Type 1 is primarily an inherited condition.
The Scottish Government is taking a number of steps to deal with the increased cases of Type 1 diabetes, mainly focused on early diagnosis and improving access to insulin treatments.
Michael Matheson, Minister for Public Health, said: "This new set of guidelines is a clear and accessible way for teachers and parents to get the information they need about how to care for children with Type 1 diabetes.
"There's no reason why a child with diabetes shouldn't play a full and active role in school life. However, it's vital that teachers, parents and young people know how to prevent any problems, and that's why these guidelines will be so useful.
"Cases of Type 1 diabetes are rising in most western countries, and Scotland is no exception. That's why this document, and all our other work in this area, is so important in improving the health of people living with type 1 diabetes in Scotland.
Claire Judson, National Director of Diabetes Scotland, said "It is a human right for children to be able to access education and not miss a day's school. The care of children with Type 1 diabetes is a team effort, which requires all participants to play an active part in ensuring that that the child or young person has the best possible start in life and can succeed for the future. This document highlights the responsibilities of each of the partners involved to give a complete picture of what is needed so that children and young people with Type 1 diabetes are healthy and safe.
"I hope that all schools and local authorities will use this guidance in collaboration with children, parents and paediatric diabetes teams, so that children can manage their condition and receive the appropriate provision of care. Education is the gateway to a healthier adult life and creating opportunities for the future."
Diabetes Education Scotland website
The Diabetes Education Scotland website has been developed by the National Education Co-Ordinator for Diabetes in consultation with the post's steering group and the Diabetes Education Advisory Group.
Diabetes and Insulin Pump Therapy online course (Continuous Subcutaneous Insulin Infusion)
This online course is suitable for Health Care Professionals who come into contact with insulin pump-users, and who want to gain an understanding of this increasingly popular technology.
The aim of the course is to develop theoretical knowledge, practical skills and an awareness of the patient perspective, relating to management of Continuous Subcutaneous Insulin Infusion (CSII) therapy. See course flyer page for more details.
Ketocard now available
Guidance card for Diabetic Ketoacidosis (DKA).
Ketocard

redpajama_set_name: RedPajamaCommonCrawl


The first picture is a picture Modern Master Bedroom Designs Interesting On In 17 Fireplace Tile Ideas Best Design 27, the image has been in named with : Modern Master Bedroom Designs Interesting On In 17 Fireplace Tile Ideas Best Design 27, This image was posted on category : Bedroom, have resolution : 640x640 pixel. This posting entitled Modern Master Bedroom Designs Interesting On In 17 Fireplace Tile Ideas Best Design 27, and many people looking about Modern Master Bedroom Designs Interesting On In 17 Fireplace Tile Ideas Best Design 27 from Search Engine.
Click Thumbnail Bellow to Look Gallery of "Modern Master Bedroom Designs Interesting On In 17 Fireplace Tile Ideas Best Design 27"


text:
package core

import (
	"errors"
	"strings"
	"sync"

	"github.com/pingcap/tidb/expression"
	"github.com/pingcap/tidb/parser/ast"
	"github.com/pingcap/tidb/parser/format"
	"github.com/pingcap/tidb/sessionctx"
	"github.com/pingcap/tidb/types"
	driver "github.com/pingcap/tidb/types/parser_driver"
)

var (
	paramReplacerPool = sync.Pool{New: func() interface{} {
		pr := new(paramReplacer)
		pr.Reset()
		return pr
	}}
	paramRestorerPool = sync.Pool{New: func() interface{} {
		pr := new(paramRestorer)
		pr.Reset()
		return pr
	}}
	paramCtxPool = sync.Pool{New: func() interface{} {
		buf := new(strings.Builder)
		buf.Reset()
		restoreCtx := format.NewRestoreCtx(format.DefaultRestoreFlags, buf)
		return restoreCtx
	}}
)

type paramReplacer struct {
	params []*driver.ValueExpr
}

func (pr *paramReplacer) Enter(in ast.Node) (out ast.Node, skipChildren bool) {
	switch n := in.(type) {
	case *driver.ValueExpr:
		pr.params = append(pr.params, n)
		// offset is used as order in general plan cache.
		param := ast.NewParamMarkerExpr(len(pr.params) - 1)
		return param, true
	}
	return in, false
}

func (pr *paramReplacer) Leave(in ast.Node) (out ast.Node, ok bool) {
	return in, true
}

func (pr *paramReplacer) Reset() { pr.params = nil }

// ParameterizeAST parameterizes this StmtNode.
// e.g. `select * from t where a<10 and b<23` --> `select * from t where a<? and b<?`, [10, 23].
// NOTICE: this function may modify the input stmt.
func ParameterizeAST(sctx sessionctx.Context, stmt ast.StmtNode) (paramSQL string, params []*driver.ValueExpr, err error) {
	pr := paramReplacerPool.Get().(*paramReplacer)
	pCtx := paramCtxPool.Get().(*format.RestoreCtx)
	defer func() {
		pr.Reset()
		paramReplacerPool.Put(pr)
		pCtx.In.(*strings.Builder).Reset()
		paramCtxPool.Put(pCtx)
	}()
	stmt.Accept(pr)
	if err := stmt.Restore(pCtx); err != nil {
		err = RestoreASTWithParams(sctx, stmt, pr.params)
		return "", nil, err
	}
	paramSQL, params = pCtx.In.(*strings.Builder).String(), pr.params
	return
}

type paramRestorer struct {
	params []*driver.ValueExpr
	err    error
}

func (pr *paramRestorer) Enter(in ast.Node) (out ast.Node, skipChildren bool) {
	switch n := in.(type) {
	case *driver.ParamMarkerExpr:
		if n.Offset >= len(pr.params) {
			pr.err = errors.New("failed to restore ast.Node")
			return nil, true
		}
		// offset is used as order in general plan cache.
		return pr.params[n.Offset], true
	}
	if pr.err != nil {
		return nil, true
	}
	return in, false
}

func (pr *paramRestorer) Leave(in ast.Node) (out ast.Node, ok bool) {
	return in, true
}

func (pr *paramRestorer) Reset() {
	pr.params, pr.err = nil, nil
}

// RestoreASTWithParams restore this parameterized AST with specific parameters.
// e.g. `select * from t where a<? and b<?`, [10, 23] --> `select * from t where a<10 and b<23`.
func RestoreASTWithParams(_ sessionctx.Context, stmt ast.StmtNode, params []*driver.ValueExpr) error {
	pr := paramRestorerPool.Get().(*paramRestorer)
	defer func() {
		pr.Reset()
		paramRestorerPool.Put(pr)
	}()
	pr.params = params
	stmt.Accept(pr)
	return pr.err
}

// Params2Expressions converts these parameters to an expression list.
func Params2Expressions(params []*driver.ValueExpr) []expression.Expression {
	exprs := make([]expression.Expression, 0, len(params))
	for _, p := range params {
		tp := new(types.FieldType)
		types.DefaultParamTypeForValue(p.Datum.GetValue(), tp)
		exprs = append(exprs, &expression.Constant{
			Value:   p.Datum,
			RetType: tp,
		})
	}
	return exprs
}


After the Volkswagen GTI Roadster Vision Gran Turismo was launched last month, the supermodel ended up in the spotlights again, after the automaker released a clip showing a step-by-step creation process of the model.
The video with the Volkswagen GTI Roadster Vision Gran Turismo starts by showing the supercar first riding in a famous racing video game, the Gran Turismo 6, while giving ideas for the engineers to perfectly recreate the gaming sportscar.
The Volkswagen GTI Roadster Vision Gran Turismo has received a powerful 3.0-liter TSI VR6 unit, developing an impressive 503 horsepower and massive 665 Nm of torque.
The engine is hooked to a 7-speed DSG transmission which sends the power to the company`s 4MOTION all-wheel drive.
Apart from the worthy performance of such a futuristic supercar, the Volkswagen GTI Roadster Vision Gran Turismo has also received a carbon fiber body kit, a large rear wing, center mounted dual exhaust system or the 20-inch alloy wheels.
To put it differently, we might refer to the Volkswagen GTI Roadster Vision Gran Turismo as a "GolF R32 on steroids", having no roof.


text:
New Technology Finds Another Explanation For the Disappearance of MH370
Paul Seaburn May 8, 2021
One of the great unsolved mysteries of the 2010s continues to be the disappearance of Malaysia Airlines flight MH370 — a Boeing 777 with 239 people on board that took off on March 8, 2014, from Kuala Lumpur International Airport on a flight to Beijing … a flight that mysteriously ended when it disappeared off tracking radar. Pieces have been found, but the body of the plane with the remains of the passengers and the flight recorder have never been recovered. Many theories to its demise have been put forth and, while some have been investigated, none have solved it. An aerospace engineer who has been studying MH370 for years has a new one involving a radar system described as "a bunch of trip wires) that he claims reveal the true intention of the pilot. Is this the smoking engine?
"WSPR is like a bunch of tripwires or laser beams, but they work in every direction over the horizon to the other side of the globe."
Like invisible security beams in a bank.
WSPR is a new technology called Weak Signal Propagation and aerospace engineer Richard Godfrey explains it and how he used it to track the last flight of MH370 in his new paper, "Global Detection and Tracking of Aircraft as used in the Search for MH370." Godrey has a long resume in avionics systems and was the lead engineer for the integration and test of the European Space Agency Spacelab with the NASA Space Shuttle. In 2014, Godfrey was a founding member of the MH370 Independent Group and has been seeking the reason for its disappearance ever since. AirlineRatings, which interviewed Godfrey, explains that WSPR was developed and released in 2008 by Prof. Joe Taylor, a Nobel Prize Laureate for Physics. Godfrey's paper (read it here) contains a number of graphic representations of WSPR showing the path of MH370.
"In this paper I describe a system for the Global Detection and Tracking of any Aircraft, Anywhere and at Anytime (GDTAAA). The system takes data from the WSPRnet and feeds it automatically into a flight tracking system."
Godfrey tells AirlineRatings that all planes — commercial, private or military — will set off the WSPR tripwires as they pass through them. Using them, he shows that the pilot in command of MH370 deliberately made a series of turns and speed changes to avoid detection by other tracking systems and satellites as well as leaving "false trails" on unofficial routes around the western end of Indonesia and the Indian Ocean.
"The pilot appears to have had knowledge of the operating hours of Sabang and Lhokseumawe radar and that on a weekend night, in times of little international tension the radar systems would not be up and running."
His analysis points to a crash site at 34.5 degrees south, south-west of Western Australia, near the imaginary line known as the "seventh arc." That puts the plane's crash in the southern Indian Ocean.
"The exact position, ground speed and track of MH370 as it crosses the 6th and 7th Arcs and any anomalous WSPR position or progress indicators that reveal the flight path after fuel exhaustion and after the last Inmarsat satellite data will be a helpful indicator for any future underwater search for the MH370 wreckage."
While the location is important, the key to Godfrey's analysis is that it shows the pilot made deliberate alterations to the flight path and altitude – alterations that showed he knew more than enough about the locations of tracking systems and international routes t0 make intentional predetermined moves to avoid them … and eventually crash the plane.
He couldn't avoid the laser tripwires.
Is this enough to convince the Malaysian government to mount another search – after already spending if compelling new evidence was found, after a massive international hunt estimated to have cost around $255 million USD with nothing to show for it?
"The GDTAAA system is a low cost alternative aircraft detection and tracking system, that could help pinpoint the location of MH370 within 18 nautical miles."
Godfrey hopes they do and find MH370 because it will help gain acceptance of GDTAAA by the airline industry.
Families of the passengers hope so too so they can finally have closure.
Tags disappearance Malaysia Flight 370 MH370 mysterious disappearances Science technology unsolved mystery
Mysterious Numbers Station Resumes In North Korea
Brett Tingley July 21, 2016
The Strange Story of the Haunted Devil's School
Brent Swancer December 24, 2020
Warm-Blooded Fish, Cold-Blooded Mammal and World Record Eel
Paul Seaburn May 16, 2015
Underwater Volcano Throws Two Giant Oarfish Onto Land


I just finished modifying my link page. If you are looking for my blogroll, you wont see it in my side bar because I already transferred it in my link page. I created that page 2 months ago and I left "This page is under construction" note but I noticed that it has already comments so I decided to update it.
My link page has a list of MyBlogLog Community members and I posted their profiles and avatars.
MyBlogLog is a yahoo service which provides a venue for bloggers and website owners to communicate. You don't have to sign up if you already have a yahoo account. Just log-in using your yahoo account. This is the account you used when you are chatting thru Yahoo Messenger and your e-mail address as well. Your yahoo account is a central account which you can use for opening all yahoo service such as YM, Ymail, Yahoo 360, Flicker, Geocities, Yahoo Answers, Yahoo Groups, Yahoo Games , MyBlogLog and many more… You can find all yahoo services by going to yahoo homepage and clicking more yahoo services.
I created my first email address in 1999 and internet during that time is very rare. I just have to create an email address because I have nephews in US and we have to communicate. I am using AOL mail and AOL Messenger then. My browser then was Netscape Navigator.
My link page shall contain my blogroll, my most visited links and resources, my community, my portfolio and contacts from different social communities. I just finished uploading my blogroll and MyBlogLog Community members. Other links will be included soon.
If you're a MyBlogLog member and you want your profile to be included in my link page and blogroll, just add me, join my community and add my link in your blogroll and inform me by leaving a comment in my link page. Please remember that you must add me first. I have requests of link exchange but after I added their links in my blog, I visited their blogs and noticed that I was not included in their blogroll so I removed them.
I never noticed it in the past but my fellow bloggers told me about it. Well yes, it's unfair and a one way ticket. Being a blogger, we have to know the basic rules. If we want to have a thriving community, it must be a mutual effort. I make it a point to drop a regular visits and comments to my community members and blogger friends in my blogroll. By doing such, you will see that you are not just adding friends but creating a community as well. When somebody joins your community, we take responsibility to keep in touch with our members. We must send them at least a community message to make them feel that they are important.
My stay in the blogging world was no different when I was a union organizer. We can only create active members and leaders thru constant follow up and meetings. I have requests here to organize a blogger's community here in Tarlac and I am really taking into consideration if I will push it. My resignation from work was triggered when I was included in the hitlist released by NOLCOM in 2004. Most of the names in the list are now gone and tagged as "Victims of Political Killings" I am a mommy of 4 kids and to slowdown from labor struggles is not cowardice in lieu of life's preservation. It really breaks my heart to abandon my members especially now that they are facing many labor union issues. These are the reason why I am still hesitant but maybe I will have to start again.


The Pious Workers of the Immaculate Conception are promoting the cause of beatification of their Founder and awaiting with fervent prayer, along with the local Church, the gift of recognition of the miracle attributed to his intercession.
Our schools are inspired by Marcucci's pedagogy, which sees education as the privileged instrument to improve the individual and the society, in the light of Holy Mary.
The contest is aimed at students of all levels, at regional and national level, to promote the life and work of the educator Francesco Antonio Marcucci, addressing different themes every year.
"Lights of Holy Mary" is the bimonthly magazine of the Congregation of the Pious Workers of the Immaculate Conception, which since 1982 replaces "Apis argumentosa" founded in 1929. It is written for all the communities of the Pious Workers in Italy and in the world, to the clergy of their communities, families of pupils and those who are interested. Each issue includes sections on biblical spirituality, pedagogy, studies on the life of Venerable Francesco Antonio Marcucci and on the various communities.


A Toledo felon was indicted for using a firearm during the robbery of a Jimmy John's sandwich shop last month, said U.S. Attorney Justin E. Herdman, Toledo Police Chief George Kral and Trevor Velinor, Special Agent in Charge of the ATF Columbus Field Division.
Mark Larkett, 29, was indicted on one count each of Hobbs Act robbery, use of a firearm during a crime of violence and being a felon in possession of a firearm.
This case was investigated by the Toledo Police Department and the Bureau of Alcohol, Tobacco, Firearms, and Explosives. The case is being handled by Assistant U.S. Attorney Thomas P. Weldon.


I am more comfortable wearing abaca slippers at home rather than other types of slippers. Hairy and textile slippers get smelly and keeps my feet wet for a long time after bath.
The Bicol Region of the Philippines is known for making different products made from abaca. They make bags, furnitures, home décor, etc. Abaca slipper is one of their best selling items. Every time I have my business trip in Bicol I always get to visit the local stores there to see and buy different products made from abaca. The slippers never went out of my list because wife might get mad at me. It is one of her usual request because she too wears abaca slippers at home and the kids as well.
Bicol's abaca slippers, aside from being inexpensive, are really durable and feet-friendly. It is not hard and not smelly. Wife just exposes it to sunlight for a short time as a sort of maintenance. It does not goes dirty easily and no need to wash. Wife just bumps the two pieces to remove dust and dirt then expose it to sunlight daily for a short time as a sort of maintenance. Abaca slipper is attached to a black rubber material to complete the looks but the appearance has various designs to offer.
Local and foreign tourists like it because it is inexpensive and really great on your feet to wear at home.


BELLE AND SEBASTIAN are to headline three huge outdoor shows in the USA this summer – and are releasing a DVD ahead of their eagerly awaited new album.
The band will play to around 8,000 fans each night at the shows, with support on all three dates coming from Bright Eyes.
fifth album, their debut for new label Rough Trade, will be released on October 13. The new album has been produced by Trevor Horn, famed for his work with Tatu and Frankie Goes To Hollywood. A single will be released in late September.
themselves) and an animated discography.


text:
Q: How to solve the Null Exception Error i'm trying to filter the code and currently met with some NullException error..
can anyone help me out?
I would like to get the code from a URL sources(XML Data)  and filter it out using Spinner
Example:
spinner : "Today","Tomorrow"
Upon select "Today"
it will show out the events for today.
Upon select "Tomorrow"
it will show out the events for tomorrow.
However, I meet with some Null Exception.
Can anyone guide me?
public class AndroidXMLParsingActivity extends ListActivity implements OnItemSelectedListener {

    String[] browseby;
    Date d = new Date();

    String[] dates = { "Today", "Tomorrow", "Next Week",

    };

    ArrayList<String> browse = new ArrayList<String>();
    ArrayList<String> mPostingData = new ArrayList<String>();
    Spinner s1;
    ListView listview;
    CustomAdapter cus;

    // All static variables
    static final String URL = "http://api.eventful.com/rest/events/search?app_key=42t54cX7RbrDFczc&location=singapore";
    // XML node keys
    static final String KEY_EVENT = "event"; // parent node
    static final String KEY_TITLE = "title";
    static final String KEY_START_TIME = "start_time";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

        XMLParser parser = new XMLParser();
        String xml = parser.getXmlFromUrl(URL); // getting XML
        Document doc = parser.getDomElement(xml); // getting DOM element

        NodeList nl = doc.getElementsByTagName(KEY_EVENT);
        // looping through all item nodes <item>
        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            Element e = (Element) nl.item(i);
            // adding each child node to HashMap key => value
            map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));

            map.put(KEY_START_TIME, parser.getValue(e, KEY_START_TIME));

            // adding HashList to ArrayList
            menuItems.add(map);
        }

        // Adding menuItems to ListView
        ListAdapter adapter = new SimpleAdapter(this, menuItems,
                R.layout.list_item, new String[] { KEY_TITLE,KEY_START_TIME }, new int[] {
                        R.id.title,
                        R.id.startTime });

        setListAdapter(adapter);

        // selecting single ListView item
        ListView lv = getListView();

        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // getting values from selected ListItem
                String title = ((TextView) view.findViewById(R.id.title))
                        .getText().toString();

                // Starting new intent
                Intent in = new Intent(getApplicationContext(),
                        SingleMenuItemActivity.class);
                in.putExtra(KEY_TITLE, title);

                startActivity(in);

            }
        });
        listview = (ListView) findViewById(R.id.listView1);
        s1 = (Spinner) findViewById(R.id.spinner1);
        for (int i = 0; i < browseby.length; i++) {
            browse.add(browseby[i]);
        }

        // aa = new
        // ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Category);
        s1.setOnItemSelectedListener(this);
        mPostingData = browse;
        for (int i = 0; i < mPostingData.size(); i++) {
            if (mPostingData.size() > 0)
                Log.i("Datas", mPostingData.get(i));
        }
        cus = new CustomAdapter(this, 0);
        setListAdapter(cus);

        ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, dates);

        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        s1.setAdapter(aa);
        }

    public void onItemSelected(AdapterView<?> parent, View v, int position,
            long id) {
        // listview.setFilterText(Category[position]);
        String Text = s1.getSelectedItem().toString();
        cus.getFilter().filter(Text);
        cus.notifyDataSetChanged();
        }

        public void onNothingSelected(AdapterView<?> parent) {
        // listview.setFilterText("");
        }

        public void onListItemClick(ListView parent, View v, int position, long id) {
        Toast.makeText(this, "You have selected " + mPostingData.get(position),
                Toast.LENGTH_SHORT).show();
        }

        class CustomAdapter extends ArrayAdapter<String> {

        public void setData(ArrayList<String> mPpst) {
            mPostingData = mPpst;// contains class items data.
        }

        @Override
        public Filter getFilter() {
            return new Filter() {
                @Override
                protected void publishResults(CharSequence constraint,
                        FilterResults start_time) {
                    if (start_time != null && start_time.count >= 0) {
                        setData((ArrayList<String>) start_time.values);
                    } else {
                        setData(browse);// set original values
                    }

                    notifyDataSetInvalidated();
                }

                @Override
                protected FilterResults performFiltering(CharSequence constraint) {
                    FilterResults result = new FilterResults();
                    if(constraint=="Today")  {

                        constraint = constraint.toString();
                        CharSequence s  = DateFormat.format("yyyy-MM-dd ", d.getTime());
                        ArrayList<String> foundItems = new ArrayList<String>();
                        if (browse != null) {
                            for (int i = 0; i < browse.size(); i++) {

                                if (browse.get(i).contains(s)){
                                    System.out.println("My datas" + browse.get(i));
                                    foundItems.add(browse.get(i));

                                } else {

                                }
                            }
                        }
                        result.count = foundItems.size();// search results found
                                                            // return count
                        result.values = foundItems;// return values
                    } else {
                        result.count = -1;// no search results found
                    }

                    return result;
                }
            };
        }

        LayoutInflater mInflater;

        public CustomAdapter(Context context, int textViewResourceId) {
            super(context, textViewResourceId);
            // TODO Auto-generated constructor stub
            mInflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return mPostingData.size();
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ViewHolder vh;
            if (convertView == null) {
                vh = new ViewHolder();
                convertView = mInflater.inflate(R.layout.row, null);
                vh.t1 = (TextView) convertView.findViewById(R.id.textView1);

                convertView.setTag(vh);
            } else {
                // Get the ViewHolder back to get fast access to the TextView
                // and the ImageView.
                vh = (ViewHolder) convertView.getTag();
            }
            if (mPostingData.size() > 0)
                vh.t1.setText(mPostingData.get(position));
            return convertView;
        }

        }

        static class ViewHolder {
        TextView t1;
        }
        }

The Null Exception Error is at here :
for (int i = 0; i < browseby.length; i++) {

A: String[] browseby;

Your array is not initialised (has length assigned to zero). You need to initialise it:
browseby = new String[<size>];

But especially in your case try to think about an usage of dynamic array instead static array (your case). You don't know how many items you will have to insert.
Dynamic array is in your case more efficient to use.
Update:

how do I use as dynamic array?

Dynamic array is array with dynamic size (size is automatic increased when you're adding more and more items). So you need just replace yours static browseby array with next List for example:
List<String> browseby = new ArrayList<String>();

A: just put a condition before start a loop :
if(browseby!=null){
  [ your loop ]
}
or
if(browseby==null){

            browse.add("Data  Note Found");

}else{
for (int i = 0; i < browseby.length; i++) {
            browse.add(browseby[i]);
        }
}

A: Please check your code  browseby is null because you are not initializing browseby  the in clas. Initialize the browseby before use.

redpajama_set_name: RedPajamaStackExchange


text:
class Printer(object):

    def __init__(self, owning_particle):
        super(Printer, self).__init__()
        self.owning_particle = owning_particle

    def collide(self, another_particle):
        print str(another_particle.contents)

    def __str__(self):
        return 'Printer'

class Reader(object):
    """docstring for Reader"""
    def __init__(self, arg):
        super(Reader, self).__init__()
        self.arg = arg

class FileReader(object):
    """docstring for FileReader"""
    def __init__(self, arg):
        super(FileReader, self).__init__()
        self.arg = arg

class FileWriter(object):
    """docstring for FileWritter"""
    def __init__(self, arg):
        super(FileWritter, self).__init__()
        self.arg = arg

class SocketReader(object):
    """docstring for SocketReader"""
    def __init__(self, arg):
        super(SocketReader, self).__init__()
        self.arg = arg

class SocketWriter(object):
    """docstring for SocketWriter"""
    def __init__(self, arg):
        super(SocketWriter, self).__init__()
        self.arg = arg


Safeguard any surface, be it ceramic, wood or glass with the 3M™ Scotch® Felt Pads. These felt pads are perfect for protecting your desktop, tables, cabinets, counters and more from scratches. Simply stick these self-adhesive pads underneath lamps, vases and other tabletop accessories, and move them around with ease without causing scratches or nicks.
Scotch® Self-Stick Felt Pads, Green is rated 4.5 out of 5 by 2.
Rated 4 out of 5 by crumble from so far so good These are relatively thin material but are sticking well to the legs of our dining chairs. Not sure how long they will last but so far so good.


text:
Home » Action » Shadow of Death: Dark Knight – Stickman Fighting 1.97.0.0 (MOD, Unlimited Money)
Shadow of Death: Dark Knight – Stickman Fighting 1.97.0.0 (MOD, Unlimited Money)
Bravestars Games
Requires Android:
Introduce in the game
Attractive and detailed plot
Shadow of Death is a role-playing action game that is extremely attractive. It is a product of the publisher Bravestars Games. For a long time, ARPG role-playing action games always give players the feeling that no other game has. Currently, the game is being offered for free for players to download and experience. Highly appreciated for its storyline design and minimalistic graphics, Shadow of Death has attracted millions of players right after launch. Up to the present time, Shadow of Death has had more than 10 million downloads on Google Play.
Shadow of Death takes the player to the City of Light, which is the land of light that belongs to Aurora. This land was blessed by the gods, also the place King Luther chose to build and rule his kingdom. To preserve and develop ancient knowledge including Magic, Art, Alchemy, Astrology, Medicine, … the king established a royal society called The eyes of Oracle. This knowledge helped King Luther create a mighty kingdom, and it is one of the most beautiful periods in the history of Aurora. Until King Luther XV reigned, for a seemingly good reason, that he wanted to return his beloved sister from the dead. To do that, he studied Magic, Medicine, and Alchemy. King Luther XV created an epidemic that only he could cure, he used it to collect corpses for his purpose.
One day, the place where King Luther XV's research exploded. The spells from here were released outside, creating strange monsters and the disease which had no cure. The only person who could cure the disease was King Luther XV, but he also disappeared and no one could find him. City of Light and Aurora are facing the darkest period of history.
In that dark period, Max – who was a royal ruler for King Luther XIV, returned from the battle with outside forces and participated in King Luther XV's experiment. 20 years after the explosion, Max wakes up in a strange and desolate place, with discrete memory pieces. Max became strangely healthy and more supple. And Max's journey begins, he sets out to find the answers to what happens to himself and Aurora.
In Shadow of Death, the player will lead Max to find the answer. The only way to survive is to kill the monsters on the road, collect weapons and armor, practice skills, increase strength, and confront the dangers ahead.
Join Shadow of Death, players will control the character to destroy monsters in the forest. Monsters are very crowded and dangerous, they spawn very quickly. They are ready to attack you at any time. Be careful, because a little listless, monsters will take your life. Not only that, but the monsters also have a leader, they are much stronger than normal monsters, and can deal huge amounts of damage. When confronted with these leaders, you need to calm down to avoid attacks, choose the right opportunity to fight back. In this battle, you must fight to the end if you do not want to choose death.
Shadow of Death has a very simple control system. On the left of the screen is a Joystick used to control the character. On the right is the character skill system. Try to destroy many monsters to level up, through which you will be allowed to unlock and upgrade your skillset. Besides the skills of the character is very important, it will help you combine the skills to create a powerful combo. Shadow of Death has more than 30 maps with hundreds of challenges waiting for you ahead. The two main modes of the game are Challenger and Adventure, and four difficulty levels that increase gradually from Normal, Hard, Hell, and Insane.
Shadow of Death has a very diverse equipment system. In addition to the skill of the player, weapons are very important means in the process of destroying all monsters. Each weapon gives Shadow different powers. Many weapons and dozens of rare equipment are waiting for you to conquer. Weapons give you attack power, and armor gives you resistance. In the game, armor is divided into 4 types including Common, Damaged, Legendary, Magic, and Rare. Each type of armor offers a completely different strength and resistance, helping you create a unique style and style of fighting for each individual. Besides killing a Boss also gives you a very high chance of owning rare equipment.
Shadow of Death has a very nice graphics system. Although the game only has 2D graphics, it can be compared to a series of other 3D games. Besides the world of Shadow of Death is a mixture of two contrasting colors, light and darkness, closely follow the story. The skill effects are meticulously elaborated and colorful, which will make you feel extremely excited during the game. Besides, the sound system is very vibrant, making the battles more intense and dramatic than ever.
If you're looking for a fast-paced action game, you should not miss the Shadow of Death game. With compelling gameplay, beautiful graphics, and vibrant sound, the game will surely bring you great experiences. Besides, the combat phases are dramatic but not too gore and scary. Download Shadow of Death Mod today to help Max find Aurora's light!
Download Shadow of Death: Dark Knight – Stickman Fighting 1.97.0.0 (MOD, Unlimited Money) for android
Download Shadow of Death: Dark Knight - Stickman Fighting for android (Version 1.97.0.0)
APK (MOD, Unlimited Money)
Crossfire: Survival Zombie Shooter. FPS Strike 1.0.7 (MOD, Free Shopping)
Crossfire: Survival Shooter is a difficult online first-person action RPG. An actual game with MMO features set in a fictional area on the border between Russia and Europe. The city of Solensk is in turmoil caused by the Virus war. This was once a bustling city, but now it's overrun by competing zombie gangs. There […]
Modern Combat 4: zero hour 1.2.3e (MOD Unlimited Money)
The # 1 action FPS game is back on smartphones. This is a new chapter to push the boundaries of mobile gaming even further. In the context of a nuclear war, the only chance to avoid global destruction lies in the hands of some elite soldiers. They must track down and rescue world leaders from […]
Block Strike 6.8.1 Download for android
Inspired by Minecraft, this game features a pixelated style on the interface. This is a game that is simple but very interesting. The main goal is to shoot down all enemies, however, this basic goal is not easy to accomplish. Because along the way, you will meet highly skilled players with many different skills. How […]
Among Us 2020.11.17 b128 (MOD, Unlocked)
This is an extremely addictive survival game, where players are dropped into an alien spaceship, a sky headquarters or a planet base. Each player is assigned a unique role of a "crew" and an "imposter". How to play Among Us? In the game, if you play the role of "Impostor", you must vote to eliminate […]
Ultimate Custom Night 1.0.3 (MOD, Unlocked)
Welcome to the ultimate FNAF mashup! – where you will once again be trapped alone in the office, and fend off with animated killers. There are 50 cartoon characters that you can choose from in seven Five Nights at Freddy's games. In particular, the options for customization are almost endless in the game. Mix and […]
Rope Hero: Vice Town 4.8.1 (MOD, Unlimited Money)
This is a game with an extremely new formality, combining two genres that are very attractive, role-playing games and action games. The game is labeled 16+, so it promises to bring you a relatively realistic and sharp game color, combined with strong and fiery fighting scenes on the street. Rope Hero was built by the […]
MORTAL KOMBAT: The Ultimate Fighting Game! 3.1.0 (MOD, God Mode)
Surely the 8x and 9x generations still haven't forgotten the countervailing game – a super blockbuster at a time, called Mortal Kombat, also known as the Black Dragon game? First released in 1990, it is always at the top of the market. The publisher Warner Bros International Enterprises always refine and improve the image every […]
PIXEL'S UNKNOWN BATTLE GROUND 1.53.00 (MOD, Unlimited Money)
Previously, this game was called BattleGround Royale. This is a popular action game on mobile devices. In this game, the player's goal is to become the last survivor in an intense battle. In it, players will have to face off against other players in a giant stage full of weapons. The important issue is that […]
Warpath MOD APK+OBB 1.02.01
This is a strategy game first published by Lilith Games. And now Wonder Games brings this game closer to you. With the best platform app player, you can play this Android game on your PC or Mac. In the game, the demon manifests as a powerful force controlling the world. Their obsessive training rituals and […]
Archero 2.6.4 (MOD, God Mode)
Archero is an arcade action game developed by Habby. This game has been developed on Android and iOS devices. Currently, a lot of people love this game. Join the game, players will play the role of a warrior. Players will fight with the sharp archer named Brave. In the game, you will perform combat missions […]
4 ( 12 ratings ) 5
The Sims™ Mobile 25.0.2.108678 (MOD, Unlimited Money)
RollerCoaster Tycoon Touch 3.15.4 (MOD, Unlimited Money)
Metal Soldiers 2 v2.80 (MOD, Unlimited Money)
Go Knots 3D 10.9.0 (MOD, Unlimited Coins)
Nonstop Knight 2 2.2.5 (MOD, Unlimited Energy)
Modern Warplanes 1.16.1 (MOD, Unlimited Rockets)
Zombie Castaways 4.21.2 (MOD, Unlimited Money)
Rail Rush 1.9.18 (MOD, Unlimited Money)
Badminton League 5.00.5009.5 (MOD, Unlimited Coins)
Waze – GPS, Maps and Traffic 4.69.0.3 APK Download
MX Player Pro APK 1.20.9 [Patched/AC3/DTS]
OGWhatsApp 8.90 APK Download (Official)
Install APK with OBB Data on Android
OGYouTube APK Download Latest Version
Download BOMBitUP APK for Android
Lucky Patcher APK 9.1.4 Download
Download Snaptube APK for Android
MLiveU : Hot Live Show 2.3.5.5 (MOD, Full Unlocked)
Funimate: Video Editor & Music Clip Star Effects 9.0 (MOD, No WaterMark/FREE Login)
pinterest facebook twitter youtube


Today, we like to provide a free business card template for lawyers or attorneys. You can also use this for personal and business purpose. It is a high-resolution business card PSD with fully layered and print ready. We use black suit with red tie graphics for front side design to represent your professionalism and for backside we use only logo for clean look. In this free legal business card, you can fill some important details about you like your name, your address, phone number, email and website url in front side. Feel free to download this lawyer business card; it is 100% free for personal and commercial.


and the price for them, you just couldnt pass em up! Look at things differently. In turn, you tap into a host of amazing benefits: more creativity, faster learning, better emotional health, more. Meditations well-proven ability to generate a "neuron fortune" has massive implications big benefits. The benefits are staggering. With so much to see and do and shop, it felt like there was always something new! It is often said that if you keep on doing the same things, then you will keep on receiving the same things. From urge surfing, to masterfully dealing with stress, to uprooting deep seated emotions, to giving us a natural high, to unplugging naturally, here we discuss why meditation eradicates addiction. From transforming psychology, to fully rewiring thought, to massively upgrading physiology, here we discuss why meditation dominates depression.
Ones willingness to learn new things gauges ones ability to accept and adapt to change. At the points when you feel tired or bored, and, and you feel that your creativity is running low, look at things in a new perspective. Lifestyle, hawaii Diary with Billabong, oahu, Hawaii January 10, 2018, share This Post. Leave a comment below to see what else youd like to see more. Our inherent nature to seek answers or to learn new things does not disappear over age. Creativity is often tagged together with originality.
I think one of my best and most favorite purchases Ive made this year were my bags from Bali! There are various ways to enrich ones imagination how one can enrich imagination. Here, we show you the vast benefits waiting under the surface, and how meditation is the best way to dive in, explore, and harness your deep mind. It is considered to be the creative faculty of the mind that helps a person in process oriented activities, such as thinking, memorizing, remembering, or opinion forming.


The Sünner brewery and distillery was founded in 1830 by Christian Sünner in Köln (Cologne) and is the oldest existing brewery in the city. Kölsch- is a beer brewed exclusively by the breweries in Köln. The beer style has been around for several centuries, but was never called Kölsch until the Sünner brewery labeled it as such in 1906, and hence, claim invention of the style.


text:
CLFS Reform
Home|CLFS Reform
Return to the Protecting Access to Medicare page.
Signed into law on April 1, 2014, the Protecting Access to Medicare Act of 2014 (PAMA) includes the most extensive reform of the Medicare Clinical Laboratory Fee Schedule (CLFS) since it was established in 1984. Section 216 of PAMA creates a new Section 1834A of the Social Security Act, which contains many of the CLFS reforms. Starting on January 1, 2018, most rates on the CLFS will be derived from private payor rates for laboratory services. PAMA also designates certain tests as "advanced diagnostic laboratory tests" (ADLTs); includes provisions affecting coding, coverage and oversight of the CLFS; and makes some changes to CMS's review of mis-valued codes in the Physician Fee Schedule (PFS) affecting anatomic pathology services provided by laboratories.
Highlights of the CLFS reform provisions included in PAMA are as follows:
Medicare Rates Derived from Private Payor Rates – Beginning in 2017, "applicable laboratories" will report to CMS virtually all private payor rates and test volumes for all laboratory services. An "applicable laboratory" is one that receives a majority of its Medicare revenue under the CLFS, the Physician Fee Schedule, or the newly created Section 1834A of the Social Security Act. From the rates reported by applicable laboratories, CMS will determine the weighted median prices for tests on the CLFS, and these weighted medians will be the Medicare rates that are effective beginning on January 1, 2018. For most tests, private payor rate and volume reporting and Medicare rate development will occur every three years. Rates on the CLFS no longer will be subject to geographic adjustments, budget neutrality adjustments, annual updates or "other adjustments."
Exemption from Reporting for Certain Laboratories – PAMA allows CMS to create exemptions from reporting for laboratories with either low test volume or low test expenditures or both.
Penalties for Failure to Report – If a laboratory fails to report its private market rates, CMS may apply a civil monetary penalty up to $10,000 per day for each failure to report.
Phase-In of New Rates – Any reduction in the payment rate for an individual laboratory test on CLFS that exceeds 10% will be phased in during the first six years of the new fee schedule from 2018 through 2023. The year-to-year payment reductions are limited as follows:
 2018: Not more than a 10% from the prior year
Skilled Nursing and Home Health Sample Collection Adjustment – For laboratory services provided to skilled nursing facilities and home health sites, CMS will increase the draw fee by $2.00 starting in 2018.
Advanced Diagnostic Laboratory Test (ADLT) Defined – As defined by PAMA, an ADLT is a laboratory service that is offered and furnished by only the developing lab and that meets one of the following criteria:
"The test is an analysis of multiple biomarkers of DNA, RNA, or proteins combined in a unique algorithm to yield a single patient specific result," OR
"The test is cleared or approved by the FDA," OR
 "Meets other similar criteria established by [CMS]."
ADLT Pricing – For a new ADLT, the price for the "initial period of three quarters" will be the "list charge" or "the publicly-available rate on the first day [on] which the test is available for purchase by a private payor." By the end of the second quarter, the laboratory must begin reporting the private market rates for the ADLT. After the initial period of three quarters, the rate will be the weighted median of the reported private payor rates. If the initial list charge is greater than 130% of the eventual weighted median rate, CMS shall recoup the difference. The laboratory will report private market rates for the ADLT annually thereafter, allowing CMS to reset the price annually (as compared to tests that are not ADLTs, which will have their rates and volumes reported and adjusted, if necessary every three years).
Payment for New Non-ADLT Tests – For new tests that are not ADLTs, CMS will establish prices through existing cross-walking or gapfilling methods. Cross-walkingis used if it is determined that a new test is comparable to an existing test, multiple existing test codes, or a portion of an existing test code. When gapfilling new tests that are not ADLTs, CMS may consider: charges for the test and routine discounts to charges; resources required to perform the test; payment amounts determined by other payers; charges, payment amounts, and resources required for other tests that may be comparable or otherwise relevant; input and recommendations the new clinical laboratory payment advisory committee (discussed below); or other criteria CMS deems appropriate.
Coding – CMS will be required to establish temporary Healthcare Common Procedure Coding System (HCPCS) codes for new ADLTs. The temporary codes will be effective for two years, unless extended by the agency. CMS also must establish codes for existing ADLTs.
Unique Identifiers for Certain Tests – A laboratory or manufacturer of a test kit may request a unique identifier for an ADLT or a test cleared or approved by the FDA for purposes of tracking and monitoring the laboratory service. The unique identifier may be a HCPCS code or other modifier.
Clinical Laboratory Payment Advisory Panel – By January 1, 2015, CMS must establish an expert advisory panel, subject to the requirements of the Federal Advisory Committee Act, to provide input to the agency on the establishment of payment rates for new tests, the factors to determine coverage and payment for new tests, and other matters. The panel is to include a variety of experts in areas such as molecular pathology, researchers, laboratory economists, and those with expertise in laboratories and laboratory tests.
Coverage of Laboratory Tests – After January 1, 2015, a Medicare Administrative Contractor (MAC) may issue coverage policies for laboratory services only in accordance with the process for making Local Coverage Determinations (LCDs), including the appeals and review process. This does not affect National Coverage Decisions (NCDs). Additionally, CMS may designate one to four MACs to establish coverage polices or to establish coverage policies and process claims for payment for clinical laboratory services.
GAO and OIG studies – PAMA requires the Government Accountability Office (GAO) to conduct an analysis by October 1, 2018 of the implementation and impact of the CLFS reform provisions described above. PAMA also directs the HHS Office of Inspector General (OIG) to conduct an annual analysis of the top 25 laboratory tests and expenditures under Medicare and other appropriate analyses of the CLFS.
Information Collection and Misvalued Codes on the Physician Fee Schedule
Information Collection – PAMA gives CMS the authority to collect information on direct and indirect resources for furnishing services on the PFS, including time, practice expense inputs, and overhead.
Misvalued Codes – PAMA expands existing criteria for examining PFS codes as misvalued to include: codes that account for the majority of spending under the PFS, codes for services that have experienced a substantial hospital length of stay or procedure time, codes for which there may change in the typical site of service since the code was last valued, codes for which there are anomalies in relative values within a family of codes, codes for services where there may be efficiencies when a service is furnished at the same time as other services, codes with high Practice Expense (PE) Relative Value Units (RVUs), and codes with high cost supplies. Significant reductions of 20% or more (as compared to the previous year) would be phased in over a two-year period. PAMA also gives CMS the authority to "smooth" RVUs within groups of services.
Email: info@acla.com
For Media Inquires: klancaster@acla.com
The countdown is on for ACLA's Annual Meeting #ACLAMtg2023 on March 1, 2023. Hear from leading clinical laboratory,… https://t.co/NXcf6zlTTt3 days ago
#DYK? Regular cervical cancer screening through clinical laboratories reduces patient risk of developing Stage 1 ce… https://t.co/R4ksKnq4Bh3 days ago
ACLA 2022 Dues Structure
ACLA Associate Membership


Breathing perfect because of its 100% natural materials.
Perfect for the running, hunt, working outdoors or want something nice under your feet!
NEW: 0.4-0.6 mm thickness and extra seam!
Swedish hand-made insoles for shoes with warm and insulating properties. The material used for these soles are from alpaca animals. They are completely free of chemicals, dyes and synthetic fibers.
Material: 100% handtovade alpaca fibers.
occur in various color shades, because the wool is a blend from different colors alpacas.


Loved by many; found by few. An excursion from the dock into the countryside to a truffle farm is a great experience. The European tradition of truffle hunting is an active adventure for those wanting to find the elusive gourmet fungus, which are found in the roots of these types of trees: beech, poplar, oak, birch, hornbeam, hazel, and pine.


All it took was an afternoon of margaritas for us to muster the confidence to record. Enjoy!
The youth are waiting, day after day. They wait for their time; as do the workers, even the old. They all wait, those who are discontented and those who reflect. They are waiting for a force to arise, something they will be part of; a new kind of international that will not make the same mistakes as the previous ones. They wait for a chance to get rid of the past once and for all – for something new to begin.


text:
Alexandre Michel Gérard Desplat, född 23 augusti 1961 i Paris, Frankrike, är en fransk kompositör av filmmusik. Desplat har vunnit två Oscars för Bästa filmmusik  i The Grand Budapest Hotel och The Shape of Water.

Filmografi (urval)

 (TV-film)

 (TV-film)

Priser och nomineringar

Externa länkar
 Officiell webbplats
 Alexandre Desplat på Internet Movie Database
 Alexandre Desplat på Allmusic

Födda 1961
Män
Musiker från Paris
Franska filmmusikkompositörer
Levande personer
Grammy Award-vinnare
Oscar för bästa filmmusik

redpajama_set_name: RedPajamaWikipedia


One of the deciding factors in my move to the Micro 4/3 system, after several slightly unsatisfactory years with Sony, was Olympus' impending Pro range of lenses. Having bought my E-M1 with the first of the breed – the 12-40mm f2.8 Pro – and been delighted with it, I'd pre-ordered the 40-150mm f2.8 Pro plus matching 1.4x teleconverter back in September. As it arrived just as I was on the way to the airport for a trip to Vienna last week, that's where I've shot most of these first-look tests. So this is the first of a two-part review of this lens, the second part, here, concentrating on its abilities when used with the E-M1's focus tracking.
Unboxing the beast produces what is, by M4/3 standards, a largeish lump of black metal and plastic – it weighs in at 872g bare (including the tripod mount), and 1058g including the lens hood, filter and lens cap . It is however a good deal smaller than the old 50-200mm and simply reeks of quality in design and build. That impression was reinforced as soon as I tried the controls – the zoom ring is the smoothest I've ever used, like tobogganing through molten butter. This is a good thing. The smaller focus ring has the same clutch mechanism for manual focussing as have several other Olympus lenses – you just pull back the focus ring to switch into full manual mode. A small piece of design genius. There is also a programmable function button on the side of the lens, which can be very useful for limiting autofocus range at high telephoto lengths.
Attach it to the E-M1 and the ensemble feels well balanced and compact, if solidly dense in construction, akin to holding a sculpted lump of neutron star. I do recommend use of the HLD-7 battery grip with this lens, as it balances camera and lens nicely. The E-M1, HLD-7 and lens (with tripod mount, strap and lens hood, filter and lens cap) comes in at 1856g, with a zoom range equivalence of 80-300mm at a constant f2.8. For comparison, the entire outfit is only a couple of hundred grammes heavier than (for example) a Nikon 70-200mm f2.8 G lens on it's own. And that makes a big difference over a full day's walking and shooting.
The lens hood is quite bulky (especially in diameter), but is beautifully simple to use, once you've worked out that a slight anticlockwise (when using the camera) pressure is needed to unlock the sliding mechanism. So much easier than fiddling with a traditional reversible hood and a real convenience feature. The only downside is that slight increase in weight and bulk.
The tripod mount ring detaches very easily and, because I no longer carry a monopod thanks to the E-M1's excellent in-body stabilisation (IBIS), that's just what I often do, and save another 110g.
Build quality and mechanical handling are exemplary, then. It has rained or snowed heavily pretty much continually since I got the lens and all I can say so far about the weatherproofing is that it works – no surprise there as my earlier Olympii have been through tropical downpours and sea immersion with absolutely no adverse effects.
Here then is a range of images culled from: walking around in Vienna, all handheld and mostly in decidedly dim light; interiors ditto and, finally, some tripod-mounted shots from the bottom of the garden, grabbed hastily between December snow storms. To illustrate the end result, the RAW files of these images have been lightly processed in Lightroom: levels, contrast and white balance set, a little saturation and minor sharpening. Remember too that Olympus lenses write their correction data into the RAW files, so any mainstream RAW converter automatically applies these without requiring further post-processing.
First impressions (mine, at least) are of the sort of 'snap' and sharpness that you'd usually expect from a high-quality prime lens, not a telephoto zoom. The images are of decent contrast but manage that without losing detail or mid-tones – a very nicely balanced result, with the out-of-camera RAW images requiring less post-processing than those from the earlier 4/3 zooms. Sharpness right across the image circle appears exemplary (something borne out by the more objective tests that are starting to appear) and this seems to be a lens that largely doesn't care if you shoot short or long, wide open or stopped down. In summary: jaw-droppingly good. Distortion and chromatic aberration are largely noticeable by their absence and vignetting just doesn't seem to be an issue. I've seen a couple of reports of contre jour flare, but whether this is worse (or indeed better) than any other zoom of its class will be tested if, as and when the sun puts in an appearance.
I haven't had much chance to play with bokeh yet but at first glance it looks to be smooth and without glaring artefacts: just what was ordered and expected.
Power up, point at subject, press the button. Did it work? This is the point at which I did a double-take: it focussed so quickly and quietly that I didn't realise it had done it – I was busy checking that I hadn't inadvertently switched it to manual focus. So I tried again. And again. And, each time, focus was a no-brainer – the time it took was within the limits of my ability to check the scene before shooting, so simply not an issue.
A full macro (70cm or so)-to-infinity transition took about half a second (subjectively) in good light. In low light levels the lens was commendably free of focus hunting and this, combined with the E-M1's 5-axis IBIS, meant that I was immediately confident shooting hand-held at improbably low shutter speeds in the dim galleries of Vienna's Kunsthistorische Museum.
It's also worth noting that, for a long-range zoom, close focus is commendably, ah, close: the shot below was of a vessel about 20cm in height, shot from about 70-80cm.
Continuous and tracking focus is a matter for another day and deserves some dedicated testing.
Having spent decades learning to shoot with zoom lenses well stopped down, my move to Olympus in 2004 taught me that 4/3 lenses could be shot wide open, with relatively small gains in quality as you stopped down – where I'd have shot on Canon at f5.6-f8 for maximum image quality, I found I was using the Olympus 4/3 zooms at f4-f5 or thereabouts for best results.
Of course you do need to shoot at a wider aperture on a smaller sensor to get an equivalently shallow depth of field, so the fact that the Olympus lenses were sharper closer to their maximum aperture made my adjustment largely painless, not to mention the manifest benefit of faster lenses in the Scottish murk. My time thereafter with Sony's E-Mount zooms then forced me to relearn the need to stop down for best quality – their being relatively slow anyway didn't help either, and remains one of my major frustrations with that range.
So, now it's back to Olympus, only more so: yes, this new zoom' s sharpness does improve slightly as you stop down, but it's from such a high level that shooting wide open is not just possible, but rapidly becomes the default. The two images below show the same scene at f2.8 and f8.0 (clicking on the images will give you full-sized JPEGs exported at 70% quality from the RAW originals. These images are unprocessed apart from checking levels and white balance – no sharpening or noise reduction was applied.
My, haven't things moved on? My first experience with a teleconverter was a Vivitar 2x "Matched Multipler" for their 70-150mm zoom in the late 70s: this bulky object turned an otherwise acceptable lens into something that could nearly (but not quite) outperform the bottom of a Coke bottle. Here, the 40-150's dedicated 1.4x (losing just a single stop of light) converter is a tiny, pocketable pancake of a thing that works with this lens and the forthcoming 300mm f4 (And, yes, I'll happily take a 840mm equivalent f5.6 supertele that doesn't break either back or bank). Just a couple of images then from the 'Full Monty' combination at 420mm equivalent, the first handheld with IBIS and the second tripod-mounted.
Absolute quality appears excellent, again wide open and clicking on the image below will give you 100% crops from this combination, the basic lens and the Olympus 75mm f1.8, all normalised to f8.
Here's a challenge: this is one of my favourite ever lenses and is the sharpest I have ever owned. So if the 40-150mm gets anywhere near this, it'll be a stunning achievement. Three images then, at 75mm (or the nearest equivalent that the zoom will display), from the 75mm, the 40-150mm and the 40-150mm+MC-14 combo, all at f8. Allowing for a little distant wind here, and looking at centre and edge detail in the vegetation, I'd make the unsurprising margin call that the 75mm has the edge, followed by the 40-150mm, with the 40-150mm+teleconverter another tad behind. The surprise is that the result is very, very close.
When I bought in to M4/3, I took a punt (largely on the strength of their previous offerings and the quality of the first Pro zoom – the 12-40mm f2.8) that I'd end up with a compact, high-quality camera system that was up to the rigours of all-weather expedition work and which produced top quality images from stellar lenses. The 40-150mm f2.8, their second offering in the Pro line-up, exceeds even that expectation. There are two reasons to use a lens: you choose it when you need a particular focal length or (and much rarer) you mount it and go forth to look for opportunities to use it, purely for the pleasure of doing so. The 40-150mm is rapidly becoming one of the latter. I now can't wait for the release of the remaining Pro lenses – the 7-14mm f2.8 and 300mm f4 – at that point I'll be able to finally retire my wonderful (and wonderfully overweight) 4/3 7-14mm blunderbuss and skip lithely into the sunset carrying a full Micro 4/3-based system. Bliss.
This entry was posted in Gear.