text:
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
(function (global){
(function () {
    "use strict";

    /* global window, global, self */

    var glob = typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" && self,
        runOnce = false;

    var utils = require('./modules/utils.js'),
        css = require('./modules/css.js'),
        position = require('./modules/position.js'),
        traverse = require('./modules/traverse.js'),
        manipulation = require('./modules/manipulation.js'),
        events = require('./modules/events.js'),
        data = require('./modules/data.js');

    if ( !runOnce ) {
        // Attach uniq ID - This is to keep reference to bind / unbind events and reference for data cache
        wrapper.uuid = 'DomQuery' + String(Math.random()).substring(2) + Date.now();
        wrapper.guid = 0;

        // Attach utils and other functions to the core
        utils.extend(wrapper, utils);
        // Can remove unwanted functions here if needed, but utils is compulsory
        utils.extend(DomQueryWrapper.prototype, utils, css, position, traverse, manipulation, events, data);

        // This is to emulate jQuery plugin, hopefully able to import some jQuery plugins this way
        wrapper.fn = DomQueryWrapper.prototype;

        runOnce = true;
    }

    function DomQueryWrapper(domSelector) {
        var foundObjects = [];
            //regExpHtml = /^$/,
            //regExpID = /^$/,
            //regExpClass = /^$/;

        // Depending on regExp
        // if html append and pass back
        // if instance return instance
        if ( "string" === typeof domSelector ) {
            foundObjects = document.querySelectorAll(domSelector);
        } else if ( utils.isArray(domSelector) ) {
            foundObjects = domSelector;
        } else if ( "object" === typeof domSelector ) {
            foundObjects.push(domSelector);
        } else {
            return this;
        }

        // Attach objects found
        this.length = foundObjects ? foundObjects.length : 0;

        if ( foundObjects ) {
            for(var i = 0 ; i < foundObjects.length ; i++ ) {
                this[i] = foundObjects[i];
            }
        }

        return this;
    }

    function wrapper(domSelector) {
        return new DomQueryWrapper(domSelector);
    }

    glob.DomQuery = glob.$ = wrapper;
})();
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"./modules/css.js":2,"./modules/data.js":3,"./modules/events.js":4,"./modules/manipulation.js":6,"./modules/position.js":7,"./modules/traverse.js":8,"./modules/utils.js":9}],2:[function(require,module,exports){
(function () {
    "use strict";

    /* global DomQuery */

    var helper = require('./helper.js');

    function Css() {
        this.addClass = function(className) {
            var i = 0;

            if ( helper.stringNotBlank(className) ) {
                for ( ; i < this.length ; i++ ) {
                    if ( !helper.matchString(this[i].className, className) ) {
                        this[i].className += " " + className;
                    }
                }
            }

            return this;
        };
        this.removeClass = function(className) {
            var i = 0;

            if ( helper.stringNotBlank(className) ) {
                for ( ; i < this.length ; i++ ) {
                    if ( this[i].className ) {
                        this[i].className = this[i].className
                                                   .replace(
                                                        new RegExp('(\\s|^)'+className+'(\\s|$)'), ""
                                                    );
                    }
                }
            }

            return this;
        };
        this.hasClass = function(className) {
            var i = 0;

            if ( helper.stringNotBlank(className) ) {
                for ( ; i < this.length ; i++ ) {
                    if ( this[i].className &&
                         helper.matchString(this[i].className, className) ) {
                        return true;
                    }
                }
            }

            return false;
        };
        this.css = function() {
            var styles = {},
                outputStyles = {},
                prop = null,
                i = 0;

            if ( this.length > 0 ) {
                if ( arguments.length === 1 && typeof arguments[0] === "string" ) {
                    return this[0].style[helper.camelCase(arguments[0])];
                } else if ( arguments.length === 1 && this.isArray(arguments[0]) ) {
                    for ( ; i < arguments[0].length ; i++ ) {
                        outputStyles[arguments[0][i]] = this[0].style[helper.camelCase(arguments[0][i])];
                    }
                    return outputStyles;
                } else if ( arguments.length === 1 && typeof arguments[0] === "object" ) {
                    for ( prop in arguments[0] ) {
                        styles[helper.camelCase(prop)] = arguments[0][prop];
                    }
                } else if ( arguments.length === 2 ) {
                    styles[helper.camelCase(arguments[0])] = arguments[1];
                }

                for ( prop in styles ) {
                    for ( i = 0 ; i < this.length ; i++ ) {
                        this[i].style[prop] = styles[prop];
                    }
                }
            }

            return this;
        };
        this.styles = function() {
            if ( this.length > 0 ) {
                return helper.getStyles(this[0]);
            }

            return;
        };
    }

    module.exports = new Css();
}());
},{"./helper.js":5}],3:[function(require,module,exports){
(function () {
    "use strict";

    /* global window, global, self, navigator, DomQuery */

    var helper = require('./helper.js');

    function Data() {
        this.data = function() {
            var i = 0,
                output = {},
                item;

            if ( this.length > 0 ) {
                if ( 1 === arguments.length && this.isPlainObject(arguments[0]) ) {
                    // Assign via object
                    for ( ; i < this.length ; i++ ) {
                        if ( "undefined" === typeof this[i][DomQuery.uuid]) {
                            this[i][DomQuery.uuid] = [];
                        }
                        for ( item in arguments[0] ) {
                            this[i][DomQuery.uuid].push({
                                guid: item,
                                type: 'data',
                                handler: arguments[0][item],
                                args: null, 	// For consistency
                                capture: null	// For consistency
                            });
                        }
                    }
                } else if ( 1 === arguments.length ) {
                    // Return data from first object key
                    if ( "undefined" === typeof this[0][DomQuery.uuid]) {
                        this[0][DomQuery.uuid] = [];
                    }

                    for ( item in this[0][DomQuery.uuid] ) {
                        if ( this[0][DomQuery.uuid][item].guid === arguments[0] ) {
                            return this[0][DomQuery.uuid][item].handler;
                        }
                    }
                    return;
                } else if ( 2 === arguments.length ) {
                    // Assign using key value
                    for ( ; i < this.length ; i++ ) {
                        if ( "undefined" === typeof this[i][DomQuery.uuid]) {
                            this[i][DomQuery.uuid] = [];
                        }
                        this[i][DomQuery.uuid].push({
                            guid: arguments[0],
                            type: 'data',
                            handler: arguments[1],
                            args: null, 	// For consistency
                            capture: null	// For consistency
                        });
                    }
                } else {
                    // Return first object all data keys
                    for ( item in this[0][DomQuery.uuid] ) {
                        if ( 'data' === this[0][DomQuery.uuid][item].type ) {
                            output[this[0][DomQuery.uuid][item].guid] = this[0][DomQuery.uuid][item].handler;
                        }
                    }

                    return output;
                }
            }

            return this;
        };
    }

    module.exports = new Data();
}());
},{"./helper.js":5}],4:[function(require,module,exports){
(function () {
    "use strict";

    /* global DomQuery */

    var isReady = false,
        readyCallback = null;

    var helper = require('./helper.js');

    function Events() {
        this.ready = function(callback) {
            /* global DomQuery, readyCallback, isReady */
            if ( DomQuery.isFunction(callback) ) {
                readyCallback = callback;
                if ( isReady ) {
                    callback.apply(this[0]);
                } else {
                    setTimeout(this.ready, 1);
                }
            }
        };
        this.click = function() {
            helper.bindEvent(this, 'click', helper, arguments);
            return this;
        };
        this.dblclick = function() {
            helper.bindEvent(this, 'dblclick', helper, arguments);
            return this;
        };
        this.mousemove = function() {
            helper.bindEvent(this, 'mousemove', helper, arguments);
            return this;
        };
        this.mouseover = function() {
            helper.bindEvent(this, 'mouseover', helper, arguments);
            return this;
        };
        this.mouseout = function() {
            helper.bindEvent(this, 'mouseout', helper, arguments);
            return this;
        };
        this.mouseup = function() {
            helper.bindEvent(this, 'mouseup', helper, arguments);
            return this;
        };
        this.mousedown = function() {
            helper.bindEvent(this, 'mousedown', helper, arguments);
            return this;
        };
        this.mouseleave = function() {
            helper.bindEvent(this, 'mouseleave', helper, arguments);
            return this;
        };
        this.mouseenter = function() {
            helper.bindEvent(this, 'mouseenter', helper, arguments);
            return this;
        };
        this.hover = function() {
            var callbackIn = null,
                callbackOut = null;

            if ( arguments.length === 2) {
                callbackIn = arguments[0];
                callbackOut = arguments[1];
            } else if ( arguments.length === 1 ) {
                callbackIn = arguments[0];
                callbackOut = arguments[0];
            }

            if ( arguments.length ) {
                helper.bindEvent(this, 'mouseleave', helper, [callbackIn]);
                helper.bindEvent(this, 'mouseenter', helper, [callbackOut]);
            }

            return this;
        };
        this.keyup = function() {
            return helper.bindEvent(this, 'keyup', helper, arguments);
        };
        this.keydown = function() {
            return helper.bindEvent(this, 'keydown', helper, arguments);
        };
        this.keypress = function() {
            return helper.bindEvent(this, 'keypress', helper, arguments);
        };
        this.change = function() {
            return helper.bindEvent(this, 'change', helper, arguments);
        };
        this.blur = function() {
            return helper.bindEvent(this, 'blur', helper, arguments);
        };
        this.focus = function() {
            return helper.bindEvent(this, 'focus', helper, arguments);
        };
        this.focusin = function() {
            return helper.bindEvent(this, 'focusin', helper, arguments);
        };
        this.focusout = function() {
            return helper.bindEvent(this, 'focusout', helper, arguments);
        };
        this.unload = function() {
            return helper.bindEvent(this, 'unload', helper, arguments);
        };
        this.select = function() {
            return helper.bindEvent(this, 'select', helper, arguments);
        };
        this.submit = function() {
            return helper.bindEvent(this, 'submit', helper, arguments);
        };
        this.scroll = function() {
            return helper.bindEvent(this, 'scroll', helper, arguments);
        };
        this.resize = function() {
            return helper.bindEvent(this, 'resize', helper, arguments);
        };
        this.off = function() {
            // 0 - event, 1 - selector, 2 - handler
            var eventName = null,
                domSelector = null,
                handler = null,
                i = 0;

            if ( this.length > 0 ) {
                if ( arguments.length === 3 &&
                     "function" === typeof arguments[2]) {
                    eventName = arguments[0];
                    domSelector = arguments[1];
                    handler = arguments[2];
                } else if ( arguments.length === 2 ) {
                    eventName = arguments[0];
                    domSelector = arguments[1];
                } else if ( arguments.length === 1 ) {
                    eventName = arguments[0];
                }

                for ( ; i < this.length ; i++ ) {
                    if ( !domSelector ||
                         (helper.stringNotBlank(domSelector) && helper.matchesSelector(this[i], domSelector)) ) {
                        if ( "undefined" !== typeof this[i].removeEventListener ) {
                            helper.unbindEvent(this[i], eventName ? eventName : null, handler ? handler : null);
                        }
                    }
                }

            }

            return this;
        };
        this.trigger = function(eventName) {
            /* global DomQuery */
            var i = 0,
                j = 0,
                params = [];

            if ( this.length > 0 ) {
                if ( helper.stringNotBlank(eventName) ) {
                    params = Array.prototype.slice.call(arguments, 1);
                    for ( ; i < this.length ; i++ ) {
                        for ( j = 0 ; j < this[i][DomQuery.uuid].length ; j++ ) {
                            if ( eventName === this[i][DomQuery.uuid][j].eventName ) {
                                this[i][DomQuery.uuid][j].handler.apply(this[i], params);
                            }
                        }
                    }
                }
            }
            return this;
        };
    }

    var DOMReady = function() {
        if ( "undefined" !== typeof document.removeEventListener ) {
            document.removeEventListener("DOMContentLoaded", DOMReady, false);
        }

        if ( null !== readyCallback ) {
            readyCallback.apply(this);
        }

        isReady = true;
    };

    if ( "undefined" !== typeof document.addEventListener ) {
        document.addEventListener("DOMContentLoaded", DOMReady, false);
    }

    module.exports = new Events();
}());
},{"./helper.js":5}],5:[function(require,module,exports){
(function () {
    "use strict";

    /* global window */

    function Helper() {
        this.matchString = function(haystack, needle) {
            return null !== haystack.match(new RegExp('(\\s|^)'+needle+'(\\s|$)'));
        };
        this.stringNotBlank = function(str) {
            return str && "" !== str.trim();
        };
        this.camelCase = function(str) {
            return str.replace( /^-/, "" ) // Remove first hyphen
                      .replace( /-([\da-z])/gi, function(all, letter) {
                        return "" !== letter ? letter.toUpperCase() : "";
                      });
        };
        this.pushUniq = function(list, item) {
            var i = 0;

            for ( ; i < list.length ; i++ ) {
                if ( list[i] === item ) {
                    return;
                }
            }

            list.push(item);
        };
        this.wrapper = function(newObjects) {
            /* global DomQuery */
            return new DomQuery(newObjects);
        };
        this.getStyles = function(obj) {
            if ( "undefined" !== window.getComputedStyle ) {
                return window.getComputedStyle(obj);
            } else if ( "undefined" !== obj.currentStyle ) {
                return obj.currentStyle;
            }
        };
        this.findOffset = function(obj) {
            var l = 0,
                t = 0;
            if ( obj.offsetParent ) {
                do {
                    t += obj.offsetTop;
                    l += obj.offsetLeft;
                    obj = obj.offsetParent;
                } while ( obj );
            }

            return {
                top: t,
                left: l
            };
        };
        this.unbindEvent = function(ele, eventName, callback) {
            /* global DomQuery */
            var i = 0,
                eventObj = null;

            if ( "undefined" !== typeof ele[DomQuery.uuid] &&
                 "undefined" !== typeof ele.removeEventListener ) {

                eventObj = ele[DomQuery.uuid];

                do {
                    if ( !callback ||
                         (!callback && !eventName) ||
                         (!callback && eventName === eventObj[i].type) ||
                         (callback.guid === eventObj[i].guid && eventName === eventObj[i].type) ) {

                        ele.removeEventListener(eventObj[i].type, eventObj[i].handler, eventObj[i].capture);
                        eventObj.splice(i,1);
                    } else {
                        i++;
                    }
                } while ( i < eventObj.length && eventObj.length );
            }
        };
        this.bindEvent = function(that, eventName, helper, argsEvent) {
            /* global DomQuery */
            var	output = [],
                callback = null,
                callbackStore = null,
                args = null,
                i = 0;

            if ( argsEvent.length === 2 ) {
                argsEvent = argsEvent[0];
                callback = argsEvent[1];
            } else if ( argsEvent.length === 1 ) {
                callback = argsEvent[0];
            }

            if ( that.length > 0 &&
                 argsEvent.length > 0 &&
                 that.isFunction(callback) ) {

                if ( "undefined" === typeof callback.guid ) {
                    callback.guid = ++DomQuery.guid;
                }

                for ( ; i < that.length ; i++ ) {
                    if ( that[i].addEventListener ) {
                        if ( "undefined" === typeof that[i][DomQuery.uuid]) {
                            that[i][DomQuery.uuid] = [];
                        }

                        if ( null !== args ) {
                            callbackStore = callback.bind(that[i], args);
                        } else {
                            callbackStore = callback.bind(that[i]);
                        }

                        that[i][DomQuery.uuid].push({
                            guid: callback.guid, // or data key for data cache
                            type: eventName,	 // event name or "data" for data cache
                            handler: callbackStore,
                            args: args,
                            capture: false
                        });

                        that[i].addEventListener(eventName, callbackStore, false);

                        output.push(that[i]);
                    }
                }
            }

            return output;
        };
        this.matchesSelector = function( ele, domSelector ) {
            if ("function" === typeof ele.oMatchesSelector) {
                return ele.oMatchesSelector(domSelector);
            }
            else if ("function" === typeof ele.msMatchesSelector) {
                return ele.msMatchesSelector(domSelector);
            }
            else if ("function" === typeof ele.webkitMatchesSelector) {
                return ele.webkitMatchesSelector(domSelector);
            }
            else if ("function" === typeof ele.mozMatchesSelector) {
                return ele.mozMatchesSelector(domSelector);
            }
            else {
                var matches = (ele.document || ele.ownerDocument).querySelectorAll(domSelector);
                var i = 0;

                while (matches[i] && matches[i] !== ele) {
                    i++;
                }

                return matches[i] ? true : false;
            }
            return false;
        };
    }

    module.exports = new Helper();
})();
},{}],6:[function(require,module,exports){
(function () {
    "use strict";

    /* global DomQuery */

    var helper = require('./helper.js');

    function Manipulation() {
        this.remove = function(domSelector) {
            var i = 0;

            for ( ; i < this.length ; i++ ) {
                if ( !domSelector ||
                     (helper.stringNotBlank(domSelector) && helper.matchesSelector(this[i], domSelector)) ) {
                    this[i].parentNode.removeChild(this[i]);
                }

            }

            return this;
        };
        this.empty = function(domSelector) {
            var i = 0;

            for ( ; i < this.length ; i++ ) {
                if ( !domSelector ||
                     (helper.stringNotBlank(domSelector) && helper.matchesSelector(this[i], domSelector)) ) {
                    this[i].innerHTML = '';
                }

            }

            return this;
        };
        this.attr = function() {
            var attrs = {},
                output = {},
                prop = null,
                i = 0;

            if ( arguments.length === 1 && typeof arguments[0] === "string" ) {
                return this[0].getAttribute(arguments[0]);
            } else if ( arguments.length === 1 && this.isArray(arguments[0]) ) {
                for ( ; i < arguments[0].length ; i++ ) {
                    output[arguments[0][i]] = this[0].getAttribute(arguments[0][i]);
                }
                return output;
            } else if ( arguments.length === 1 && typeof arguments[0] === "object" ) {
                for ( prop in arguments[0] ) {
                    attrs[prop] = arguments[0][prop];
                }
            } else if ( arguments.length === 2 ) {
                attrs[arguments[0]] = arguments[1];
            } else {
                // Return all attributes
                for ( ; i < this[0].attributes.length ; i++ ) {
                    output[this[0].attributes[i].nodeName] = this[0].attributes[i].value;
                }
                return output;
            }

            for ( prop in attrs ) {
                for ( i = 0 ; i < this.length ; i++ ) {
                    this[i].setAttribute(prop, attrs[prop]);
                }
            }

            return this;
        };
    }

    module.exports = new Manipulation();
}());
},{"./helper.js":5}],7:[function(require,module,exports){
(function () {
    "use strict";

    /* global DomQuery */

    var helper = require('./helper.js');

    function getOuterDimension(styles) {
        var outerHeight = 0,
            outerWidth = 0;

        if ( styles ) {
            outerHeight = parseFloat(styles.height) +
                          parseFloat(styles.paddingTop) +
                          parseFloat(styles.paddingBottom) +
                          parseFloat(styles.borderTopWidth) +
                          parseFloat(styles.borderBottomWidth);

            outerWidth = parseFloat(styles.width) +
                         parseFloat(styles.paddingLeft) +
                         parseFloat(styles.paddingRight) +
                         parseFloat(styles.borderLeftWidth) +
                         parseFloat(styles.borderRightWidth);
        }

        return { outerHeight: outerHeight, outerWidth: outerWidth };
    }

    function getScrollDimension(that, px, direction) {
        if ( px ) {
            if ( $.isNumeric(px) ) {
                if ( direction ) {
                    that.scrollTop = parseFloat(px) || 0;
                }   else {
                    that.scrollLeft = parseFloat(px) || 0;
                }
            }
            return that;
        } else {
            return (direction ? parseFloat(that.scrollTop) : parseFloat(that.scrollLeft)) || 0;
        }
    }

    function setRelative(that) {
        if ( 'absolute' !== $(that).css('position') &&
             'fixed' !== $(that).css('position') ) {
            $(that).css('position', 'relative');
        }
    }

    function Position() {
        this.height = function() {
            if ( this.length > 0 ) {
                return parseFloat(helper.getStyles(this[0]).height) || 0;
            }

            return;
        };
        this.width = function() {
            if ( this.length > 0 ) {
                return parseFloat(helper.getStyles(this[0]).width) || 0;
            }

            return;
        };
        this.innerHeight = function() {
            if ( this.length > 0 ) {
                return this[0].scrollHeight;
            }

            return;
        };
        this.innerWidth = function() {
            if ( this.length > 0 ) {
                return this[0].scrollWidth;
            }

            return;
        };
        this.outerHeight = function() {
            if ( this.length > 0 ) {
                return getOuterDimension(helper.getStyles(this[0])).outerHeight;
            }

            return;
        };
        this.outerWidth = function() {
            if ( this.length > 0 ) {
                return getOuterDimension(helper.getStyles(this[0])).outerWidth;
            }

            return;
        };
        this.offset = function(coords) {
            var dim = {
                    parentLeft: 0,
                    parentTop: 0,
                    newLeft: 0,
                    newTop: 0,
                },
                obj = null,
                i = 0;

            if ( this.length > 0 ) {
                if ( this.isFunction(coords) ) {
                    coords = coords.call(this);
                }

                if ( this.isPlainObject(coords) ) {
                    for ( ; i < this.length ; i++ ) {
                        dim.parentLeft = 0;
                        dim.parentTop = 0;

                        setRelative(this[i]);

                        coords.top = this.isNumeric(coords.top) ? coords.top + 'px' : coords.top;
                        coords.left = this.isNumeric(coords.left) ? coords.left + 'px' : coords.left;

                        if ( this[i].offsetParent &&
                             'fixed' !== $(this[i]).css('position') ) {
                            obj = this[i];
                            do {
                                dim.parentTop += obj.offsetTop - (parseFloat(obj.style.top) || 0);
                                dim.parentLeft += obj.offsetLeft - (parseFloat(obj.style.left) || 0);
                                obj = obj.offsetParent;
                            } while ( obj );
                        }

                        // Considering scrollTop, scrollLeft?

                        // Need to find way to convert %, rem, em, and etc to px
                        $(this[i]).css(coords);
                        dim.newTop = parseFloat($(this[i]).css('top')) || 0;
                        dim.newLeft = parseFloat($(this[i]).css('left')) || 0;

                        $(this[i]).css({
                            top: (parseFloat(dim.newTop - dim.parentTop) || 0) + 'px',
                            left: (parseFloat(dim.newLeft - dim.parentLeft) || 0) + 'px'
                        });

                    }

                    return this;
                } else {
                    return helper.findOffset(this[0]);
                }
            }

            return;
        };
        this.position = function(coords) {
            var i = 0;

            if ( this.length > 0 ) {
                if ( this.isFunction(coords) ) {
                    coords = coords.call(this);
                }

                if ( this.isPlainObject(coords) ) {
                    for ( ; i < this.length ; i++ ) {
                        setRelative(this[i]);

                        coords.top = this.isNumeric(coords.top) ? coords.top + 'px' : coords.top;
                        coords.left = this.isNumeric(coords.left) ? coords.left + 'px' : coords.left;

                        $(this[i]).css(coords);
                    }

                    return this;
                } else {
                    return {
                        top: this[0].offsetTop,
                        left: this[0].offsetLeft
                    };
                }
            }

            return;
        };
        this.scrollTop = function(top) {
            if ( this.length > 0 ) {
                return getScrollDimension(this[0], top, true);
            }
            return;
        };
        this.scrollLeft = function(left) {
            if ( this.length > 0 ) {
                return getScrollDimension(this[0], left, false);
            }
            return;
        };
    }

    module.exports = new Position();
}());
},{"./helper.js":5}],8:[function(require,module,exports){
(function () {
    "use strict";

    /* global DomQuery */

    var helper = require('./helper.js');

    function traverseSibling(that, domSelector, direction) {
        var output = [],
            sibling = null,
            i = 0;

        for( ; i < that.length ; i++ ) {
            if ( direction ) {
                sibling = that[i].nextSibling;
            } else {
                sibling = that[i].previousSibling;
            }

            while ( null !== sibling ) {
                if ( sibling.nodeType === 1 ) {
                    if ( !domSelector ||
                         (helper.stringNotBlank(domSelector) && helper.matchesSelector(sibling, domSelector)) ) {
                        helper.pushUniq(output, sibling);
                    }
                }
                if ( direction ) {
                    sibling = sibling.nextSibling;
                } else {
                    sibling = sibling.previousSibling;
                }
            }
        }

        return new DomQuery(output);
    }

    function Traverse() {
        this.find = function(domSelector) {
            var output = [],
                i = 0,
                j = 0,
                child = null;

            if ( helper.stringNotBlank(domSelector) ) {
                for ( ; i < this.length ; i++ ) {
                    if ( "undefined" !== this[i].childNodes ) {
                        child = this[i].querySelectorAll(domSelector);
                        if ( child ) {
                            for( j = 0 ; j < child.length ; j++ ) {
                                output.push(child[j]);
                            }
                        }
                    }
                }
            }

            return new DomQuery(output);
        };
        this.has = function(domSelector) {
            var output = [],
                i = 0,
                child = null;

            if ( helper.stringNotBlank(domSelector) ) {
                for ( ; i < this.length ; i++ ) {
                    if ( "undefined" !== this[i].childNodes ) {
                        child = this[i].querySelectorAll(domSelector);
                        if ( child.length ) {
                            output.push(this[i]);
                        }
                    }
                }
                return new DomQuery(output);
            }

            return;
        };
        this.children = function(domSelector) {
            var output = [],
                i = 0,
                j = 0,
                child = null;

            for ( ; i < this.length ; i++ ) {
                if ( "undefined" !== this[i].childNodes ) {
                    if ( helper.stringNotBlank(domSelector) ) {
                        child = this[i].querySelectorAll(domSelector);
                        if ( child.length ) {
                            for( j = 0 ; j < child.length ; j++ ) {
                                // Only direct child
                                if ( child[j].parentNode === this[i] ) {
                                    output.push(child[j]);
                                }
                            }
                        }
                    } else {
                        for ( child in this[i].childNodes ) {
                            if ( this[i].childNodes[child].nodeType === 1) {
                                output.push(this[i].childNodes[child]);
                            }
                        }
                    }
                }
            }

            return new DomQuery(output);
        };
        this.parent = function(domSelector) {
            var output = [],
                parent = null,
                child = null,
                i = 0,
                j = 0;

            for ( ; i < this.length ; i++ ) {
                // Need more efficient logic here
                if ( helper.stringNotBlank(domSelector) ) {
                    parent = this[i].parentNode;
                    if ( "undefined" !== parent.parentNode &&
                         parent.parentNode.nodeType === 1 ) {
                        child = parent.parentNode.querySelectorAll(domSelector);
                        if ( child.length ) {
                            for( j = 0 ; j < child.length ; j++ ) {
                                if ( child[j].parentNode === parent.parentNode ) {
                                    if (child[j] === parent ) {
                                        helper.pushUniq(output, child[j]);
                                    }
                                }
                            }
                        }
                    }
                } else {
                    helper.pushUniq(output, this[i].parentNode);
                }
            }

            return new DomQuery(output);
        };
        this.first = function() {
            if ( this.length ) {
                return new DomQuery(this[0]);
            }
            return;
        };
        this.last = function() {
            if ( this.length ) {
                return new DomQuery(this[this.length - 1]);
            }
            return;
        };
        this.next = function(domSelector) {
            return traverseSibling(this, domSelector, true);
        };
        this.prev = function(domSelector) {
            return traverseSibling(this, domSelector, false);
        };
        this.get = function(idx) {
            if ( this.length && "undefined" !== this[idx] ) {
                return new DomQuery(this[idx]);
            }
            return;
        };
    }

    module.exports = new Traverse();
}());
},{"./helper.js":5}],9:[function(require,module,exports){
(function () {
    "use strict";

    /* global window, global, self, navigator, DomQuery */

    var helper = require('./helper.js');

    function Utils() {
        this.each = function() {
            var elements = null,
                callback = function() {};

            if ( arguments.length > 0 ) {
                if ( "function" === typeof arguments[0] ) {
                    callback = arguments[0];
                    elements = this;
                } else if ( arguments.length > 1 && "function" === typeof arguments[1] ) {
                    elements = arguments[0];
                    callback = arguments[1];
                }

                var length = elements.length;
                if ("undefined" !== length) {
                    for (var i = 0; i < length; i++) {
                        callback.call(elements[i], elements[i], i, elements);
                    }
                }
            }
            return elements;
        };
        this.extend = function(mergeTarget) {
            var otherObjects = [],
                  _key = null,
                  objProp = null;

            if ( 1 === arguments.length ) {
                // Merge to this.prototype
                this.extend(
                    this.fn,
                    arguments[0]
                );
            } else {
                for (_key = 1; _key < arguments.length; _key++) {
                    otherObjects[_key - 1] = arguments[_key];
                }
            }

            for (_key = 0; _key < otherObjects.length; _key++) {
                for (objProp in otherObjects[_key]) {
                    mergeTarget[objProp] = otherObjects[_key][objProp];
                }
            }

            return mergeTarget;
        };
        this.append = function(html) {
            var i = 0;

            if ( this.length > 0 &&
                 helper.stringNotBlank(html) ) {

                for ( ; i < this.length ; i++ ) {
                    this[i].innerHTML += html;
                }
            }

            return this;
        };
        this.prepend = function(html) {
            var i = 0,
                tmpElement = null;

            if ( this.length > 0 &&
                 helper.stringNotBlank(html) ) {

                for ( ; i < this.length ; i++ ) {
                    tmpElement = document.createElement('div');
                    tmpElement.innerHTML = html;
                    tmpElement = tmpElement.firstChild;

                    if ( !this[i].firstChild ) {
                        this[i].appendChild(tmpElement);
                    } else {
                        this[i].insertBefore(tmpElement, this[i].firstChild);
                    }
                }
            }

            return this;
        };
        this.isNumeric = function(obj) {
            return (obj - parseFloat(obj)) === 0;
        };
        this.isFunction = function(obj) {
            return "function" === typeof obj;
        };
        this.isArray = function(obj) {
            return Array.isArray(obj);
        };
        this.isPlainObject = function(obj) {
            // Check if variable is a {}
            return "object" === typeof obj && ("Object" === obj.constructor.name || "[object Object]" === Object.prototype.toString.call(obj));
        };
        this.isEmpty = function(obj) {
            var _key;

            if ( obj.length > 0 ) { return false; }
            if ( obj.length === 0 ) { return true; }
            for ( _key in obj ) {
                if ( Object.prototype.hasOwnProperty.call(obj, _key) ) {
                    return false;
                }
            }
            return true;
        };
        // Source: [http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser]
        // Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
        this.isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
        // Firefox 1.0+
        this.isFirefox = typeof InstallTrigger !== 'undefined';
        // At least Safari 3+: "[object HTMLElementConstructor]"
        this.isSafari =Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
        // Chrome 1+
        this.isChrome = !!window.chrome && !this.isOpera;
        // At least IE6
        this.isIE = /*@cc_on!@*/false || !!document.documentMode;
        // IE8 and below
        this.isOldIE = navigator.userAgent.match(/MSIE\s(?!9.0)/) ? true : false;
    }

    module.exports = new Utils();
}());
},{"./helper.js":5}]},{},[1]);

redpajama_set_name: RedPajamaGithub


This adorable and quaint two bedroom home offers you endless possibilities! Within walking distance to schools and shopping you can't go wrong. It has an open living room that would be perfect for entertaining and a den area that could be converted to a third bedroom.


text:
Home » News » Regional News » Keeping Iraq polio free: immunization campaign targets 5.8 million children
Keeping Iraq polio free: immunization campaign targets 5.8 million children
Baghdad: A 5-day nationwide polio immunization campaign targeting 5.8 million children under 5 years of age began in Iraq. The campaign launched with events in Baghdad, organized by the Ministry of Health, and in Erbil organized by the Kurdistan regional Ministry of Health. Representatives of WHO and UNICEF attended both events with Rotary International attending the launch in Erbil. It is over a year since the last case of polio was reported in Iraq, and the new campaign aims to vaccinate every child under 5 throughout the country.
Iraq is one of the countries at highest risk for polio in the Region due to vulnerable populations living in multiple governorates. These include internally displaced persons, refugees, communities dwelling in slums and vast portions of the country where insecurity hinders health outreach activities. Vaccination teams will exert extra effort to reach children within these populations during the April campaign, with approximately 24 000 health workers set to conduct house-to-house visits.
"Action to contain and stop polio in Iraq has been strategic, concentrated and swift due to the strong commitment of the Government," said Dr Jaffar Hussain, WHO Representative to Iraq. "Keeping Iraq polio free has been a major priority for WHO and its partners over the past 12 months, and we are doing everything we can to maintain this great achievement," he said.
In the last year, a total of 13 subnational and national polio immunization campaigns have been conducted across the country to counter gaps in routine immunization services. Violence and insecurity in many parts of Iraq, damage to health facilities, and a shortage of health workers continue to create hurdles in reaching every child under 5 with oral polio vaccine (OPV).
"Population movement and shortfalls in routine immunization pose significant challenges for the polio eradication programme," Dr Hussain said. "However, with the committed leadership of the Ministry of Health, support from donors, and through strong collaboration amongst our partners, we have been able to consistently reach over 90% of all children for the last 9 campaigns since April 2014," he said.
Dr Hussain cautioned that certain high-risk governorates such as Baghdad, Karbala, Muthana and Babylon do not have uniformly high vaccination rates at the district level and thus require particular attention during the campaign.
WHO, UNICEF and nongovernmental health partners have provided a range of support functions to the Federal and Kurdistan Ministries of Health to combat polio within Iraq's borders. While WHO provides technical support and training in communicable disease surveillance, case detection, and stool sampling and testing for acute flaccid paralysis – a major indicator for polio, UNICEF has been instrumental in the procurement of OPV and cold-chain equipment, and in helping to raise community awareness of the debilitating disease.
"The absence of wild poliovirus in Iraq for over a year, despite the complex humanitarian crisis, is testament to the efforts put into the emergency response from the respective Ministries of Health. UNICEF, along with WHO, remains committed to providing strong technical support and welcomes the visit of Rotary for this campaign, as one of the spearheading partners in the Global Polio Eradication Initiative," remarked Philippe Heffinck, UNICEF Iraq Representative.
Thanking Rotary International for their unflinching support to the Global Polio Eradication Initiative (GPEI) through its history, WHO and UNICEF country representatives have appealed for continued support to the polio emergency response in Iraq. To ensure prevention of new importation-associated polio outbreaks and to save children from vaccine preventable diseases, additional campaigns must be held over the coming year. However, the Iraq Ministry of Health estimates a funding gap of US$ 45.5 million for campaigns planned in 2015 and 2016. Given the high political commitment of the Government to polio eradication and the Expanded Programme on Immunization, WHO and UNICEF have appealed to the wider international community to come forward and support efforts to ensure vaccine delivery to all children and women of Iraq to prevent significant mortality and morbidity.
The UNICEF Iraq Country Representative emphasized that funding shortages in Iraq are putting all children at risk. "The scope and scale of the crisis, and the unimaginable hardships that Iraqi children have suffered stretch our ability to respond. If the immediate and longer term funding gaps are not met, millions of children will not receive the life saving interventions, including polio and routine immunization, that they need."
WHO and UNICEF continue to support both Ministries of Health in increasing vaccination coverage in Iraq. Through the GPEI, the organizations are currently supporting immunization campaigns in three countries in the Region.
Anti-snake venom vaccine produced locally
WHO building a global emergency workforce ready to go

redpajama_set_name: RedPajamaCommonCrawl


The wider smartphone adoption has triggered the spread of mobile malware. In light of this rapid growth, there is a pressing need to develop effective solutions. But due to the lack of understanding about emerging mobile malware, our defense capability is largely limited. Attacks that proved successful on PCs are now being tested on unaware mobile users to see what works. But with the number of mobile devices with poor protection soaring, mobile devices have become a haven for hackers, where they hunt the weakest point and then hone in on the most successful scams.
Since mobile security is different from traditional PC-based security, the real problem for people was that no company offered a solution to this gigantic issue, and ignorance about malicious acts complicated the situation further. Oblivious to the fact that attacks happen from different sources and not just applications, people simply screen their apps to find the malware. Looking at the problem from a broader angle, Zuk Avraham (Founder, Chairman & CTO of Zimperium) created a product called zIPSthat eliminates the entire issue,not just the application piece of the puzzle and without eating too much of the mobile battery. Unlike other applications that steal your private data with or without your permission, zIPS sits on the mobile device just like any other app without violating the privacy of the user.
Last year, Verizon's Data Breach Investigation report stated that mobile devices are not yet a preferred vector in data breaches and have a less than 1 percent infection rate. But in the blink of an eye, the statistics have changed. The recent Ponemon Institute report stated that a single mobile device infected with malware can cost a victim organization an average of more than $9,000. CompTIA raised the alarm further in its report, stating that nearly three out of four organizations have been plagued by at least one security breach or incident in the past year, with about 60 percent of breaches categorized as serious - all thanks to BYOD.
Born to address this market, Zimperium created a platform that delivers continuous and real-time threat protection to both devices and applications. With Zimperium, leaky enterprises can protect devices against known and unknown cyberattacks and generate self-protecting applications from a single platform to boost mobile productivity, while safeguarding their data. Serving global enterprise-leaders at scale, the company's award-winning solution is based on its disruptive, on-device detection engine that uses patented, machine learning technology to protect against the broadest array of mobile attacks.


News presentation and formats have long since changed and that too quite dramatically. From pre designed scripts that were just to be read; now news has become more interactive with more features, reviews and interviews being added to the regular news bulletin.
Another major development has been the airing of breaking news, live action as it happens from the hub of action. Breaking news is not limited to covering social, political or economic happenings but has extended to win every time the world of sports. Sports breaking news is fast becoming a frequent feature of most these news channels who focus on getting the complete lowdown on the sports action.
A great deal of sports information gets listed daily and is also listed as sports breaking news. But for the sports enthusiast, it is of extreme importance that this information is authentic and of consequence. It has been seen in a number of instances when sports bloopers are presented as sports breaking news. It can take quite some time to filter such information and obtain information which is of any real consequence.
To fill out these discrepancies there are a few reliable sports news channels that cover virtually all of the sports breaking news events and provide these to their viewers. A few of these channels are ESPN, Sky Sports News, BBC Sport and Fox Sports and bring latest sports news from across the world for their viewers.
Fox Sports is one of the most favored sports news providers in the United States. Since their inception they have aimed at covering major and very popular sports activities from across the nation. Over the years this channel as the channel became very popular; it increased its network and started covering sports action from across the globe. In the beginning their primary focus was on the NASCAR series as well as the Daytona 500 and had the exclusive broadcasting rights on the latter.
The channel then began concentrating on Major League Baseball, National Hockey League games and the Bowl Championship Series and since 2000 Fox Sports has been given the broadcasting rights with the airing of the World Series. Besides this, they, together with their sister channels, also cover football championships from countries like Japan, Brazil, Argentina, Australia, Italy etc. Fox Sports in addition has forayed in the world of action sports through the help of Fuel TV another sister channel.
ESPN on the other hand calls itself the "worldwide leader from the world of sports". In keeping with their declaration, they have been successfully covering and bring live sports news and events t their viewers. Together with covering regular sports like basketball, baseball, cricket, ice hockey etc, ESPN have been key in popularizing extreme sports by broadcasting the only one of a kind X Games which can be regarded as one of the most prestigious of all extreme sports competitions.
Sky Sports and BBC Sport remain very well liked in Europe covering all the major sports action form that region. They are going neck to neck in terms of viewership and cover all the sports breaking news and carry it across to their viewers through their sports news programs.


The Gibraltar Careers Fair will be held on Tuesday 28th February 2017 at the Gibraltar Cruise Terminal. The event, which has been organised by Westside School , Bayside School and the Gibraltar College, will run from 5pm to 8pm.
Mrs Lorraine Davis, President of the Gibraltar Red Cross, presented a cheque for £5,000 to Mrs Olga Zammit, a Trustee for the Calpe House Appeal.
The Deputy Chief Minister Dr Joseph Garcia is in London for a number of meetings related to the proposed departure of the United Kingdom and Gibraltar from the European Union.


The process of aging becomes tough to deal with, especially when you tend to apply amajority of skin care products and find that so many of them don't function well for your skin's requirements. Rather than switching to invasive methods like cosmetic surgery or painful injections you may just give a try to an effective solution. With the right choice of product, you can finally enjoy a radiant and ageless skin for years to come. And best of all, you don't need to undergo with the cost or expense of injections and surgery.
That being said, this entire review would like to recommend you Eye Novela anti-aging formula. This skin care formula is everything that you need to replenish your facial appearance to its vibrant and younger complexion. It has been clinically tested to offer consumers with long-term outcomes. Those women who have applied it for a long time experienced an ageless, powerful, and firmer skin tone within few weeks. Just conceal the worst appearance of aging signs while keeping moisture levels into your skin all day long.
If you want to get more information about this product, then just go ahead and study this detailed review from top to the bottom. With this way, you will understand what it offers to your skin to make it younger and radiant.
It is all about offering your facial skin the moisture it requires, which is toughest to get as you are growing older. Your facial skin needs to be hydrated to just combat the effects of the aging process. Thankfully, with the consistent use of Eye Novela, you will be capable of creating a younger looking skin, enhance the confidence within you, and boost the soft texture of the skin. Instead of putting the health of your skin at any risk, it always tries to make your skin healthier along with the nourishment that just comes from this age-defying solution.
You also don't need to worry about noticing any dreadful effects or wasting your money and time with this product. This age-defying cream includes exactly what you really need to experience a youthful and flawless surface that you can be proud of. It works to eliminate dark circles, eye bags, under-eye puffiness, and other aging signs around your eye area. By treating aging skin from all the aspects, you will be able to experience effective and long-lasting skin care outcomes. With this solution, you do not have to worry about chemicals, fillers, additives or other poor-quality substances that can actually harm your skin appearance on a long-term.
What are the ingredients used in this age-defying cream and how do they work?
One of the most popular and skin-rejuvenating ingredients that have been clinically demonstrated to finally attain positive effects on your skin appearance. This ingredient has an amazing capacity to just communicate with the skin cells through activating levels of collagen and elastin. To achieve youthful, vibrant, and beautiful facial skin is really impossible without this ingredient because it can enhance your skin's nourishment all the day. This one is known to assist in the proper process of skin repair and renewal. Ultimately, it reduces the appearance of deep-set wrinkles to just bring back a youthful look even at your 40s or 50s.
Well-known as an exfoliant that will efficiently and effectively expel the damaged, old, and dead skin appearance on the external layer. This ingredient will make your skin refreshed, energetic, and active all day long. It can make fullness and retains moisture levels to finally achieve a healthy and younger skin. The ingredient also preserves your skin appearance from the sun damage, UV rays, and other most damaging effects of the atmosphere. All and all, it amplified the rate of collagen in your skin that will offer so many anti-aging benefits in the future. It is also used to heal the wounds, skin ulcers, burns, and as a moisturizer.
It is a powerful form of antioxidant that prevents the development of free radicals while reversing the aging marks. This is also known as an effective protein just for women to create a healthier and youthful skin appearance. The skin-repairing ingredient has been used to improve your skin's appearance and texture for a long term. An age-fighter ingredient is actually must to maintain a flawless and younger skin complexion. Best of all, it deals with dropping, dull, and saggy skin while keeping moisture levels throughout the day. It can also minimize the wrinkles and fine lines which typically develops due to sun exposure.
What are the instructions for using this age-defying eye cream?
In order to clear away all the dust particles, impurities or excess oil, simply apply a gentle cleanser and wash your face with a lukewarm water.
Once your face is clean, pat dry your facial skin with a soft towel or cloth. Then, take a pea-sized amount of this age-defying cream on your fingertips and using it around your eye area where all the aging marks are located.
Now give massage to your face in a circular motion, do not rub tightly. Next, wait for 5 to 10 minutes until the product goes into the dermal layer of your skin. Once the process is completed, you can definitely experience a firmer looking skin.
Just click on the "RUSH MY TRIAL" button and place an order for Eye Novela cream from its official website. All the first-time users can get the advantage of a RISK-FREE TRIAL package at free of cost. All and all, you just have to fill up some details on the form and the product will be delivered at your address in 3-5 days.
If you are below 30 years of age, then you cannot apply Eye Novela cream because it may cause negative effects which damage your skin's quality and health.
Eye Novela- Any known side-effects?
NO, not at all! As clearly mentioned above in this review, Eye Novela is totally free from the harmful chemicals, fillers, additives or synthetic ingredients. Thus, there is no chance of any harmful side-effects during the entire process. The makers of this product only took help of organic herbs or extracts along with essential nutrients which have been clinically tested for multiple times to just ensure product's performance and efficiency.


text:
Braun: For couple, wedding bliss includes saving Africa
Updated: Mar. 30, 2019, 3:35 p.m. | Published: Jul. 12, 2012, 1:00 p.m.
By Bob Braun/Star-Ledger Columnist
View full sizeFrances Micklow/The Star-LedgerKatie Meyler, founder of More Than Me, a foundation that educates girls in Liberia who might otherwise go into prostitution. Meyler and her intern, Hannah Cosalka, put pictures up in the office at the foundations office in Bernardsville.
This is a love story and, like many love stories, it will culminate in a wedding, planned for sometime early next year. But unlike most weddings — well, probably unlike all weddings but this one — the ceremony will take place on the bombed out streets of the capital of the African nation of Liberia and double as a fund-raising event to help young girls escape becoming part of the sex trade.
The bride is Katie Meyler, a young woman from Bernardsville — when she is not living out of a suitcase, which is most of the time — who heads an organization called More Than Me. It provides training and other opportunities for young Liberian girls and, within a few months, hopes to transform a gutted government building in the capital city of Monrovia into a school for nearly 400 children.
The groom is Josh Tetrick, a young man from Alabama with dreams of becoming an NFL linebacker who instead is now a lawyer, financial consultant and entrepreneur, CEO of a start-up company in California — Hampton Creek Foods — that is developing vegetable-based alternatives to the use of eggs in baked goods and other food products.
It is not the first business venture with a social purpose begun by the 32-year-old.
"He is not the sort of guy I thought I would be attracted to," says Katie, 29. "I'm with, well, you know, usually scruffy guys, not a clean-cut Ivy League type."
Tetrick is anything but scruffy. After beginning his college career at West Virginia University — where he made the football team as a walk-on and was named rookie defensive player of the year — he transferred to Cornell and, after receiving a degree from there, graduated from the University of Michigan Law School. He is a Fulbright Scholar, taught in Nigeria and South Africa and has worked on African initiatives for the United Nations and the government of Liberia.
"I don't even know what a linebacker is," Meyler says. She grew up an Evangelical Christian and first went to Africa with church-related charities.
The two have been friends for years and credit each other for supporting the causes they embrace with such passion that they define their lives.
Meyler, for example, says that at a moment when she doubted she had the skills to run a charitable organization, Tetrick told her, "Look, this is about more than you.''
View full sizeFrances Micklow/The Star-LedgerKatie Meyler, founder of More Than Me, a foundation that educates girls in Liberia who might otherwise go into prostitution. Meyler (and her fiancee Josh Tetrick) pose for a portrait at the foundations office in Bernardsville.
So the name of her organization — More Than Me — was born.
In a speech Tetrick gave last fall at Cornell, he told how Meyler took him to the hospital when he badly cut his leg in a fall on an unlit Monrovia street pocked with shell craters from its long civil war. Waiting in the emergency room, he sat among children dying of malaria, AIDS and tuberculosis. The experience, among others, persuaded him he could try to help others "without becoming a martyr to the world."
His message last fall to the Cornell students — and to many other audiences — is that young people can "thrive" by finding ways to help people without giving up everything.
"Selflessness can be profitable," said Tetrick, who blogs for The Huffington Post. "We keep our eyes open to find out what the world needs and then we can provide it — and we can thrive."
Meyler is not the sort to care much about profits from businesses — even businesses with social purposes — but she has devoted herself to fund raising, traveling the country, accepting paid speaking engagements to talk about her efforts with Liberian girls who often go into prostitution to raise money for food. The first $16,000 Meyler raised was from the sale of her eggs to a reproductive clinic.
With a small, mostly part-time staff working out of a Bernardsville office, she raises enough money to pay the school fees for more than 100 elementary school girls in the run down section of Monrovia known as West Point. They organize house parties, galas, barbecues. They write grant proposals and enter corporate contests that result in modest cash awards. They sell T-shirts.
"Now we are trying to find out how we can turn our wedding into a fund-raiser," Meyler says.
Her big project now is turning a former government building into a school. The structure was bombed out during the war and Meyler says it has been offered to her organization for use as a school by town officials who cannot use it. She is now trying to raise the $150,000 necessary to restore the building that was once used as the offices of Monrovia's school system.
"We think we can get it ready in time for the fall," she says.
Both do a lot of public speaking — and they often talk about each other in their presentations. Meyler praises Tetrick for his support of causes like hers. He cites her as an example of young people who solve problems rather than complain about them — or ignore them.
"We need young people on fire,'' he says.
More Bob Braun columns


The Arc Jacksonville provides employment solutions for businesses and for adults with varying abilities.
In the community and at our downtown and Westside locations, our Employment Services department specializes in placing dedicated, reliable and motivated employees where they will thrive.
Helping individuals find employment in our community.
Assisting employers in hiring dedicated, hardworking employees.
If you are looking for current job openings with The Arc Jacksonville, please visit Join our Team.


At the Australian Institute of Fitness we know that every person's career goals are different, so we'll assist with placement in a gym, studio or clinic, supporting you in starting your own business, or offering advice on further training to upskill.
As a fitness professional, you should never stop learning to update your skills, as this brings rewarding benefits, including more ways to generate income, more industry experience, and more choice in your career direction.
"A knowledge of both massage and fitness allows me to have personal training and massage clients, all of whom have similar goals."
In line with our commitment to enhancing your career development, we offer access to a range of discounted continuing education short courses via our carefully selected Industry Partners.
We want to see all our students succeed, so as part of our career support, we provide our graduates with access to Career Scouts, recruitment nights, and a comprehensive job website, with the latest opportunities.
Trainer Experience is a compulsory part of the Master Trainer and Personal Trainer courses to help students gain experience in the fitness industry and get a feel for what it is like to be a Personal Trainer.
Log in to eCampus to access online learning and resources for your course.
If you do not have a login or are experiencing any issues accessing eCampus - contact our eCampus support team here.
When you graduate from the Australian Institute of Fitness, not only will you leave with a qualification, but you'll also leave with a tribe of lifelong friends, who you can stay connected to throughout your career.
If you know someone who is interested in the fitness industry, help expand your Tribe of Warriors Against SeDS and tell them about us.
The Fitness Zone is a great place to find resources and information related to all things fitness and your career.
Stay up-to-date with the latest fitness news, trends and industry developments with our range of articles written by leading fitness professionals.
Designed for our students and your future clients, our online resource centre provides downloadable PDFs, ready for use during your career in the fitness industry.


text:
League of Worlds
A site to discuss all that is needed to discuss.
League of Worlds :: The Constituion :: Viewing Case Share
The Constitution of The League of Planets
Subject: The Constitution of The League of Planets Sat Jun 28, 2008 1:39 pm
I. Preamble
In order to secure prosperity, safety and peace, the members of the League of Nations abide and accept this Constitution.
II. Power of the Members
The sole power of the League of Nations will rest in the members of the League. At anytime, a simple majority of members may create any law, override any law, or make any amendment. To simplify this process however, a Senate shall be created with all the powers of the whole body of members.
III. The Senate
The Senate will be an elected body consisting of members of the League who shall serve for one month terms, unless they are impeached by a majority of the members of the League. The number of Senators will be equal to 1/4 of the League (rounded down); however a minimum of three senators will always be allowed on the Senate.
The Senate shall have no powers allowing them to force any member of the League to do anything they do not wish to do. They simply hear requests from all member nations, and upon hearing their pleas, they will decide who needs aid, whether resource wise or defense wise. They also have the power to declare the League at war with any other member, alliance, system &c.
IV. Checks to Power
Most importantly, no decision made by the Senate has authority over a majority of the members. If a said majority disapproves of the action or guidance of The Senate they may overturn with a majority vote of disapproval. The Senate then, simply serves as a body to streamline the process of Democratic government, serving always as a submissive to wishes of the majority of the members of the League.
V. The Secretariat
The Senate shall elect one member of their body to serve as Secretariat. They will lead discussion and decide what pleas the Senate will hear.
VI. Senate Expansion
If the number of members of the League ever requires it to add a Senator (reaching 16, 20, 24, 28 &c members) then in a timely manner Senatorial elections will be held.
VII. Ratification
This Constitution will come into effect with 2/3 of the members of the League vote in its favor.
Ratified June 28th, 2008
» Champions League Tournament ~ Sign - IN ~
» SCCT Super League II
» SCCT Book Super League I
» Battle of the Planets G Force & Voltron
» SWCR Champions-League 2011 with 40 moves in 150 minutes started!
League of Worlds :: The Constituion :: Viewing Case
Jump to: Select a forum||--Applications|--The Constituion |--Viewing Case
Free forum | Video games | Action | © phpBB | Free forum support | Report an abuse | Forumotion.com


text:
Q: Variable not seen as defined in foreach of a hash my $crazy_hash = {

  'One' => 1,

  'Two' => 1,

  'Three' => 1,

};

 foreach my $num (keys %crazy_hash) {
      #DoSomething
  }

The error I get is:
Global symbol "%crazy_hash" requires explicit package name at blah line blah
If I do my %crazy_hash and define it within the loop, it works. Why doesn't it work as is?

A: You have not defined a hash called %crazy_hash, you have defined a scalar $crazy_hash which contains a reference to a hash.
You probably mean this:
my %crazy_hash = ( One => 1, ...

... or access the keys with keys %{$crazy_hash} like others have suggested; then you will need to use $crazy_hash->{key} rather than $crazy_hash{key} to access a value. Read perlreftut if you need to understand references.

A: $crazy_hash is a reference to an anonymous hash. Prior to 5.14, you need to dereference the reference for keys to work:
for my $num (keys %{$crazy_hash}) {

Starting with 5.14:

Starting with Perl 5.14, keys can take a scalar EXPR, which must contain a reference to an unblessed hash or array. The argument will be dereferenced automatically. This aspect of keys is considered highly experimental. The exact behaviour may change in a future version of Perl.

redpajama_set_name: RedPajamaStackExchange


So here we are in Basel!
It's usually only branded, embossed, punched or stamped on somewhere inconspicuous.
Colour? Anything's possible here at ochs und junior – even black!
ochs und junior in Basel until Saturday March 10.


Categories: Facial Rejuvenation Acupuncture | Tags: botox, brain, connection, facial expression, social | Permalink.
Absolutely great article! Thank you! I would never consider to get BOTOX. It has many side effects. Chinese medicine has many facial treatments and herbs for beauty available and without harmful side effects!
I have a very expressive face and I would never want to lose that. Facial expressions is a huge part of our daily communication. You can tell so much about what a person is thinking or feeling through facial expressions. It would be a shame to lose that. At naturalstandard.com, I was reading that these injections aren't even permanent. I'm not sure what the effect of several years of injection of this toxin into your body will have.
Wow it would be pretty sad to be sad or happy and not have people notice it. What would people do without being able to see real reactions and emotions? this is terrible….


text:
Red Wall seats need help to help themselves through the levelling up agenda
By Ian Levy MP
Two-Thirds Of Tory Voters Believe Financial Situation Will Worsen Over Next Year
A majority of voters expect their financial situation to get worse over the next year
@johnjohnstonmi
5 min read 02 June 2022
New polling has found nearly a quarter of Tory voters believe excessive government spending was "significantly" to blame for rising inflation.
Concerns around the cost of living are continuing to grip voters, as the impact of soaring energy prices and rising inflation hits household budgets, a new poll for The House has shown.
The polling, conducted by Redfield and Wilton on 25 May, shows 66 per cent of voters believe their financial situation has worsened in the last 12 months, while less than a quarter report seeing no change across the same period.
Prime Minister Boris Johnson has urged his Cabinet colleagues to "go faster" to find fresh solutions to ease the strain on household budgets, while warning voters he could not "magic away" problems facing the economy.
The study will make for concerning reading for the government, with almost two-thirds of voters (65 per cent) saying they believed their financial situation would continue to worsen in the following year, including 66 per cent of those who voted for the Conservatives in 2019, and 71 per cent of Labour voters. Just 13 per cent of the public said their finances would improve during the same period, a figure that was marginally higher than the 12 per cent of Tory supporters who agreed with the statement.
The polling, conducted in the days prior to the announcement of Chancellor Rishi Sunak's new measures to help tackle the energy price hike, found just 11 per cent had not changed their spending habits in response to the rising costs. That compared to 29 per cent who had significantly changed their spending behaviours, up from a fifth in early February, and a further 39 per cent who had moderately changed, an increase of 10 percentage points over the same period.
Further polling on voting intentions undertaken by Redfield and Wilton on 29 May found Labour's lead had narrowed slightly in the days following the publication of the Sue Gray report into Downing Street gatherings and the announcement of the energy firm levy, with support for Keir Starmer's party at 43 per cent compared to the Conservatives' 36 per cent.
Asked for The House poll about specific measures which had been taken in anticipation of rising energy bills, a majority (55 per cent) of those asked said they had already taken to keeping their heating off even when their home was cold, while 57 per cent had begun spending less in other areas in anticipation of price increases.
Almost half of Conservative voters said they had taken to wearing more clothes to offset heating costs, while 39 per cent said they had kept their heating at a lower level than usual in response to the changes.
The figures also appear to confirm that business growth could be hit by belt-tightening, with 52 per cent saying they had already cut back spending on entertainment and leisure activities in response to the squeeze, while 58 per cent said they had reduced outgoings by limiting visits to restaurants and ordering take-aways.
A majority of both Conservative (51 per cent) and Labour (65 per cent) voters also reported cutting back on heating in response to rising costs; in addition, 52 per cent of Tory backers and almost three-quarters of Labour voters (72 per cent) said they had reduced spending on groceries.
In a further worrying sign for the government, just under a third of voters blamed excessive spending by the government for rising inflation, compared to just 19 per cent who thought the war in Ukraine was responsible, followed by 18 per cent who suggested pandemic-related disruptions to the supply chain as the most likely cause of the rise.
The figures come as a growing number of Conservative MPs openly question the Chancellor's decision to provide financial support for struggling households, warning it could lead to further increases in inflation rates.
Among Conservative voters, nearly a quarter agreed with those sentiments, saying they believed excess government spending was the most to blame for rising inflation, while 26 per cent said they believed the war in Ukraine had had the biggest impact. That compares to just 13 per cent of Labour backers who thought the war was the biggest aggravating factor, while most (42 per cent) gave government spending as the primary cause.
Asked the extent to which excessive government spending was at fault for rising inflation, 34 per cent of all voters said they significantly blamed the approach, including 22 per cent of those who voted Conservative at the last election. A further 33 per cent said the government's spending plans were "fairly" to blame for the rise, with a further 32 per cent of Tory voters agreeing with the statement.
The polling suggests that recent criticism of the Bank of England by some senior Conservative MPs, including former cabinet ministers Liam Fox and Robert Jenrick, was not persuasive among their party's supporters, with just 11 per cent saying decisions made by the central bank were the most likely cause of inflation.
The poll of 1,500 eligible voters across all regions and nations of the UK was carried out on 25 May.
Jeremy Hunt Calls On Early Retirees To Work Again, Questions Over HS2 Future
By Caitlin Doherty
PoliticsHome Newsletters
PoliticsHome provides the most comprehensive coverage of UK politics anywhere on the web, offering high quality original reporting and analysis: Subscribe
Read the most recent article written by John Johnston - Rishi Sunak Says He Has "Full Confidence" In Nadhim Zahawi As Tax Probe Launched
Economy Conservative Party polling voting intention cost of living energy bills cost of living crisis
Economy Political parties
Tories Warned Push To Get Parents Into Work Will Fail Without "Fixing" Childcare
Rishi Sunak Holds Cabinet Away Day, Matt Hancock Assault Suspect Charged, Pressure To Get Child Refugees Out Of Hotels
26 Jan Home affairs
Rishi Sunak Insists He's Following "Proper Due Process" As Pressure Grows To Sack Nadhim Zahawi
25 Jan Political parties
Nadhim Zahawi's Position Hangs In The Balance, Michael Gove At Northern Conference, Partygate Probe Calls Witnesses
Exasperated Tory MPs Fear Nadhim Zahawi Row Will Overshadow Crunch Weeks For Rishi Sunak
Minister Says There Are "Significant Questions" Over Zahawi Tax Affairs, "Partygate" Hearings Set To Begin
Tory MP Tells Jeremy Hunt To Put "Positive And Practical" Childcare Measures In Budget
Government Accused Of Lacking "Courage" To Allow Migrants To Fill Workforce Gaps


Be one of the first to find out what's happening at the EPA by having the latest issue of Te Pūtara Bulletin sent to you by email.
In our first issue for 2019 we talk about our commitment to reducing our carbon footprint, introduce a new biocontrol, introduce you to some of our staff, let you know about the changes we've made to our website and more. Check it out below!
Christmas is just around the corner and our final issue of the year is jam packed full of good stuff! From fly sprays to chemical reassessments, samurai wasps to millennials, our annual report to methyl bromide and so much more - it's all here in the November issue of Te Pūtara.
But things are warming up for us here at the Environmental Protection Authority, with our jammed packed August issue of Te Pūtara.
In this issue we have information on the microbeads ban that came into force in June, introduce our new Safer Homes guru, show pictures of our annual stakeholder event, a reminder about our mobile friendly website and much more! Check it out below.
The year is flying by at record speed. In our first issue for 2018 we talk about our fire-fighting foam investigation, let you know about our on-board inspection of the Amazon Warrior, tell you about the GMO cancer treatment we've approved, give you insight into our national hui, and much more.
In our last issue for 2017 we explain the rules for managing hazardous substances and how they've changed, invite you to check out our brand new website, show you how we celebrated 20 years of Nga Kaihautu Tikanga Taiao – our Māori advisory committee – talk you through our approval process for Auckland Zoo's new crocodile, and much more.


Cook the raw jackfruit, chilly powder, turmeric powder, salt and water as required in a pressure cooker.
Grind the coconut, cumin seeds, shallots, garlic and water to make a smooth paste.
Mix in the raw jackfruit and grinded coconut.
Mash it with a wooden spoon thoroughly.
And cook it again for 5-10 minutes.
:- Serve it for dinner with kanji.


Dell Refurbished sells desktop, laptops and workstations that are off-lease and recertified. They constantly offer excellent coupon codes up to 40% or more off on a weekly basis.
Buy a Dell Refurbished computer and take advantage of special payment plans from Dell Financial Services. Powerful, affordable Dell computers are deal for personal computer financing, small business supplies, and non-profit organizations. You can often find Dell coupon codes valid on select refurbished models to save even more on your like-new electronics purchase.


QuantumListing is excited to be releasing its Networks feature soon, and we're looking for volunteers to take it for a test drive.
QuantumListing Networks are a new feature that connects brokers, agents and owners in a shared interest area, such as brokers in the same region or type of real estate. The members of QuantumListing Networks can view and share listing information on QuantumListing and their own website simultaneously. Network members can also see changes within their network in real time by checking their network news.
And the best part of all is this is that your Network will be absolutely FREE while we are testing the feature. All that QuantumListing would ask for in return is some feedback about any problems you are having to help make your experience even better.
If you're the administrator of a Network, you will also have the capacity to communicate with individual network members, select groups, and and the group as a whole.
We'll give you a password, which you can change later if you want.
Using our iFrame code, we will create a webpage for your network so that your members can easily see each other's' listings. If you prefer, you can paste the iFrame code into your own website.
Invite brokers, agents, owners, and anyone else to join your network. We can give you an email template to use, you can draft your own, or modify ours. Whichever feels best to you.
Get the brokers, agents and owners to add their listings.
And that's all you need to do to get your network up and running!
As the network admin, you will be able to communicate with members of your Network via individual and group emails through the network dashboard.
Your incentive to get people to join is a 20% share of the revenue from their membership fees if they become paying members at the end of their 3 month trial.
We'll provide the support you and your network members need. We'll send you instructional emails and videos, and we can also arrange webinars.
5 Steps to Easily Identify Hot Tenant Leads in Commercial Real EstateWhy Work With a Cannabis Specialist on Your Next Cannabis Real Estate Project?


text:
Thousands of Afghan refugees are still living in hotels while they wait for housing
Published March 15, 2022 at 3:21 PM CDT
Joel Rose/NPR
These Afghan women and children were among dozens of families staying in hotels near the Baltimore/Washington International Airport in Maryland.
When Kabul fell to the Taliban last August, Aziz grabbed his backpack and rushed to the airport with his wife and two young children.
Seven months later, he's still living out of a backpack.
Aziz and his family had been staying in a hotel near the Baltimore/Washington International airport in Maryland for more than two months.
"This hotel that we are living [in] is good," Aziz said in an interview. "But we are restless. We are feeling like a passenger, living in the hotel."
In Kabul, Aziz worked as a doctor and an advisor to the Minister of Public Health. He asked us not to use his last name because he's afraid of retaliation against his family back in Afghanistan.
Aziz's family is among countless Afghans who are still living in hotel rooms and other temporary housing across the U.S., some for months, as they wait for permanent housing.
All of the Afghan refugees who were evacuated in the Kabul airlift last summer have now left the military bases where they lived for months — more than 76,000 Afghans in all, according to the Department of Homeland Security.
But for many, their journey still isn't over.
"They're happy they are in a safe country, but there still are a number of challenges they are going through," said Shakera Rahimi, a staff member at the Luminus Network for New Americans, a non-profit organization in Maryland that's helping support Afghan families while they wait for permanent housing.
Rahimi has helped to connect these families with medical care, and to register their kids for school. On a recent afternoon, volunteers from a local mosque dropped off backpacks full of school supplies.
/ Joel Rose/NPR
Volunteers from a local mosque delivered donated backpacks full of school supplies for recently-arrived Afghan children.
But for a while, these families weren't getting much help. In December, before Rahimi was working here, one of the Afghan women staying in the hotel gave birth. Rahimi says she and her husband had to find their own way to the hospital and back.
"It was not easy for him to call the ambulance and take the wife there," Rahimi said. "And from the way back he was, he didn't know how to come back."
It's not clear exactly how many Afghan refugees are still living in hotels. The federal agencies in charge told us they don't have that information.
Based on conversations with state officials and resettlement agencies, the number of Afghans still living in hotels and other temporary housing is significant — likely more than 4,000 nationwide as of early March.
The biggest obstacle, resettlement agencies say, is a severe shortage of affordable housing.
"When you have seventeen hundred refugees coming into the state at one time just from Afghanistan alone, that puts an immediate strain on that already low, affordable housing inventory," said Kelli Dobner, the Chief Advancement Officer at Samaritas, a non-profit in Michigan that's working to resettle Afghan refugees there.
Dobner says her organization is working with about 500 Afghan refugees, and about half are still in hotels. She estimates it will take several months to find permanent housing for the rest.
"Time is running out and there's no solution," said Sonik Sadozai, a volunteer with Afghan Refugee Relief in Orange County, California. She came to the U.S. from Afghanistan herself, more than more than 40 years ago.
Now Sadozai is trying to find permanent housing for more than 100 newly-arrived families. But she says rents in Southern California are high — and landlords are reluctant to rent to tenants with no credit history.
"We're giving the social services. But where can they live?" Sadozai said in an interview. "You cannot be on the street with their kids."
These Afghan families are getting help through refugee resettlement agencies to cover their hotel rooms. But that money is only supposed to last for three months. For some of these families, Sadozai says, that deadline is coming up fast. And she doesn't know where they'll go when it's time to check out.
See stories by Joel Rose