text:
/**
 * @file lv_style.h
 *
 */

#ifndef LV_STYLE_H
#define LV_STYLE_H

#ifdef __cplusplus
extern "C" {
#endif

/*********************
 *      INCLUDES
 *********************/
#include <stdbool.h>
#include "../lv_font/lv_font.h"
#include "../lv_misc/lv_color.h"
#include "../lv_misc/lv_area.h"
#include "../lv_misc/lv_anim.h"
#include "../lv_misc/lv_types.h"
#include "../lv_misc/lv_debug.h"
#include "../lv_draw/lv_draw_blend.h"

/*********************
 *      DEFINES
 *********************/

#define LV_RADIUS_CIRCLE (0x7FFF) /**< A very big radius to always draw as circle*/
LV_EXPORT_CONST_INT(LV_RADIUS_CIRCLE);

#define LV_DEBUG_STYLE_SENTINEL_VALUE      0x2288AAEE
#define LV_DEBUG_STYLE_LIST_SENTINEL_VALUE 0x9977CCBB

#define LV_STYLE_PROP_INIT(name, group, id, attr)  name = (((group << 4) + id) | ((attr) << 8))

#define LV_STYLE_ID_MASK 0x00FF

#define LV_STYLE_ATTR_NONE          0
#define LV_STYLE_ATTR_INHERIT       (1 << 7)

#define _LV_STYLE_CLOSING_PROP     0xFF

#define LV_STYLE_TRANS_NUM_MAX      6

#define LV_STYLE_PROP_ALL 0xFF

/**********************
 *      TYPEDEFS
 **********************/

/*Border types (Use 'OR'ed values)*/
enum {
    LV_BORDER_SIDE_NONE     = 0x00,
    LV_BORDER_SIDE_BOTTOM   = 0x01,
    LV_BORDER_SIDE_TOP      = 0x02,
    LV_BORDER_SIDE_LEFT     = 0x04,
    LV_BORDER_SIDE_RIGHT    = 0x08,
    LV_BORDER_SIDE_FULL     = 0x0F,
    LV_BORDER_SIDE_INTERNAL = 0x10, /**< FOR matrix-like objects (e.g. Button matrix)*/
    _LV_BORDER_SIDE_LAST
};
typedef uint8_t lv_border_side_t;

enum {
    LV_GRAD_DIR_NONE,
    LV_GRAD_DIR_VER,
    LV_GRAD_DIR_HOR,
    _LV_GRAD_DIR_LAST
};

typedef uint8_t lv_grad_dir_t;

/*Text decorations (Use 'OR'ed values)*/
enum {
    LV_TEXT_DECOR_NONE          = 0x00,
    LV_TEXT_DECOR_UNDERLINE     = 0x01,
    LV_TEXT_DECOR_STRIKETHROUGH = 0x02,
    _LV_TEXT_DECOR_LAST
};

typedef uint8_t lv_text_decor_t;

typedef uint8_t lv_style_attr_t;

#define LV_STYLE_ATTR_GET_INHERIT(f) ((f)&0x80)
#define LV_STYLE_ATTR_GET_STATE(f) ((f)&0x7F)

#define LV_STYLE_ID_VALUE 0x0   /*max 9 pcs*/
#define LV_STYLE_ID_COLOR 0x9   /*max 3 pcs*/
#define LV_STYLE_ID_OPA   0xC   /*max 2 pcs*/
#define LV_STYLE_ID_PTR   0xE   /*max 2 pcs*/

enum {
    /*Skip 0th property*/
    LV_STYLE_PROP_INIT(LV_STYLE_RADIUS,             0x0, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_CLIP_CORNER,        0x0, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SIZE,               0x0, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSFORM_WIDTH,    0x0, LV_STYLE_ID_VALUE + 4, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSFORM_HEIGHT,   0x0, LV_STYLE_ID_VALUE + 5, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSFORM_ANGLE,    0x0, LV_STYLE_ID_VALUE + 6, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSFORM_ZOOM,     0x0, LV_STYLE_ID_VALUE + 7, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_OPA_SCALE,          0x0, LV_STYLE_ID_OPA + 0,   LV_STYLE_ATTR_INHERIT),

    LV_STYLE_PROP_INIT(LV_STYLE_PAD_TOP,            0x1, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PAD_BOTTOM,         0x1, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PAD_LEFT,           0x1, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PAD_RIGHT,          0x1, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PAD_INNER,          0x1, LV_STYLE_ID_VALUE + 4, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_MARGIN_TOP,         0x1, LV_STYLE_ID_VALUE + 5, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_MARGIN_BOTTOM,      0x1, LV_STYLE_ID_VALUE + 6, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_MARGIN_LEFT,        0x1, LV_STYLE_ID_VALUE + 7, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_MARGIN_RIGHT,       0x1, LV_STYLE_ID_VALUE + 8, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_BG_BLEND_MODE,      0x2, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BG_MAIN_STOP,       0x2, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BG_GRAD_STOP,       0x2, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BG_GRAD_DIR,        0x2, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BG_COLOR,           0x2, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BG_GRAD_COLOR,      0x2, LV_STYLE_ID_COLOR + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BG_OPA,             0x2, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_BORDER_WIDTH,       0x3, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BORDER_SIDE,        0x3, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BORDER_BLEND_MODE,  0x3, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BORDER_POST,        0x3, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BORDER_COLOR,       0x3, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_BORDER_OPA,         0x3, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_OUTLINE_WIDTH,       0x4, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_OUTLINE_PAD,         0x4, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_OUTLINE_BLEND_MODE,  0x4, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_OUTLINE_COLOR,       0x4, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_OUTLINE_OPA,         0x4, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_SHADOW_WIDTH,       0x5, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SHADOW_OFS_X,       0x5, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SHADOW_OFS_Y,       0x5, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SHADOW_SPREAD,      0x5, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SHADOW_BLEND_MODE,  0x5, LV_STYLE_ID_VALUE + 4, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SHADOW_COLOR,       0x5, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SHADOW_OPA,         0x5, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_PATTERN_BLEND_MODE,    0x6, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PATTERN_REPEAT,        0x6, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PATTERN_RECOLOR,       0x6, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PATTERN_OPA,           0x6, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PATTERN_RECOLOR_OPA,   0x6, LV_STYLE_ID_OPA   + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_PATTERN_IMAGE,         0x6, LV_STYLE_ID_PTR   + 0, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_LETTER_SPACE,  0x7, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_LINE_SPACE,    0x7, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_BLEND_MODE,    0x7, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_OFS_X,         0x7, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_OFS_Y,         0x7, LV_STYLE_ID_VALUE + 4, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_ALIGN,         0x7, LV_STYLE_ID_VALUE + 5, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_COLOR,         0x7, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_OPA,           0x7, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_FONT,          0x7, LV_STYLE_ID_PTR   + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_VALUE_STR,           0x7, LV_STYLE_ID_PTR   + 1, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_LETTER_SPACE,   0x8, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_LINE_SPACE,     0x8, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_DECOR,          0x8, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_BLEND_MODE,     0x8, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_COLOR,          0x8, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_SEL_COLOR,      0x8, LV_STYLE_ID_COLOR + 1, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_SEL_BG_COLOR,   0x8, LV_STYLE_ID_COLOR + 2, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_OPA,            0x8, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_TEXT_FONT,           0x8, LV_STYLE_ID_PTR   + 0, LV_STYLE_ATTR_INHERIT),

    LV_STYLE_PROP_INIT(LV_STYLE_LINE_WIDTH,         0x9, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_LINE_BLEND_MODE,    0x9, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_LINE_DASH_WIDTH,    0x9, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_LINE_DASH_GAP,      0x9, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_LINE_ROUNDED,       0x9, LV_STYLE_ID_VALUE + 4, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_LINE_COLOR,         0x9, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_LINE_OPA,           0x9, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_IMAGE_BLEND_MODE,   0xA, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_IMAGE_RECOLOR,      0xA, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_IMAGE_OPA,          0xA, LV_STYLE_ID_OPA   + 0, LV_STYLE_ATTR_INHERIT),
    LV_STYLE_PROP_INIT(LV_STYLE_IMAGE_RECOLOR_OPA,  0xA, LV_STYLE_ID_OPA   + 1, LV_STYLE_ATTR_INHERIT),

    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_TIME,    0xB, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_DELAY,   0xB, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_PROP_1,  0xB, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_PROP_2,  0xB, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_PROP_3,  0xB, LV_STYLE_ID_VALUE + 4, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_PROP_4,  0xB, LV_STYLE_ID_VALUE + 5, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_PROP_5,  0xB, LV_STYLE_ID_VALUE + 6, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_PROP_6,  0xB, LV_STYLE_ID_VALUE + 7, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_TRANSITION_PATH,    0xB, LV_STYLE_ID_PTR + 0, LV_STYLE_ATTR_NONE),

    LV_STYLE_PROP_INIT(LV_STYLE_SCALE_WIDTH,            0xC, LV_STYLE_ID_VALUE + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SCALE_BORDER_WIDTH,     0xC, LV_STYLE_ID_VALUE + 1, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SCALE_END_BORDER_WIDTH, 0xC, LV_STYLE_ID_VALUE + 2, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SCALE_END_LINE_WIDTH,   0xC, LV_STYLE_ID_VALUE + 3, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SCALE_GRAD_COLOR,       0xC, LV_STYLE_ID_COLOR + 0, LV_STYLE_ATTR_NONE),
    LV_STYLE_PROP_INIT(LV_STYLE_SCALE_END_COLOR,        0xC, LV_STYLE_ID_COLOR + 1, LV_STYLE_ATTR_NONE),
};

typedef uint16_t lv_style_property_t;

#define LV_STYLE_STATE_POS       8
#define LV_STYLE_STATE_MASK      0x7F00
#define LV_STYLE_INHERIT_MASK    0x8000

typedef uint16_t lv_style_state_t;

typedef struct {
    uint8_t * map;
#if LV_USE_ASSERT_STYLE
    uint32_t sentinel;
#endif
} lv_style_t;

typedef int16_t lv_style_int_t;

typedef struct {
    lv_style_t ** style_list;
#if LV_USE_ASSERT_STYLE
    uint32_t sentinel;
#endif
    uint32_t style_cnt     : 6;
    uint32_t has_local     : 1;
    uint32_t has_trans     : 1;
    uint32_t skip_trans    : 1;      /*1: Temporally skip the transition style if any*/
    uint32_t ignore_trans  : 1;      /*1: Mark that this style list shouldn't receive transitions at all*/
    uint32_t valid_cache   : 1;      /*1: The cache is valid and can be used*/
    uint32_t ignore_cache  : 1;      /*1: Ignore cache while getting value of properties*/

    uint32_t radius_zero : 1;
    uint32_t opa_scale_cover      : 1;
    uint32_t clip_corner_off       : 1;
    uint32_t transform_all_zero  : 1;
    uint32_t pad_all_zero : 1;
    uint32_t margin_all_zero : 1;
    uint32_t blend_mode_all_normal : 1;
    uint32_t bg_opa_transp : 1;
    uint32_t bg_opa_cover : 1;

    uint32_t border_width_zero : 1;
    uint32_t border_side_full : 1;
    uint32_t border_post_off : 1;

    uint32_t outline_width_zero : 1;
    uint32_t pattern_img_null : 1;
    uint32_t shadow_width_zero : 1;
    uint32_t value_txt_str : 1;
    uint32_t img_recolor_opa_transp : 1;

    uint32_t text_space_zero : 1;
    uint32_t text_decor_none : 1;
    uint32_t text_font_normal : 1;
} lv_style_list_t;

/**********************
 * GLOBAL PROTOTYPES
 **********************/

/**
 * Initialize a style
 * @param style pointer to a style to initialize
 */
void lv_style_init(lv_style_t * style);

/**
 * Copy a style with all its properties
 * @param style_dest pointer to the destination style. (Should be initialized with `lv_style_init()`)
 * @param style_src pointer to the source (to copy )style
 */
void lv_style_copy(lv_style_t * style_dest, const lv_style_t * style_src);

/**
 * Initialize a style list
 * @param list a style list to initialize
 */
void lv_style_list_init(lv_style_list_t * list);

/**
 * Copy a style list with all its styles and local style properties
 * @param list_dest pointer to the destination style list. (should be initialized with `lv_style_list_init()`)
 * @param list_src pointer to the source (to copy) style list.
 */
void lv_style_list_copy(lv_style_list_t * list_dest, const lv_style_list_t * list_src);

/**
 * Add a style to a style list.
 * Only the style pointer will be saved so the shouldn't be a local variable.
 * (It should be static, global or dynamically allocated)
 * @param list pointer to a style list
 * @param style pointer to a style to add
 */
void _lv_style_list_add_style(lv_style_list_t * list, lv_style_t * style);

/**
 * Remove a style from a style list
 * @param style_list pointer to a style list
 * @param style pointer to a style to remove
 */
void _lv_style_list_remove_style(lv_style_list_t * list, lv_style_t * style);

/**
 * Remove all styles added from style list, clear the local style, transition style and free all allocated memories.
 * Leave `ignore_trans` flag as it is.
 * @param list pointer to a style list.
 */
void _lv_style_list_reset(lv_style_list_t * style_list);

static inline lv_style_t * lv_style_list_get_style(lv_style_list_t * list, uint8_t id)
{
    if(list->has_trans && list->skip_trans) id++;
    if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
    return list->style_list[id];
}

/**
 * Clear all properties from a style and all allocated memories.
 * @param style pointer to a style
 */
void lv_style_reset(lv_style_t * style);

/**
 * Get the size of the properties in a style in bytes
 * @param style pointer to a style
 * @return size of the properties in bytes
 */
uint16_t _lv_style_get_mem_size(const lv_style_t * style);

/**
 * Copy a style to an other
 * @param dest pointer to the destination style
 * @param src pointer to the source style
 */
void lv_style_copy(lv_style_t * dest, const lv_style_t * src);

/**
 * Remove a property from a style
 * @param style pointer to a style
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_WIDTH | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @return true: the property was found and removed; false: the property wasn't found
 */
bool lv_style_remove_prop(lv_style_t * style, lv_style_property_t prop);

/**
 * Set an integer typed property in a style.
 * @param style pointer to a style where the property should be set
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_WIDTH | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param value the value to set
 * @note shouldn't be used directly. Use the specific property set functions instead.
 *       For example: `lv_style_set_border_width()`
 * @note for performance reasons it's not checked if the property really has integer type
 */
void _lv_style_set_int(lv_style_t * style, lv_style_property_t prop, lv_style_int_t value);

/**
 * Set a color typed property in a style.
 * @param style pointer to a style where the property should be set
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_COLOR | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param value the value to set
 * @note shouldn't be used directly. Use the specific property set functions instead.
 *       For example: `lv_style_set_border_color()`
 * @note for performance reasons it's not checked if the property really has color type
 */
void _lv_style_set_color(lv_style_t * style, lv_style_property_t prop, lv_color_t color);

/**
 * Set an opacity typed property in a style.
 * @param style pointer to a style where the property should be set
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_OPA | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param value the value to set
 * @note shouldn't be used directly. Use the specific property set functions instead.
 *       For example: `lv_style_set_border_opa()`
 * @note for performance reasons it's not checked if the property really has opacity type
 */
void _lv_style_set_opa(lv_style_t * style, lv_style_property_t prop, lv_opa_t opa);

/**
 * Set a pointer typed property in a style.
 * @param style pointer to a style where the property should be set
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_TEXT_POINTER | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param value the value to set
 * @note shouldn't be used directly. Use the specific property set functions instead.
 *       For example: `lv_style_set_border_width()`
 * @note for performance reasons it's not checked if the property really has pointer type
 */
void _lv_style_set_ptr(lv_style_t * style, lv_style_property_t prop, const void * p);

/**
 * Get an integer typed property from a style.
 * @param style pointer to a style from where the property should be get
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_WIDTH | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param res pointer to a buffer to store the result value
 * @return -1: the property wasn't found in the style.
 *         The matching state bits of the desired state (in `prop`) and the best matching property's state
 *         Higher value means match in higher precedence state.
 * @note shouldn't be used directly. Use the specific property get functions instead.
 *       For example: `lv_style_get_border_width()`
 * @note for performance reasons it's not checked if the property really has integer type
 */
int16_t _lv_style_get_int(const lv_style_t * style, lv_style_property_t prop, void * res);

/**
 * Get a color typed property from a style.
 * @param style pointer to a style from where the property should be get
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_COLOR | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param res pointer to a buffer to store the result value
 * @return -1: the property wasn't found in the style.
 *         The matching state bits of the desired state (in `prop`) and the best matching property's state
 *         Higher value means match in higher precedence state.
 * @note shouldn't be used directly. Use the specific property get functions instead.
 *       For example: `lv_style_get_border_color()`
 * @note for performance reasons it's not checked if the property really has color type
 */
int16_t _lv_style_get_color(const lv_style_t * style, lv_style_property_t prop, void * res);

/**
 * Get an opacity typed property from a style.
 * @param style pointer to a style from where the property should be get
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_OPA | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param res pointer to a buffer to store the result value
 * @return -1: the property wasn't found in the style.
 *         The matching state bits of the desired state (in `prop`) and the best matching property's state
 *         Higher value means match in higher precedence state.
 * @note shouldn't be used directly. Use the specific property get functions instead.
 *       For example: `lv_style_get_border_opa()`
 * @note for performance reasons it's not checked if the property really has opacity type
 */
int16_t _lv_style_get_opa(const lv_style_t * style, lv_style_property_t prop, void * res);

/**
 * Get a pointer typed property from a style.
 * @param style pointer to a style from where the property should be get
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param res pointer to a buffer to store the result value
 * @return -1: the property wasn't found in the style.
 *         The matching state bits of the desired state (in `prop`) and the best matching property's state
 *         Higher value means match in higher precedence state.
 * @note shouldn't be used directly. Use the specific property get functions instead.
 *       For example: `lv_style_get_text_font()`
 * @note for performance reasons it's not checked if the property really has pointer type
 */
int16_t _lv_style_get_ptr(const lv_style_t * style, lv_style_property_t prop, void * res);

/**
 * Get the local style of a style list
 * @param list pointer to a style list where the local property should be set
 * @return pointer to the local style if exists else `NULL`.
 */
lv_style_t * lv_style_list_get_local_style(lv_style_list_t * list);

/**
 * Get the transition style of a style list
 * @param list pointer to a style list where the local property should be set
 * @return pointer to the transition style if exists else `NULL`.
 */
lv_style_t * _lv_style_list_get_transition_style(lv_style_list_t * list);

/**
 * Allocate the transition style in a style list. If already exists simply return it.
 * @param list pointer to a style list
 * @return the transition style of a style list
 */
lv_style_t * _lv_style_list_add_trans_style(lv_style_list_t * list);

/**
 * Set a local integer typed property in a style list.
 * @param list pointer to a style list where the local property should be set
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_WIDTH | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param value the value to set
 * @note for performance reasons it's not checked if the property really has integer type
 */
void _lv_style_list_set_local_int(lv_style_list_t * list, lv_style_property_t prop, lv_style_int_t value);

/**
 * Set a local color typed property in a style list.
 * @param list pointer to a style list where the local property should be set
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_COLOR | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param value the value to set
 * @note for performance reasons it's not checked if the property really has color type
 */
void _lv_style_list_set_local_color(lv_style_list_t * list, lv_style_property_t prop, lv_color_t value);

/**
 * Set a local opacity typed property in a style list.
 * @param list pointer to a style list where the local property should be set
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_OPA | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param value the value to set
 * @note for performance reasons it's not checked if the property really has opacity type
 */
void _lv_style_list_set_local_opa(lv_style_list_t * list, lv_style_property_t prop, lv_opa_t value);

/**
 * Set a local pointer typed property in a style list.
 * @param list pointer to a style list where the local property should be set
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param value the value to set
 * @note for performance reasons it's not checked if the property really has pointer type
 */
void _lv_style_list_set_local_ptr(lv_style_list_t * list, lv_style_property_t prop, const void * value);

/**
 * Get an integer typed property from a style list.
 * It will return the property which match best with given state.
 * @param list pointer to a style list from where the property should be get
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_WIDTH | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param res pointer to a buffer to store the result
 * @return LV_RES_OK: there was a matching property in the list
 *         LV_RES_INV: there was NO matching property in the list
 * @note for performance reasons it's not checked if the property really has integer type
 */
lv_res_t _lv_style_list_get_int(lv_style_list_t * list, lv_style_property_t prop, lv_style_int_t * res);

/**
 * Get a color typed property from a style list.
 * It will return the property which match best with given state.
 * @param list pointer to a style list from where the property should be get
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_COLOR | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param res pointer to a buffer to store the result
 * @return LV_RES_OK: there was a matching property in the list
 *         LV_RES_INV: there was NO matching property in the list
 * @note for performance reasons it's not checked if the property really has color type
 */
lv_res_t _lv_style_list_get_color(lv_style_list_t * list, lv_style_property_t prop, lv_color_t * res);

/**
 * Get an opacity typed property from a style list.
 * It will return the property which match best with given state.
 * @param list pointer to a style list from where the property should be get
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_BORDER_OPA | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param res pointer to a buffer to store the result
 * @return LV_RES_OK: there was a matching property in the list
 *         LV_RES_INV: there was NO matching property in the list
 * @note for performance reasons it's not checked if the property really has opacity type
 */
lv_res_t _lv_style_list_get_opa(lv_style_list_t * list, lv_style_property_t prop, lv_opa_t * res);

/**
 * Get a pointer typed property from a style list.
 * It will return the property which match best with given state.
 * @param list pointer to a style list from where the property should be get
 * @param prop a style property ORed with a state.
 * E.g. `LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
 * @param res pointer to a buffer to store the result
 * @return LV_RES_OK: there was a matching property in the list
 *         LV_RES_INV: there was NO matching property in the list
 * @note for performance reasons it's not checked if the property really has pointer type
 */
lv_res_t _lv_style_list_get_ptr(lv_style_list_t * list, lv_style_property_t prop, const void ** res);

/**
 * Check whether a style is valid (initialized correctly)
 * @param style pointer to a style
 * @return true: valid
 */
bool lv_debug_check_style(const lv_style_t * style);

/**
 * Check whether a style list is valid (initialized correctly)
 * @param style pointer to a style
 * @return true: valid
 */
bool lv_debug_check_style_list(const lv_style_list_t * list);

/*************************
 *    GLOBAL VARIABLES
 *************************/

/**********************
 *      MACROS
 **********************/

/**
 * Create and initialize a `static` style
 * Example:
 *     LV_STYLE_CREATE(my_style, &style_to_copy);
 *   is equivalent to
 *     static lv_style_t my_style;
 *     lv_style_init(&my_style);
 *     lv_style_copy(&my_style, &style_to_copy);
 */
#define LV_STYLE_CREATE(name, copy_p) static lv_style_t name; lv_style_init(&name); lv_style_copy(&name, copy_p);

#if LV_USE_DEBUG

# ifndef LV_DEBUG_IS_STYLE
#  define LV_DEBUG_IS_STYLE(style_p) (lv_debug_check_style(style_p))
# endif

# ifndef LV_DEBUG_IS_STYLE_LIST
#  define LV_DEBUG_IS_STYLE_LIST(list_p) (lv_debug_check_style_list(list_p))
# endif

# if LV_USE_ASSERT_STYLE
#  ifndef LV_ASSERT_STYLE
#   define LV_ASSERT_STYLE(style_p) LV_DEBUG_ASSERT(LV_DEBUG_IS_STYLE(style_p), "Invalid style", style_p);
#  endif
#  ifndef LV_ASSERT_STYLE_LIST
#   define LV_ASSERT_STYLE_LIST(list_p) LV_DEBUG_ASSERT(LV_DEBUG_IS_STYLE_LIST(list_p), "Invalid style list", list_p);
#  endif
# else
#   define LV_ASSERT_STYLE(style_p)
#   define LV_ASSERT_STYLE_LIST(list_p)
# endif

#else
# define LV_ASSERT_STYLE(p)
# define LV_ASSERT_STYLE_LIST(p)
#endif

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*LV_STYLE_H*/


text: There's a soldier that's been doing of his share In the fighting up and down and round about. He's continually marching here and there, And he's fighting, morning in and morning out. The Boer, you see, he generally runs; But sometimes, when he hides behind a rock, And we can't make no impression with the guns, Oh, then you'll hear the order, "Send for Jock!" Yes, it's Jock, Scotch Jock. He's the fellow that can give or take a knock. For he's hairy and he's hard, And his feet are by the yard, And his face is like the face what's on a clock. But when the bullets fly you will mostly hear the cry, "Send for Jock!" The Cavalry have gun and sword and lance; Before they choose their weapon, why, they're dead. The Mounted Foot are hampered in advance By holding of their helmets on their head. And, when the Boer has dug himself a trench And placed his Maxim gun behind a rock, These mounted heroes, pets of Johnny French, They have to sit and wait and send for Jock! Yes, the Jocks, Scotch Jocks, With their music that'd terrify an ox! When the bullets kick the sand You can hear the sharp command, "Forty-Second! At the double! Charge the rocks!" And the charge is like a hood When they warmed the Highland blood Of the Jocks!

redpajama_set_name: RedPajamaCommonCrawl


A wrap from Ellevill in 100 % pure organic cotton. Organica is woven in waffle pattern. This wrap makes a fluffy and warm feeling, even if it is well suited to hot weather. This wrap breath and feels cooling when the weather is hot and humid. It encapsulates perfectly and provides a supportive carry.
This wrap has just the right amount of stretch to them which allows for this wrap to mould perfectly to the shoulders and allow just the right amount of bounce. The weave is sturdy and once broken in becomes silky.
This product is a skin and an environmenlyt friendly wrap.


'''North Dakota State Agency Databases''' This is an annotated list of databases produced by North Dakota Agencies, listed by subject. It was last checked for broken links on 09/20/2016. We've moved! Join us at [http://godort.libguides.com/NorthDakotadbs http://godort.libguides.com/NorthDakotadbs]!


Forget what ya heard about the Jets being the NFL's worst team ... Gang Green star Buster Skrine says the squad is gonna shock the world in 2017.
It's a big statement considering the Jets finished dead last in the AFC East last year (5-11), and have unloaded some of their best players like Eric Decker in the off-season.
Skrine said he's sad to see Decker go -- but his release is "all business" ... and he clearly believes the team will win without him.


text:
Disney should have let Will Smith be himself in Aladdin
The new live-action remake of Aladdin is two hours of pure, nostalgic escapism, but there's one big blue elephant in the room...
By Olive Pometsey
I, just like everyone else, am a sucker for nostalgia and Nineties throwbacks are my kryptonite. On my late-night corner shop sugar run, I will invariably opt for anything that might turn my tongue blue; next week, I will travel over 200 miles to see the Spice Girls on tour; next month, I'll probably embarrass myself by singing the Vengaboys throughout a two-and-a-half hour flight to Ibiza. It's all a bit cringe, I know, but I'm convinced everyone else is exactly the same – why else would Disney continue to bait audiences with live-action remakes of our childhood favourites?
So, when the rousing score for "Arabian Nights" swelled into the title sequence for Disney's 2019 Aladdin update, despite my blue Will Smith-fuelled reservations about the film, I was immediately transported to my childhood living room and began to lap up the buzz of the Kingdom Of Agrabah with the same enthusiasm of an easily amused four-year-old. Apart from a few changes, the film is basically a straight replica of the original 1992 cartoon and, in that respect, it almost felt as though I was simply revisiting the city as an adult, with the details that were once smoothed over by 2-D animation and a child's memory now brought into focus with CGI precision.
Well, almost. As anticipated from all of the material that has been used to promote the film, Will Smith's Violet Beauregarde treatment for his role as the genie is a little unsettling. Thankfully, Smith doesn't spend the entirety of the film as a floating blue torso, but when he does, it's difficult to concentrate on anything else. The CGI rendering of his character places him firmly in the uncanny valley whenever he doesn't appear in human form: his gaze often seems to look past other characters while he's interacting with them and his facial expressions aren't convincing enough to match his human counterparts. Will Smith does a decent job of making him seem as friendly as possible, but something just seems off.
How does Smith's genie match up to Robin Williams' original portrayal of the role? You probably already know the answer to that question. If you were to play both Williams' and Smith's renditions of "Friend Like Me" back to back, the former would quite clearly come out top, but it's difficult to imagine that any actor could possibly trump the original. When it comes to the musical numbers, both Smith and the film suffer from not daring to stray from the quirks and gags that were in the original film enough, something that becomes clear when the credits begin to role to a version of "Friend Like Me" that's much better than the version that appears in the actual film. The remix features Smith rapping, which I'm sure many Disney purists would scoff at, but his performance is cooler and more confident. We already have Robin Williams' genie; it would have been nice to have seen a fully realised version of Will Smith's genie too.
That said, if the film suffers from sticking too closely to the original, it also benefits from it too. The original film's musical numbers are amongst the best in Disney's catalogue and, if anything, watching the live-action remake of Aladdin has finally convinced me to buy a ticket for the West End show. As much as I'd have liked to see the film experiment with the source material a little more, I can understand why they opted to leave them relatively untouched. As they say: if it ain't broke, don't fix it. But then why update the original film in the first place?
One pleasant new addition is a solo number for Naomi Scott's Princess Jasmine, who might just be my new favourite Disney princess of all time. With all the feminist sass of the original cartoon, but ramped up for a modern audience, her performance of "Speechless" is as passionate as it is vocally impressive and will surely reach "Let It Go" status in no time.
As for Aladdin, Mena Massoud has all of the cheek and charm that you'd hope to see in our loveable street rat, but he's unfortunately regularly upstaged by his pet monkey, Abu, who you'll want to take home by the end of the film. CGI animals, it seems, are what Disney excel at, which is reassuring considering that the live-action The Lion King is released in July.
If you want to see a piece of groundbreaking cinema, then don't buy a ticket for Aladdin. If you're looking for your next hit of frivolous nostalgic fun, then this could be the film to help soothe your Peter Pan complex. If you don't take it too seriously and try to ignore Smith's blue hue, it's two hours of old-school Disney magic. For me, it was a chance to escape to a world that enchanted my childhood once more – who wouldn't want that?
Pokémon Detective Pikachu is a better film than it thinks it is
Extremely Wicked, Shockingly Evil And Vile is the ultimate film about gaslighting
The latest trailer for The Lion King feels like a souped-up episode of Our Planet
KeywordsCultureFilmReview


text:
Q: JOIN a sub SELECT statement I'm having issues figuring out how to join a sub select statement.
The intend is to retrieve the sum of all sales linked within a parent/child hierarchy. each row should show the total sum of the total sales from the hierarchy, not the unique child sales
I can easily get the required results separately but trying to figure out how to get this data in a single query.
Expected results:

AccountID   AccountName       REPLOGIN     TL_AccountID   TL_AccountName     SumGross
123456      Child Company A   Salesrep A   123654         Parent Company X   1500
123456      Child Company B   Salesrep C   123654         Parent Company X   1500

SQL below. the sub select results has to join up with the TL_AccountID:
SELECT
    dbo.Account.AccountID,
    dbo.Account.AccountName,
    dbo_Rep_Employee.Login AS REPLOGIN,
    TL_Account.AccountID AS TL_AccountID,
    TL_Account.AccountName AS TL_AccountName,
    TL_Address.Country AS TL_Country,

------------------------------------------
-- HOW TO JOIN THE BELOW????? --
------------------------------------------

(SELECT SUM(Orders.GrossAmount) AS SumGross

FROM    Position
                INNER JOIN Account ON Position.PositionID = Account.PositionID
                INNER JOIN Employee ON Position.EmployeeID = Employee.EmployeeID
                INNER JOIN Address ON Account.AddressID = Address.AddressID
                INNER JOIN Account AS TL_Account ON Account.TopPurchasingAccountID = TL_Account.AccountID
                INNER JOIN Address AS TL_Address ON TL_Account.AddressID = TL_Address.AddressID
                RIGHT OUTER JOIN Orders AS Orders ON Account.AccountID = Orders.AccountID
                LEFT OUTER JOIN PriceList AS PriceList ON Orders.PriceListID = PriceList.PriceListID

WHERE
                (Orders.SalesChannel LIKE '%NL.%' OR Orders.SalesChannel LIKE '%.nl%') AND
                (Orders.DateDeleted IS NULL) AND
                (Orders.OrderDate > DATEADD(MM, - 13, CONVERT(DATE, DATEADD(mm, DATEDIFF(MM, 0, DATEADD(DD, - 3, CURRENT_TIMESTAMP)) + 1, 0)))) AND
                (UPPER(RTRIM(Orders.OrderStatus)) IN ('VERIFIED', 'VERIFIED - MANUAL', 'SENT TO FINANCE', 'REJECTED', 'RE-SUBMITTED', 'PAID IN FULL', 'INVOICED - MANUAL', 'INVOICED', 'FINANCE HOLD', 'CLOSED--EU CREDIT', 'CLOSED - EU CREDIT', 'VERIFIED BY FINANCE', 'Pending Approval', 'Closed--Zero Value'))) AS SumGross
------------------------------------------
-- HOW TO JOIN THE ABOVE????? --
------------------------------------------

FROM
    dbo.Account INNER JOIN dbo.AccountPosition ON (dbo.Account.AccountID=dbo.AccountPosition.AccountID)
    INNER JOIN dbo.Position  dbo_Rep_Position ON (dbo.AccountPosition.PositionID=dbo_Rep_Position.PositionID)
    INNER JOIN dbo.Employee  dbo_Rep_Employee ON (dbo_Rep_Position.EmployeeID=dbo_Rep_Employee.EmployeeID)
    INNER JOIN dbo.Employee  dbo_Rep_Manager ON (dbo_Rep_Employee.ManagerEmployeeID=dbo_Rep_Manager.EmployeeID)
    INNER JOIN dbo.Employee  dbo_Modified_Employee ON (dbo_Modified_Employee.EmployeeID=dbo.AccountPosition.ModifyEmployeeID)
    LEFT JOIN Account AS TL_Account ON Account.TopPurchasingAccountID = TL_Account.AccountID
    INNER JOIN Address AS TL_Address ON TL_Account.AddressID = TL_Address.AddressID
    INNER JOIN  Orders ON Account.AccountID = Orders.AccountID

WHERE
    dbo.Account.AccountID  IN  ( N'1-9CLBQK')
    AND
    dbo.AccountPosition.PrimarySalesRep  IN  ( N'Y'  )
    AND
    dbo.AccountPosition.DateDeleted  Is Null

    GROUP BY
    dbo.AccountPosition.DateModified,
    dbo_Modified_Employee.login,
    dbo.Account.AccountID,
    dbo.Account.AccountName,
    dbo_Rep_Employee.Login,
    dbo.Account.DateCreated,
    TL_Account.AccountID,
    TL_Account.AccountName,
    TL_Address.Country

A: you can try using SQL User Defined Functions which will accept input parameter and return
Table valued resultset with required values of lower part of query which can be join to above resultset

redpajama_set_name: RedPajamaStackExchange


text:
Home / News / Biden says all schools should be open by the fall after furious criticism for not getting more in-person learning
Biden says all schools should be open by the fall after furious criticism for not getting more in-person learning
President Joe Biden stated that all schools for children up until 12th grade should 'probably' be opened by the fall.
His statement, made in an interview with NBC's 'Today' show Friday, comes despite his acknowledgement that vaccines would not likely be provided to young children by that time – and following stepped up criticism by Republicans to tar him for parents suffering at home with school-age children.
'Based on the science and the CDC, they should probably all be open,' Biden told the network.
'Based on the science and the CDC, they should probably all be open,' President Joe Biden said Friday when asked about reopening schools
He cited a growing body of scientific evidence that child-to-child transmission is low in school settings there schools take steps to provide distancing, students wear masks, and other mitigation is in place.
'There's not overwhelming evidence that there's much of a transmission among these people, young people,' Biden added. He spoke as U.S. infection rates were finally on a downward trajectory amid increased vaccination rates – but with many public schools still closed or in 'hybrid' models to keep students apart.
He was responding to a question from NBC's Craig Melvin, who asked: 'Should all schools in the country be open this fall?' The show tweeted out the exchange.
Health officials have raised the possibility that emergency use authorization could be available for children as young as 12 to take the Pfizer vaccine shot by the spring, but experts are still studying doses and effects on younger children.
Sen. Tim Scott (R-S.C.) slammed Biden on schools in his response to Biden's speech to Congress
A students checks his temperature at a check point at James Madison High School on March 22, 2021 in the Madison neighborhood of the Brooklyn
In this Oct. 20, 2020, file photo, students sit in a distanced pattern from their classmates during the coronavirus outbreak in a Kindergarten class at School 16, in Yonkers, N.Y.
Natalya Murakhver, a New York City Upper West Side mother of two started a GoFundMe to raise funds to hire a lawyer to sue New York City to reopen schools to in person learning 5 days a week.
Biden has faced pushback from teachers' unions on reopening, but last month urged schools to reopen after the Centers for Disease Control released new social distancing guidelines with three feet of distance – making it much easier to get more kids into buildings.
South Carolina Republican Sen. Tim Scott hammered Biden on the school issue in his GOP response to Biden's speech to Congress Wednesday.
'I'm saddened that millions of kids have lost a year of learning when they could not afford to lose a single day. Locking vulnerable kids out of the classroom is locking adults out of their future. Our public schools should have reopened months ago. Other countries' did. Private and religious schools did,' said Scott.
'Science has shown for months that schools are safe. But too often, powerful grown-ups set science aside,' he added. He bashed Biden's $1.9 trillion covid relief bill for having 'no requirement to reopen schools promptly.'
Some teachers are resisting returning to the classroom despite being vaccinated amid new variants and health concerns.
Biden in his own speech touted re-openings as a sign of hope.
'Parents seeing the smiles on the kids' faces, for those who are able to go back to school because the teachers and the school bus drivers and the cafeteria workers have been vaccinated. ... It means everything. Those things mean everything,' he said.
Biden last month urged schools and school districts to move quickly to reopen, as vaccines and new research came online.
'My message is: Help is here,' Biden said. 'Help is here for schools to purchase PPE, hire additional personnel, like nurses, counselors, custodial staff, improve ventilation, sanitation, avoid educator layoffs and give students extra support,'
'Help is here to help students make up for lost time and lost learning. Unless we act quickly, this pandemic could have a devastating long-term impact on our kids who have gone through this, including on their mental health,' he said.
Biden set a 100-day goal of having half of all schools open for in-person learning.
According to Burbio, which tracks reopenings, about two-thirds of students are now attending public schools in-person. But many schools that remain closed to in-person learning are in struggling neighborhoods where educators fear students will be at a grave disadvantage.
U.S. public schools are controlled by local school boards, but many look to federal scientists and policymakers for guidance.
Biden says all schools should be open by the fall after furious criticism for not getting more in-person learning Reviewed by CUZZ BLUE on May 01, 2021 Rating: 5


text:
Black Friday gun-draw should inspire signs
Opinion // Brian Chasnoff
Brian Chasnoff, Express-News columnist
Nov. 26, 2012 Updated: Nov. 27, 2012 10:03 a.m.
1of53Rose Pena (right) sifts through a pile of shoe boxes looking for a boot that matches the one she was hoping to purchase at JC Penny at North Star Mall Black Friday November 23, 2012. Pena and other shoppers at the mall were taking advantage of Black Friday sales.JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
2of53Raulene Flores (center) sifts through a pile of shoe boxes looking for some boots for her mother at JC Penny at North Star Mall Black Friday November 23, 2012. Flores and other shoppers at the mall were taking advantage of Black Friday sales.John Davenport/San Antonio Express-NewsShow MoreShow Less
5of53Shoppers walk under holiday lights at North Star Mall on Black Friday November 23, 2012.John Davenport/San Antonio Express-NewsShow MoreShow Less
7of53Clorimar Rodriguez (left), Lauryn Rengifo (center) and Lismaren Bejarano (right) look through merchandise they purchased on Black Friday November 23, 2012 while shopping at North Star Mall. The three women are from Caracas, Venezuela and said they are on vacation here.John Davenport/San Antonio Express-NewsShow MoreShow Less
8of53Kathleen Barbknecht clutches merchandise while waiting in line to pay at JC Penny at North Star Mall Black Friday November 23, 2012.John Davenport/San Antonio Express-NewsShow MoreShow Less
10of53Shoppers take the escalators at JC Penny at North Star Mall Black Friday November 23, 2012.John Davenport/San Antonio Express-NewsShow MoreShow Less
11of53A holiday parade winds through North Star Mall Black Friday November 23, 2012.John Davenport/San Antonio Express-NewsShow MoreShow Less
13of53Shoppers stand in line at the H-E-B plus! on Loop 1604 near Blanco road at 5:30 a.m. Black Friday November 23, 2012. Popular items on sale at the store are electronic tablets, 16 inch Auria LED televisions and 3DS Nintendos. Toys and aapliances were also hot items.JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
14of53High definition television sets are loaded into shopping carts at the H-E-B plus! on Loop 1604 at Blanco prior to shoppers entering the store Black Friday November 23, 2012. The store opened at 6:00 a.m. .JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
16of53Shoppers stand in line at the H-E-B plus! on Loop 1604 near Blanco road to buy electronic tablets Black Friday November 23, 2012. Popular items on sale at the store are the tablets, 16 inch Auria LED televisions and 3DS Nintendos. Toys and aapliances were also hot items.JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
19of53Terri Pulido (left) shops for toys for her kids Black Friday November 23, 2012 at the H-E-B plus! at Loop 1604 and Blanco.JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
22of53Ana Cruz (right) and her niece Sylvia Reyes (foreground) were the first in line to enter the H-E-B plus! store at 6:00 a.m. Black Friday November 23, 2012. Cruz and Reyes said they had been in line since 11:00 p.m. Thanksgiving night.JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
23of53Shoppers in line enter the H-E-B plus! on Loop 1604 near Blanco road at 5:30 a.m. Black Friday November 23, 2012. Popular items on sale at the store are electronic tablets, 16 inch Auria LED televisions and 3DS Nintendos. Toys and appliances were also hot items.JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
25of53H-E-B employee Alex Perez gets ready to sell an electronic tablet shortly after 6:00 a.m. Black Friday November 23, 2012 at the H-E-B plus! on Loop 1604 at Blanco road.JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
26of53Shopper Eva Avalos pushes a shopping cart out of the electronics area of the H-E-B plus! store at Blanco and Loop 1604 Black Friday November 23, 2012.JOHN DAVENPORT/San Antonio Express-NewsShow MoreShow Less
28of53Shoppers arrive to wait in line for Black Friday specials, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/For the Express-NewsShow MoreShow Less
29of53Shoppers wait in line for Black Friday specials, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/For the Express-NewsShow MoreShow Less
31of53General manager George Cunningham holds a meeting with store employees before doors open for Black Friday sales, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/Darren Abate/SA Express-NewsShow MoreShow Less
32of53After waiting in line for Black Friday specials, the first shoppers through the doors compete for shopping carts, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/For the San Antonio Express-NewsShow MoreShow Less
34of53Four-year-old Sophia Alcala sleeps on the shoulder of her father, Jose Alcala, as late-night Black Friday shoppers file past her, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/Darren Abate/SA Express-NewsShow MoreShow Less
35of53Late-night shoppers search for Black Friday specials, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/For the Express-NewsShow MoreShow Less
37of53Black Friday shoppers search through a bin of movies, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/For the San Antonio Express-NewsShow MoreShow Less
40of53Black Friday shopper Roy Bosquez, left, carries his new television, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/Darren Abate/For The Express-NewShow MoreShow Less
41of53Shoppers search for Black Friday merchandise, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/Darren Abate/SA Express-NewsShow MoreShow Less
43of53In this 180-degree panoramic photograph, shoppers are seen searching for Black Friday specials, Friday, Nov. 23, 2012, at Best Buy #201 in San Antonio.Darren Abate/For the Express-NewsShow MoreShow Less
44of53Juan Moreno hoists a bicycle on his shoulders to avoid running into people as he joins hundreds of shoppers at Super Target at Wonderland of the Americas on Thursday, Nov. 22, 2012. Target opened at 9 p.m. on Thanksgiving Day for shoppers looking for sales ahead of Black Friday.Kin Man Hui/San Antonio Express-NewsShow MoreShow Less
46of53At least 1,000 shoppers wait in line at Super Target at Wonderland of the Americas on Thursday, Nov. 22, 2012. Target opened at 9 p.m. on Thanksgiving Day for shoppers looking for sales ahead of Black Friday.Kin Man Hui/San Antonio Express-NewsShow MoreShow Less
47of53Cousins Ashley Martinez (from left), Crystal Lozano and Zac Leard wait out the last remaining moments of being in line since 8 a.m. to be the first shoppers at Super Target at Wonderland of the Americas on Thursday, Nov. 22, 2012. Target opened at 9 p.m. on Thanksgiving Day for shoppers looking for sales ahead of Black Friday.Kin Man Hui/San Antonio Express-NewsShow MoreShow Less
49of53Shoppers stream into Super Target at Wonderland of the Americas on Thursday, Nov. 22, 2012. Target opened at 9 p.m. on Thanksgiving Day for shoppers looking for sales ahead of Black Friday.Kin Man Hui/San Antonio Express-NewsShow MoreShow Less
50of53A shopper grabs a game console which went on sale at 9 p.m. at Super Target at Wonderland of the Americas on Thursday, Nov. 22, 2012. Target opened its doors at 9 p.m. on Thanksgiving Day for shoppers looking for sales ahead of Black Friday.Kin Man Hui/San Antonio Express-NewsShow MoreShow Less
Ashley Martinez (right) has a challenge navigating her shopping cart with a 50-inch television as she joins hundreds of shoppers at Super Target at Wonderland of the Americas on Thursday, Nov. 22, 2012. Target opened at 9 p.m. on Thanksgiving Day for shoppers looking for sales ahead of Black Friday.
Kin Man Hui/San Antonio Express-NewsShow MoreShow Less
On Monday, the number of mySA readers who "liked" a particular San Antonio Express-News story, having shared it on Facebook, had climbed to about 1,500 — an unusually high figure for the website.
The article, "Shopper who pulled gun at San Antonio mall within rights, cops say," recounts a man's decision to pull a loaded, semi-automatic handgun during a Black Friday scuffle with another man inside a crowded Sears store at South Park Mall.
Presumably, online readers "like" the Police Department's determination that Jose Alonzo Salame, a concealed handgun licensee, did not break the law by pulling the weapon. Two noteworthy folks, however, dislike the fact that Salame brandished the gun.
One is Stella Moreno, a shopper who was standing a few feet from Salame's would-be target.
Shopper who pulled gun at San Antonio mall within rights, cops say
Another is state Rep. George Lavender, Republican from Texarkana, who says he plans to push for an "open carry" law when the Legislature convenes in January — certainly no yellow belly, even by Texas standards.
Let's start with Moreno. At Sears to score deals for her family, she was standing at a counter when the fight broke out in a nearby line.
Salame, 33, told police he pulled the gun after Alejandro Alex, 35, punched him. A witness said Salame pointed the gun directly at Alex, although a sergeant at the scene told reporters that Salame pointed the weapon at the ground.
"No, no," Moreno told me. "I saw the gun. I saw the barrel. I didn't see it pointed down. If he would have missed, I think I would've been shot."
Moreno says Salame kept pointing the gun even as Alex fled in her direction, prompting her to leap to the floor in terror. Other shoppers were shrieking and fleeing as well.
"I'm already thinking the theater bit," Moreno said, referring to the massacre in Aurora, Colo., where a gunman killed 12 people and injured 58 in a movie theater.
She added, "You can carry (guns) inside a mall? I always thought this wasn't allowed in malls."
In fact, licensees in Texas may carry concealed handguns in malls, unless a mall posts a sign that prohibits them and cites a section of the penal code that makes doing so a class A misdemeanor.
No such signs are posted at South Park Mall.
Since the Legislature passed a law in 1995 allowing Texans to carry concealed handguns, such signs have become more and more rare, says Alice Tripp, a lobbyist for the Texas State Rifle Association. The reason: Businesses don't want to lose customers, she says.
"Malls have taken their signs down," she said. "Car dealerships, banks have taken their signs down."
When I suggested that the incident at South Park Mall could have led to the loss of innocent lives, Tripp became animated.
"Think about what you're saying," she said. "I'm being pounded on, and I'm not supposed to defend myself because suddenly I'm insecure that somebody who is close enough to me to hit me, that I might miss? I don't think so. I mean, that's silly."
Lavender, however, thinks the mall incident was worse than silly — he believes it was dangerous.
(Lavender, recall, is the legislator who wants to make it legal for Texans to openly carry handguns: "Your response time is a little quicker if you don't have to reach down into your boot," he said.)
"I think that's a bad situation to do it in," he told me, noting the possibility bystanders such as Moreno could get shot. "I mean, if (Salame) was in an alley somewhere and a guy starts beating him up, sure, I get it. But in the mall, I think that's a bad thing, and that's just bad judgment."
In other words: South Park Mall, get a sign.
bchasnoff@express-news.net
The lululemon Dual Pouch Wristlet is this season's...
If travel planning gives you a headache, try these apps
Why this wrinkle-resistant suit is my go-to for business...
Brian Chasnoff
Reach Brian on
Brian Chasnoff is a graduate of Tulane University, as well as the University of Texas at Austin, where he received a Masters Degree in Journalism. He joined the San Antonio Express-News in 2005 as a crime reporter. He was a metro columnist for seven years before joining the investigations team in 2019. As a reporter and a columnist, Brian has exposed corruption and cover-ups at the top levels of local government, including at City Hall and the Bexar County courthouse.


Within Form: Painting with Light (Crevasse). Created September, 2015. Using a macro lens, glass, and candlelight, I explored the concepts of Perspective and Perception. What emerged was an abstract universe comprised of light, line, curve, color and space – the underpinnings of form. Limited Edition of 9. Curated into November 2015 Exhibition, Luminous: Light and Space, Black Box Gallery, Portland, OR. Juror Ethan Jackson.


Mainly clients are concerned about the dreaded "probate," the court process required to transfer assets from a person following their death, to their family, friends, and charitable organizations. They've heard stories about the huge expense and delay associated with probate, and they definitely want to avoid that. And they are right to be concerned. Probate can be costly, and can mean waiting a year or more to settle a loved one's estate.
The good news is that there is a surefire way to avoid probate: Set up a trust. When a person sets up a "revocable living trust," they take the step now to ensure that their loved ones aren't burdened with having to probate their estate later. Remember that anything owned in your name alone at death requires probate for transfer to others. This is true even if you have a will. A trust on the other hand does something very special that a will does not: by transferring assets to the trust, your trust and not you owns the assets upon your death, and no probate is required. Wonderful!
Still, that's not the end of the story.
While setting up a trust is an enormously helpful tool for lessening the burden of settling your estate, a trust does not completely eliminate the estate administration headache.
If you name your spouse or child as your "successor trustee," they will still have the responsibility of properly settling your estate. This is especially true if the trust names multiple family members as beneficiaries, if there are blended families, estranged children, or numerous charitable organizations named as beneficiaries.
If you are interested in setting up a trust, know that you are doing a very helpful thing for your family. But, do let those you've named trustee understand that it still requires work. If you are suddenly in the position of becoming a trustee, it can be helpful to seek legal guidance to make sure you are on the right track. We are here to assist you if that's the case.


text:
District of Massachusetts
Carmen M. Ortiz
, United States Attorney
Contact: Christina DiIorio-Sterling
www.justice.gov/usao/ma/news.html
Southbridge Man Convicted of Being a Felon in Possession of Firearms and Ammunition
BOSTON - A Southbridge man was convicted of being a felon in possession of firearms and ammunition yesterday in United States District Court in Worcester.
Mark McForbes, aka "S-Dot," 33, was convicted of being a felon in possession of firearms and ammunition after an eight-day jury trial. McForbes is scheduled to be sentenced on Oct. 14, 2015.
On Aug. 29, 2014, McForbes and a cooperating witness negotiated the sale of firearms and ammunition in Southbridge. Later that evening, McForbes sold two loaded 9mm firearms to the cooperating witness at a Worcester residence. The jury convicted the defendant of possession of the two firearms and the ammunition contained therein. The jury acquitted McForbes of possession of a firearm with an obliterated serial number. McForbes qualifies under federal law as an armed career criminal based upon prior criminal convictions.
The charging statute provides a sentence of up to life in prison, with a mandatory minimum sentence of 15 years. Actual sentences for federal crimes are typically less than the maximum penalties. Sentences are imposed by a federal district court judge based upon the U.S. Sentencing Guidelines and other statutory factors.
United States Attorney Carmen M. Ortiz; Daniel J. Kumor, Special Agent in Charge of the Bureau of Alcohol, Tobacco, Firearms, and Explosives (ATF); and Southbridge Police Chief Daniel Charette made the announcement today. The case was tried by Assistant United States Attorneys Greg A. Friedholm and Michelle L. Dineen Jerrett of United States Attorney Ortiz's Worcester Branch Office. The investigation was initiated by the ATF and the Southbridge Police Department with assistance by the Federal Bureau of Investigation, the United States Marshals Service, and the Worcester Police Department.
Boston Field Division


Following the success of their market in September, Tokai Community Church will be holding a special Christmas Market on Friday 6th December from 5pm – 9pm. There will be a range of food and craft traders from around Cape Town. For more information please call Nick Louw on 021 715 1104.
← Blow the whistle on crime Tokai residents!


text:
Books Similar to Fresh Out of Amazing: Opening Your Heart to God's Unexpected Invitation
September 11, 2016 - by erica - Leave a Comment
Are you interested in finding books similar to Fresh Out of Amazing: Opening Your Heart to God's Unexpected Invitation by Stacey Thacker? Fresh Out of Amazing: Opening Your Heart to God's Unexpected Invitation can best be described as follows: You're Invited to Savor Some Grace Today What do you do when everyone expects you to be amazing….
Here are some reads you will enjoy,
1. NOFX: The Hepatitis Bathtub and Other Stories by author NOFX.
Description: NOFX: The Hepatitis Bathtub and Other Stories is the first tell-all autobiography from one of the worlds most influential and controversial punk bands. Fans and non-fans alike will be shocked by the stories of murder, suicide, addiction, counterfeiting, riots, bondage, terminal illness, the Yakuza, and drinking pee.
2. Hard-Core: Life of My Own by author Harley Flanagan.
Description: Harley Flanagan provides a fascinating memoir: a homeless child prodigy and family friend of Andy Warhol and Allen Ginsberg, at a young age he became close to many stars of the early punk rock scene like Joe Strummer of The Clash and was taught to play bass by members of the famed black punk band Bad Brains. He went on to start the notorious hardcore band Cro-Mags.
3. Disco's Out…Murder's In!: The True Story of Frank the Shank and L.A.'s Deadliest Punk Rock Gang by author Heath Mattioli.
Description: Famous for its revolutionary aspects in musical, political, sexual identity and consumerist ideas, punk rock also has its lesser-known gangster ethos as well, explained here by players in the various punk gangs.The Los Angeles, Orange County, and South Bay punk scenes, populated by blue collarkids who responded to the violence and aggression of punk songs and shows.
Previous Article Books Similar to A Field Guide to Lies: Critical Thinking in the Information Age
Next Article Books Similar to A Call to Mercy: Hearts to Love, Hands to Serve


text:
Macedonian airports set for record year
Skopje and Ohrid airports are set for another record year after the two handled a combined total of just over two million passengers in 2017. Speaking to EX-YU Aviation News, the General Manager of TAV Macedonia, which operates the country's two international airports, Alper Ersoy, said, "Indeed 2017 was a successful year for TAV Macedonia. Wizz Air based its fourth aircraft at Skopje Airport and introduced four new destinations from/to Skopje. Qatar Airways, one of the five-star airlines, launched flights between Doha and Skopje, and, for the first time, we welcomed Polish tourists at Ohrid Airport, in addition to other leisure routes which were already in operation. As a result of the new destinations and increased frequencies, we expect to have slightly over two million passengers (13% increase compared to 2016) at both Skopje and Ohrid Airports in 2017. In addition, we have placed once again in the top ten best airports list compiled by Skytrax after 2015 and 2016".
The year is already shaping up to be a busy one for the Macedonian aviation sector. The government will commit 1.7 million euros to stimulate the introduction of new routes by low cost carriers, while three airlines have already confirmed the launch of new services to Ohrid. The expected change to Skopje Alexander the Great Airport's name will result in the introduction of flights between Athens and the Macedonian capital by Aegean Airlines. A number of other carriers have also expressed interest in serving the country including LOT Polish Airlines and Arkia Israeli Airlines. Representatives from both have held talks with the Macedonian government over potential services. "Entering a new market is always a though decision for airlines due to increased competition, reduced yields and start-up costs. Therefore, in order to make them feel comfortable, we introduce airline representatives with the respected governmental authorities. Thus, airlines have a better view and understanding, not only about airport capacity and capabilities, but also about the country, what Macedonia can offer as a destination, market size, catchment area potential and government support in aviation and tourism", Mr Ersoy noted.
In 2018, TAV Macedonia anticipates for passenger numbers to continue growing. "We predict a similar increase to the one we had in 2017, but, as you would appreciate, external factors have serious effects on passenger and flight numbers. We wish for a successful year for the entire aviation sector", the General Manager said. He added, "Our first aim in 2018, as always, will be to provide high quality services to our passengers and clients. We will continue to focus on passenger satisfaction and work hard towards being ranked as the Best Serving Airport in our category at Airports Council International's Airport Service Quality Awards, as we have done on three occasions, in 2012, 2013 and 2015. Our sister company BTA, which provides catering services, will introduce new food and beverage points both land and airsides at Skopje Airport. Thus, seat capacity at food and beverage areas will be extended".
The airport operator will also continue discussions with carriers in order to secure new services during 2018. "As a marketing strategy, we are constantly communicating with airlines and tour operators to attract them to enter the Macedonian market. TUI has already announced new flights from Eindhoven to Ohrid as of May 2018. In addition, Ohrid Airport will welcome Estonian tourists in the summer 2018. Similarly, flights from Katowice to Ohrid, as well as services from Warsaw to Ohrid, will be launched in 2018", Mr Ersoy concluded.
Feature macedonia Ohrid Results 2017 Skopje
Well done Skopje and Ohrid. It's great to see OHD attracting more and more passengers.
Yes. 2 new airline already announced - Brussels Airlines and Nordica + 2 more new routes: Eindhoven by TUI and Warsaw but I'm not sure who will be operating that one.
Nice but remember that Brussels Airlines replaced Thomas Cook. Also I'm not sure if Air Serbia is coming, they haven't scheduled their flights to OHD yet.
The government is trying to get more airlines to focus on OHD since they want both airports in the country to offer a good choice of destinations.
Air Serbia is coming back 4 weekly
Oh ok, happy to hear that.
Wizzair has definitely made an impact. Let's see what other route they could open from SKP.
There are still a lot of legacies that could give Skopje a try.
are legacies also entitled to subsidies?
Unfortunately no, only LCCs. But they all get the regular incentives from TAV when they launch new flights.
but why is that "discrimination"? And what criteria define a LCC?
I think there are guidelines that describe the airlines that are eligible to apply for these subsidies. I guess the idea is to subsidies only flights which are cheap and accessible to the general public.
We need legacy carriers not more lccs!
What we really need is flights to major hubs like LHR, CDG, FRA, MUC, AMS, FCO.
I would love if the subsidies this year were given to another low cost airline and not just Wizz Air.
easyjet, Norwegian, Ryanair would be great additions.
Pobeda from Moscow would also be a good addition. They could fly to Ohrid via Skopje. Similar to what TUI used to do a couple of year ago, just the other way round.
I don't know if there is enough demand for SKP-MOW flights.
Russians doesn't need visas to entr Macedonia, and a lot of them go o holidays to Ohrid.
**enter
Pobeda was considering flights to Skopje last year but then they gave up on those plans. Hopefully they review this decision. There is really a strong case for flights between Moscow and Skopje.
If there is such demand between Russia and Macedonia, then Aeroflot could always start flights.
Pobeda is better suited for the market.
With the current political relations between Russia and Macedonia at a low, don't expect any flights between these two countries any time soon.
bullshit, as if they stopped flying to Montenegro...
not to mention US
Agree with last anon completely. Thaw in relations does not mean there can be no flights, plus relations between Russia and Macedonia are not that bad.
I still remember people predicting how Skopje's "bubble will burst" and that its numbers would detract
I'm not sure how sustainable a model is based on subsiding a Hungarian airline. It works now while the money is flowing, but will it work forever?
Well after the subsidies ended for a number of routes they all stayed in the network, none were suspended. So I would say it's sustainable.
I guess the haters who were predicting that the airport's "bubble" would burst will have to wait.
There are a lot of Macedonians working in Western Europe, who are using the LC flights regulary, some of them comming back home twice per month..
Has Skopje managed to overtake Pristina in 2017? If it didn't I think it will happen in 2018.
SKP will have a great chance to overtake PRN this year. It would be excellent to see FR start flights.
Wizz Air is increasing flights to/from PRN!!
soon they will add more and I don't think SKP have a chance to overtake PRN.
But they are increasing only their flights from London from 2 to 3 per week.
It's interesting how the Macedonian government's incentives stimulated flights to Skopje yet Pristina Airport incentives have not really attracted many new airlines there.
sidnt someone tell that the gastos-reisebüro-clans have big influence in PRN
I think 2018 will be much more interesting and we will have three way competition between Skopje, Pristina and Ljubljana.
So what is the prediction for Skopje and Ohrid in 2018? What should the numbers look like at the end of the year?
I hope and expect that Skopje will reach 2 million passengers on its own this year.
If they can agree for Ryanair or easy jet to start flying to SKP, it would be more than enough and I would imagine SKP would go to 2+ mil pax without a problem.
Unfortunately, I doubt we will see Ryan in SKP as long as Wizz Air rules the skies.
well done Macedonia
Aegean would be a nice addition and a legacy airline.
I dont beleive we will see Greek carrier at SKP untill both governments settle the name issue between both countries.
There are some other planned.
Air Albania will start flying in 2018 and they have said they will launch Skopje. Also subsidies will be given for Sarajevo-Podgorica-Skopje route and Sofia-Skopje route, but I don't know which airline.
@ Anoantmous 9.37
They said the same as well but I think the name issue will be resolved by the summer
http://www.exyuaviation.com/2017/12/aegeans-skopje-flights-hinge-on-state.html
@9.38 what about those long haul flights from Skopje to the US they mentioned with Turkish Airlines? ;)
Onur Air said it was interested in flying to Macedonia too. They held talks with the government.
This addition of airlines is really needed to diversify the offer.
@ Anonymous January 2, 2018 at 9:38 AM
I think next we will see Montenegro Airlines fly that route from TGD to Skopje.
Aegean will start flights to Sarajevo if the name issue of the airport is not resolved in time. They have SJJ as back up instead of SKP.
Hopefully those Tel Aviv flights start this year.
Does Wizz have any plans to expand this year from Skopje?
It will depend if they win the subsidies contract. All their expansion in the last 6 years has been based on that.
Not all.
Great to see so much development in Macedonian aviation lately.
Will Small Planet Airlines be flying WAW-OHD that the airport CEO announced? Or will it be another airline? Small Planet flies Katowice-Ohrid.
probably (because its the same tour operator)
No new announcements has been done so far for new flights from SKP for 2018 which makes me think that we will not see new flights/destinations in the first half of 2018. Even if something will get announced soon, those flights might start flying in the second half of the year. And I'm not sure how much more naturally the airport will be able to progress. What I'm thinking is still missing a bit LCC wise is maybe another flight to either Bologna or Sicily and someone needs to try Madrid and/or Valencia. Germany is well filled up along with the Scandinavian countries. I doubt we can see some other UK destination anytime soon. About the "eastern" block, Warsaw for sure can be tried. Moscow is long shot at this moment I think. Athens will be great addition but that is more political then economical decision. Ankara might work too and/or Ohrid-Istanbul flights can work out too.
+1 agree
Madrid and/or Valencia are far more likely to be tried from BEG or ZAG than from SKP.
If so far no business case exists for an airline trying these routes to BEG and ZAG I seriously doubt it has a chance in SKP.
haha, the same was said with BCN and guess what ....
Macedonian CAA said late last year that that the government is negotiating for two new "interesting" destinations from SKP.
Tel Aviv and Warsaw?
I'm surprised that Wizz Air has not tried Warsaw-Skopje.
More regular airlines with flights to actual hubs please.
LOT, Aegean, Onur Air and Arkia in 2018 would be a job well done.
we really need is flights to major hubs like LHR, CDG, FRA, MUC, AMS, FCO, BRU.
Large global hubs, we are more than covered from LCC airports away from major cities.
That should be the focus of the government this new year.
Dejan 2 January 2018 at 11:40
Anonymous at 11:25 AM
+10 :)
At least one of this please, i vote for Klm cityhoper to AMS, FCO and BRU are simular as VIE or ZRH, LHR visa issue, FRA and CDG are good but i think AMS is best airport for conections.
When and if they change the airport name there could be a boom in charter flights from Greece over the summer in addition to regular Athens flights.
I culdnt agree more on this. charters to Crete and Mykonos
Mykonos is a very expensive destinations. But Crete is a far more affordable and thus probable destination.
ATH too of course and then use the boat to go to any island.
Plans for 5th plane by Wizz?
They based their 4th plane in SKP just 6 months ago. I think it is too early for them to base a fifth plane. It would mean they would have to launch 3-4 new routes. Maybe if they win the new subsidy tender.
I'm rather expecting swapping one of the A320 with A321 for the high yield routes such as Malmo and London then basing 5th plane in SKP as a next action by W6.
I think W6 would have announced it by now and the resulting increase in flights and destinations.
2018 could be a year to consolidate, increase loadfactors and yields and start expanding again in 2019.
Just my 2cents
may be too early but if there is another round of subsidies they will apply for it im sure
After starting Ohrid I really hope Brussels Airlines will consider Skopje.
Brussels hasn't really proven too successful from ex-Yu cities.
If the Greece-Macedonia name issue is resolved, EU negotiations will start which means quite a lot of demand on top of the existing Brussels passengers. Not to mention that SN can 'steal' some of the OS transfer passengers to North America.
2018 is gonna be a great year for Macedonian airports.
Well done, Macedonia!
We're proud of you!
Greetings from Sofia!
Congratulations to SKP in particular, its transformation has been phenomenal.
I think INI's massive growth has certainly cut some of the growth potential for SKP.
Also the bloodbath between W6 and FR in SOF attracts some travelers who would otherwise have flown from SKP.
add the difference in frequencies, for example Milan... 2x weekly (INI, SKP) vs 2-3 daily (SOF)
SOF growth is crazy!
I really hope it is sustainable and not only because of price dumping.
The growth at SOF is mainly because of the price dumping, but with time I believe it will become sustainable. People in the region are starting to learn that travelling with plane is cheaper and more convenient than with car or bus. For example on some routes from SOF you will see that 90% of the PAX are gypsies living in Germany - example Dortmund and Cologne routes.
INI - success story meaning less dependence on BEG. Slowly competing with SKP.
SKP - success story. Room for more flights to Germany.
SOF - will most likely continue growth in 2018. Increased frequencies + capacity e.g. LH, TK, A3.
The trio is doing great.
j sh 2 January 2018 at 11:41
Think if Macedonia build new rout autobahn, Skopje-Rep.Kosova, 30% more
I would prefer if SKP would try and attract some European legacies like Air France, KLM, British Airways, Lufthansa that can offer good onward connections.
No market for that. Better try harder with new LCC (Ryan, Easy...)
Great news for Macedonia.
I'm really interested to know how Qatar Airways is performing on its Skopje flights. Anyone have some loads?
Maybe in 2018 we get Istanbul-Skopje-New York flights. That would be fantastic.
I don't see what's funny...
It's funny because some on here believe SKP has more chance than ZAG or DBV.
Skopje got flights to Dubai before Zagreb. Don't see why it would not get flights to the US first either.
Skopje is fast becoming a major metropolis of southeastern Europe so I don't see why it shouldn't have fights to North America.
Like we all know, before receiving flights to America, SKP needs to be connected to business Europe:
LHR, CDG, AMS.
It is also weird that MUC and BRU never proved to be successful :(
Growth would explode if Macedonia had a national carrier.
There is no need for it anymore. All the main markets have been covered.
Congrats SKP! I assume 2018 will be even better. Fingers crossed for new destinations!
But I still didn't understand how many pax there were in total solely from SKP..


Today I make every day a play day by balancing my time between my fabulous home studio and showroom, tending my lush West Coast garden, volunteering at two local Arts Councils and nurturing loving relationships with my family and friends. It is an ideal lifestyle in which to nurture the artist within.
My husband and I run a full time business called Turning Point Arts. He works in the digital world in his pristine studio and I muck with clay in mine (not so pristine!). We are having fun with our creations and love to welcome folks to visit our studios, enjoy our garden and purchase our goods and services.
When someone chooses a handmade piece of functional pottery, they are acquiring a small piece of that artist's soul. The maker has put time, love and energy into the piece that is permanently embedded within. It is a great honour to have my pieces become part of the user's daily rituals of nourishing their family, celebrating life's milestones and the sharing of their experiences around the dinner table.
When people surround themselves with things they love, whether it be a functional pottery piece or a beautiful clay artifact for their home, they are rewarded with a sense of joy and pleasure. What could be more important, as an artist, than to be a small part of that world?
Making art is a pleasure, making beautiful things for everyday use is an honour.


text:
La Mount Sneffels Wilderness est une aire protégée américaine située dans les comtés d'Ouray et de San Miguel, au Colorado. Fondée en 1980, elle protège  dans la forêt nationale d'Uncompahgre.

Liens externes

Wilderness relevant du Service des forêts des États-Unis au Colorado
Aire protégée créée en 1980
Comté d'Ouray
Comté de San Miguel (Colorado)
Forêt nationale d'Uncompahgre

redpajama_set_name: RedPajamaWikipedia


Caribbean jazz is enjoying a burgeoning Renaissance buttressed by young, up-and-coming talent as well as a growing demand for alternatives to seasonal festival music. The St. Lucia Jazz Festival celebrates its 25th edition this April through May, and Tobago Jazz, also in April, has become a marked event on the calendar of international jazz lovers. With its multi-cultural and diverse citizenry, it is no wonder that the Caribbean has spawned several flavors of jazz, including Kaiso Jazz, Reggae Jazz and Pan Jazz. The latter has the distinction of tempering the cool sounds and soothing melodies that traditional Jazz is known for, with the excitement of Caribbean Pan music. Among the jazz musicians hailing from Trinidad & Tobago are Kaiso jazz pioneer and pianist Clive "Zanda" Alexander, folk jazz icon Andre Tanker, accomplished pannist and arranger Etienne Charles and the late Ralph MacDonald, a versatile percussionist.
Give Pathways a listen below, ahead of its Friday release through Revive Music.


text:
Bald Eagle, Agustin Esmoris, Shutterstock
Endangered Species Act Faces New Threat That Puts Declining Birds at Greater Risk
Media Contact: Jordan Rutter, Director of Public Relations, 202-888-7472 | jerutter@abcbirds.org | @JERutter
Expert Contact: Steve Holmer, Vice President of Policy, 202-888-7490 | sholmer@abcbirds.org
The Northern Spotted Owl is one of many species that has benefitted from a strong Endangered Species Act. New ESA rules will substantially weaken protections for wildlife. Photo by Mike Parr
(Washington, D.C., December 17, 2020) The Administration today released a final rule that allows for extensive exemptions of critical habitat under the Endangered Species Act (ESA) that will substantially weaken protections for wildlife. This rule is likely to be especially detrimental to species that depend on federal lands, such as the Northern Spotted Owl, Marbled Murrelet, and Western Yellow-billed Cuckoo.
"Even in its final days, the Administration continues its war on birds," says Mike Parr, President of American Bird Conservancy (ABC). "Needless to say, we will fight back on their behalf."
"This new critical habitat rule is yet another hurdle in the race to prevent birds from going extinct," says Steve Holmer, ABC's Vice President of Policy. "Species in trouble, such as the Northern Spotted Owl and Marbled Murrelet, need additional habitat provided through old-growth restoration under the Northwest Forest Plan. Instead, this rule puts them both at greater risk of further habitat loss."
ABC has endorsed a comment letter by the environmental law organization Earthjustice that includes the following:
"We strongly oppose the proposed regulation, which would create unnecessary and illegal obstacles to achieving the ESA's goal to conserve 'the ecosystems upon which endangered species and threatened species depend.' … the proposal would unlawfully prevent [the U.S. Fish and Wildlife Service] from exercising statutorily conferred discretion to make decisions whether to designate 'particular area[s] as critical habitat' on a case-by-case basis.… The proposed regulation would impermissibly grant economic considerations outsized weight in decisions about habitat that should prioritize species' recovery needs and be driven by the best available science. Moreover, it would make it easier to strip protection from essential habitat located on federal lands, where designation confers the greatest conservation benefits."
American Bird Conservancy is a nonprofit organization dedicated to conserving birds and their habitats throughout the Americas. With an emphasis on achieving results and working in partnership, we take on the greatest problems facing birds today, innovating and building on rapid advancements in science to halt extinctions, protect habitats, eliminate threats, and build capacity for bird conservation. Find us on abcbirds.org, Facebook, Instagram, and Twitter (@ABCbirds).
Search Our Database of Past Press Releases and Stories
*You must make at least one selection from any one of the following fields. Results will appear below the form.
PRIOR DATE :
AFTER DATE :
El Silencio Reserve Expansion Benefits…
Groups Challenge Current Administration's Latest…
Owl Extinction Risk Grows as…
Administration Makes Last-gasp Assault on…
Conservationists and Communities Rally to…
Review Begins for Permitting Incidental…
Barba Azul Nature Reserve: Bolivia's…
Endangered Species Act Faces New…


Seeking the best wholesale christmas ornament suppliers with good quality and affordable prices from DHgate Australia site. We provide a variety of christmas snowman ornament sale online supplied by reliable sellers around the world. Helping you step by step of finding cheap rhinestone christmas ornament is what we aim for. Enjoy exploring our range of christmas stocking ornament shop and find the dog christmas ornament for sale from au.dhgate.com with free delivery to Australia.


text:
Our Non-Expeditions to the Moon and Mars
Look closely: President Bush's space initiative is more about robots than astronauts.
Richard A. Muller archive page
Many people think that in his January 14 speech on the space program, President George Bush announced a new initiative to return humans to the moon and soon afterwards send them to Mars. He didn't. What he announced was a cancellation of the space shuttle and a reduction of the United States' long-term commitment to the International Space Station. For the immediate future, he proposed an expanded program of unmanned exploration of space, with an emphasis on the planets and the solar system. I know-that's not what most people read in the headlines of their papers. So let's look at President Bush's speech closely, with particular attention to the dates when missions will fly.
The president used much of his speech to describe the great accomplishments of the space program. These included practical applications-unmanned satellites used to predict weather, to communicate, and to determine location (the Global Positioning System). But his real emphasis was on NASA's scientific achievements, including our growing exploration of the universe. He mentioned the Apollo missions to the moon only in passing. He talked of images taken by telescopes, and knowledge sent back by "robotic explorers" including Spirit, the Martian rover. His emphasis on unmanned projects was surprising and significant. And he was right; the unmanned program is NASA's most glorious achievement over the last three decades. Moreover, it is this aspect of space exploration that most excites the public. The Astronomy Picture of the Day fascinates schoolchildren and adults alike, many of whom download the images for screen savers. In contrast, stories of astronauts floating for months in the space station are considered so boring they don't even make the back pages of newspapers, let alone the evening news.
Just as important in President Bush's speech were his omissions. He made no mention of industry in space-of the possibility of rounder ball bearings or purer semiconductors. He made no reference to space travel so cheap that it becomes commonplace. Those ancient and hopeless goals, used in the original justification of the shuttle program, were abandoned, and for that I am thankful. They were never realistic, never made economic sense, and they interfered with legitimate science and exploration programs.
The greatest achievements in President Bush's list did not relate in any compelling way to humans in space. Yes, the Hubble Space Telescope was launched and serviced by the shuttle, but most scientists believe that the telescope program would have accomplished even more per dollar spent if it had been designed and executed separately from the manned space program. Repairing and extending the life of this system using the shuttle is arguably more expensive than sending a new satellite aloft, particularly since the Hubble telescope had to be made safe for astronauts to be near. The military has launched spy telescopes for decades without need for human servicing. How big were they? Basic optics tells us that a telescope's resolution depends on the diameter of its mirror. Do the simple math and you'll find that the ability read a license plate from an altitude of 500 kilometers requires a mirror 3 meters across; the Hubble's mirror is 2.4 meters.
President Bush announced that the shuttle will continue until 2010-but that's only six more years of operation. He is ending the shuttle program. In its remaining life, the shuttle's main goal will be to "complete" the International Space Station, to "finish what we have started."
Will anyone take that to be an enthusiastic endorsement of the space station? How will our 15 international collaborators interpret his word "finish"? The only value of the space station that President Bush cited was study of the biology of human endurance in a weightless environment. He mentioned no other scientific purpose, and rightly so. Most scientists launching space experiments prefer a satellite isolated from human pollution and noise, and unencumbered by the added expense of making it safe for humans to work around.
The replacement for the shuttle, the "Crew Exploration Vehicle," will be operational "no later than 2014," the president said. There may be four years, 2010 to 2014, when the U.S. can't fly to the space station. Is that a golden opportunity for Russia to take over the business of shuttling people and cargo to the station? Or is it a signal that it is time for our 15 collaborators to cut their losses, too? I'm guessing that by the time the Crew Exploration Vehicle is ready to go there, the space station will have long since been abandoned.
Before the Columbia tragedy, the Hubble Space Telescope had been scheduled for a repair and upgrade visit in 2005. Now, however, NASA is asking whether such a mission is worth the risk to astronauts. Instead, NASA is considering spending $300 million to develop a robotic tug that will attach itself to the telescope and crash it into the ocean, to make sure the instrument's return to earth does no harm to humans. The thought of destroying Hubble has triggered much sound and fury among scientists. There is great irony here, for the dispute illustrates NASA's success in addicting scientists to a vehicle that they never wanted. It is not the Mars mission that threatens Hubble-it is the cancellation of the shuttle, something that should be done regardless of Mars.
Here are some key points. First, $300 million to deorbit Hubble safely would represent the most money ever spent per life saved in the history of mankind, by far. A mere million dollars spent on improving ambulance service in the United States would save many more lives; even better would be sending medicine to impoverished regions of the world. Second, Hubble was designed to be human-serviceable not to save money, but to provide a scientific excuse for the shuttle. It is arguably cheaper to start building next-generation astronaut-free systems than to continue servicing the present telescope. Third, a trip to Hubble is more dangerous than a trip to the space station, because it offers no chance to repair tiles damaged on launch.
Either mission risks the lives of astronauts, and the decision will not be easy. But if the decision is between a dangerous trip to the space station, with no scientific return, and a more dangerous trip to Hubble, with enormous return, I think the United States will decide for Hubble. My reading of President Bush's speech is that the only achievement worth risking human life for is knowledge and exploration-and for that, you can't beat Hubble.
President Bush's speech has been widely characterized as a plan to send astronauts to the moon and Mars. But the goal for reaching the moon is 2020, and for Mars it is 2030. This isn't a plan, or a program-it's more like a long-term dream.
Let's look at what will actually happen by the end of this decade under President Bush's plan. The shuttle will be cancelled, and the space station will be abandoned. Only one of the goals announced by Bush could take place within his presidency. Back to his speech: "Beginning no later than 2008, we will send a series of robotic missions to the lunar surface to research and prepare for future human exploration. Robotic missions will serve as trailblazers, the advanced guard to the unknown. Probes, landers, and other vehicles of this kind continue to prove their worth, sending spectacular images and vast amounts of data back to Earth."
President Bush is right. The space shuttle and the space station deserve termination. The true heart of his proposal is the elimination of these programs, and the substitution of robotic exploration. We will look before we leap-that is, fly telescopes built for visible, infrared, ultraviolet, microwave, x-ray, and gamma ray wavelengths-to see what we can see from Earth orbit. Then we will send robots to explore whatever robots can explore. Hold back on the astronauts until we have goals that need them. Let science be the guide, rather than a presumed human need to step off the surface of the Earth.
Some people will say I am too optimistic, that I am reading too much in between the lines. I think I am just ignoring the headlines to read the actual lines themselves. President Bush gave us a great plan. Let's recognize that and go with it. But let's be careful to make sure that politicians and bureaucrats do not hijack President Bush's wonderful vision of robotic space exploration and degrade it into a listless program that merely launches astronauts to places where telescopes and probes could do a safer, quicker, better, and cheaper job.


text:
namespace ASC.Mail.Core.Entities
{
    public class Filter
    {
        public int Id { get; set; }
        public int Tenant { get; set; }
        public string User { get; set; }
        public bool Enabled { get; set; }
        public string FilterData { get; set; }
        public int Position { get; set; }
    }
}

redpajama_set_name: RedPajamaGithub