text:
;(function(){

/**
 * hasOwnProperty.
 */

var has = Object.prototype.hasOwnProperty;

/**
 * Require the given path.
 *
 * @param {String} path
 * @return {Object} exports
 * @api public
 */

function require(path, parent, orig) {
  var resolved = require.resolve(path);

  // lookup failed
  if (null == resolved) {
    orig = orig || path;
    parent = parent || 'root';
    var err = new Error('Failed to require "' + orig + '" from "' + parent + '"');
    err.path = orig;
    err.parent = parent;
    err.require = true;
    throw err;
  }

  var module = require.modules[resolved];

  // perform real require()
  // by invoking the module's
  // registered function
  if (!module.exports) {
    module.exports = {};
    module.client = module.component = true;
    module.call(this, module.exports, require.relative(resolved), module);
  }

  return module.exports;
}

/**
 * Registered modules.
 */

require.modules = {};

/**
 * Registered aliases.
 */

require.aliases = {};

/**
 * Resolve `path`.
 *
 * Lookup:
 *
 *   - PATH/index.js
 *   - PATH.js
 *   - PATH
 *
 * @param {String} path
 * @return {String} path or null
 * @api private
 */

require.resolve = function(path) {
  if (path.charAt(0) === '/') path = path.slice(1);
  var index = path + '/index.js';

  var paths = [
    path,
    path + '.js',
    path + '.json',
    path + '/index.js',
    path + '/index.json'
  ];

  for (var i = 0; i < paths.length; i++) {
    var path = paths[i];
    if (has.call(require.modules, path)) return path;
  }

  if (has.call(require.aliases, index)) {
    return require.aliases[index];
  }
};

/**
 * Normalize `path` relative to the current path.
 *
 * @param {String} curr
 * @param {String} path
 * @return {String}
 * @api private
 */

require.normalize = function(curr, path) {
  var segs = [];

  if ('.' != path.charAt(0)) return path;

  curr = curr.split('/');
  path = path.split('/');

  for (var i = 0; i < path.length; ++i) {
    if ('..' == path[i]) {
      curr.pop();
    } else if ('.' != path[i] && '' != path[i]) {
      segs.push(path[i]);
    }
  }

  return curr.concat(segs).join('/');
};

/**
 * Register module at `path` with callback `definition`.
 *
 * @param {String} path
 * @param {Function} definition
 * @api private
 */

require.register = function(path, definition) {
  require.modules[path] = definition;
};

/**
 * Alias a module definition.
 *
 * @param {String} from
 * @param {String} to
 * @api private
 */

require.alias = function(from, to) {
  if (!has.call(require.modules, from)) {
    throw new Error('Failed to alias "' + from + '", it does not exist');
  }
  require.aliases[to] = from;
};

/**
 * Return a require function relative to the `parent` path.
 *
 * @param {String} parent
 * @return {Function}
 * @api private
 */

require.relative = function(parent) {
  var p = require.normalize(parent, '..');

  /**
   * lastIndexOf helper.
   */

  function lastIndexOf(arr, obj) {
    var i = arr.length;
    while (i--) {
      if (arr[i] === obj) return i;
    }
    return -1;
  }

  /**
   * The relative require() itself.
   */

  function localRequire(path) {
    var resolved = localRequire.resolve(path);
    return require(resolved, parent, path);
  }

  /**
   * Resolve relative to the parent.
   */

  localRequire.resolve = function(path) {
    var c = path.charAt(0);
    if ('/' == c) return path.slice(1);
    if ('.' == c) return require.normalize(p, path);

    // resolve deps by returning
    // the dep in the nearest "deps"
    // directory
    var segs = parent.split('/');
    var i = lastIndexOf(segs, 'deps') + 1;
    if (!i) i = 0;
    path = segs.slice(0, i + 1).join('/') + '/deps/' + path;
    return path;
  };

  /**
   * Check if module is defined at `path`.
   */

  localRequire.exists = function(path) {
    return has.call(require.modules, localRequire.resolve(path));
  };

  return localRequire;
};
require.register("component-type/index.js", function(exports, require, module){

/**
 * toString ref.
 */

var toString = Object.prototype.toString;

/**
 * Return the type of `val`.
 *
 * @param {Mixed} val
 * @return {String}
 * @api public
 */

module.exports = function(val){
  switch (toString.call(val)) {
    case '[object Function]': return 'function';
    case '[object Date]': return 'date';
    case '[object RegExp]': return 'regexp';
    case '[object Arguments]': return 'arguments';
    case '[object Array]': return 'array';
    case '[object String]': return 'string';
  }

  if (val === null) return 'null';
  if (val === undefined) return 'undefined';
  if (val === Object(val)) return 'object';

  return typeof val;
};

});
require.register("component-event/index.js", function(exports, require, module){

/**
 * Bind `el` event `type` to `fn`.
 *
 * @param {Element} el
 * @param {String} type
 * @param {Function} fn
 * @param {Boolean} capture
 * @return {Function}
 * @api public
 */

exports.bind = function(el, type, fn, capture){
  if (el.addEventListener) {
    el.addEventListener(type, fn, capture);
  } else {
    el.attachEvent('on' + type, fn);
  }
  return fn;
};

/**
 * Unbind `el` event `type`'s callback `fn`.
 *
 * @param {Element} el
 * @param {String} type
 * @param {Function} fn
 * @param {Boolean} capture
 * @return {Function}
 * @api public
 */

exports.unbind = function(el, type, fn, capture){
  if (el.removeEventListener) {
    el.removeEventListener(type, fn, capture);
  } else {
    el.detachEvent('on' + type, fn);
  }
  return fn;
};

});
require.register("component-matches-selector/index.js", function(exports, require, module){

/**
 * Element prototype.
 */

var proto = Element.prototype;

/**
 * Vendor function.
 */

var vendor = proto.matchesSelector
  || proto.webkitMatchesSelector
  || proto.mozMatchesSelector
  || proto.msMatchesSelector
  || proto.oMatchesSelector;

/**
 * Expose `match()`.
 */

module.exports = match;

/**
 * Match `el` to `selector`.
 *
 * @param {Element} el
 * @param {String} selector
 * @return {Boolean}
 * @api public
 */

function match(el, selector) {
  if (vendor) return vendor.call(el, selector);
  var nodes = el.parentNode.querySelectorAll(selector);
  for (var i = 0; i < nodes.length; ++i) {
    if (nodes[i] == el) return true;
  }
  return false;
}
});
require.register("component-delegate/index.js", function(exports, require, module){

/**
 * Module dependencies.
 */

var matches = require('matches-selector')
  , event = require('event');

/**
 * Delegate event `type` to `selector`
 * and invoke `fn(e)`. A callback function
 * is returned which may be passed to `.unbind()`.
 *
 * @param {Element} el
 * @param {String} selector
 * @param {String} type
 * @param {Function} fn
 * @param {Boolean} capture
 * @return {Function}
 * @api public
 */

exports.bind = function(el, selector, type, fn, capture){
  return event.bind(el, type, function(e){
    if (matches(e.target, selector)) fn.call(el, e);
  }, capture);
};

/**
 * Unbind event `type`'s callback `fn`.
 *
 * @param {Element} el
 * @param {String} type
 * @param {Function} fn
 * @param {Boolean} capture
 * @api public
 */

exports.unbind = function(el, type, fn, capture){
  event.unbind(el, type, fn, capture);
};

});
require.register("component-indexof/index.js", function(exports, require, module){

var indexOf = [].indexOf;

module.exports = function(arr, obj){
  if (indexOf) return arr.indexOf(obj);
  for (var i = 0; i < arr.length; ++i) {
    if (arr[i] === obj) return i;
  }
  return -1;
};
});
require.register("component-domify/index.js", function(exports, require, module){

/**
 * Expose `parse`.
 */

module.exports = parse;

/**
 * Wrap map from jquery.
 */

var map = {
  option: [1, '<select multiple="multiple">', '</select>'],
  optgroup: [1, '<select multiple="multiple">', '</select>'],
  legend: [1, '<fieldset>', '</fieldset>'],
  thead: [1, '
', '
'],
  tbody: [1, '
', '
'],
  tfoot: [1, '
', '
'],
  colgroup: [1, '
', '
'],
  caption: [1, '
', '
'],
  tr: [2, '

', '

'],
  td: [3, '

', '

'],
  th: [3, '

', '

'],
  col: [2, '

<colgroup>', '</colgroup>
'],
  _default: [0, '', '']
};

/**
 * Parse `html` and return the children.
 *
 * @param {String} html
 * @return {Array}
 * @api private
 */

function parse(html) {
  if ('string' != typeof html) throw new TypeError('String expected');

  // tag name
  var m = /<([\w:]+)/.exec(html);
  if (!m) throw new Error('No elements were generated.');
  var tag = m[1];

  // body support
  if (tag == 'body') {
    var el = document.createElement('html');
    el.innerHTML = html;
    return [el.removeChild(el.lastChild)];
  }

  // wrap map
  var wrap = map[tag] || map._default;
  var depth = wrap[0];
  var prefix = wrap[1];
  var suffix = wrap[2];
  var el = document.createElement('div');
  el.innerHTML = prefix + html + suffix;
  while (depth--) el = el.lastChild;

  return orphan(el.children);
}

/**
 * Orphan `els` and return an array.
 *
 * @param {NodeList} els
 * @return {Array}
 * @api private
 */

function orphan(els) {
  var ret = [];

  while (els.length) {
    ret.push(els[0].parentNode.removeChild(els[0]));
  }

  return ret;
}

});
require.register("component-classes/index.js", function(exports, require, module){

/**
 * Module dependencies.
 */

var index = require('indexof');

/**
 * Whitespace regexp.
 */

var re = /\s+/;

/**
 * toString reference.
 */

var toString = Object.prototype.toString;

/**
 * Wrap `el` in a `ClassList`.
 *
 * @param {Element} el
 * @return {ClassList}
 * @api public
 */

module.exports = function(el){
  return new ClassList(el);
};

/**
 * Initialize a new ClassList for `el`.
 *
 * @param {Element} el
 * @api private
 */

function ClassList(el) {
  this.el = el;
  this.list = el.classList;
}

/**
 * Add class `name` if not already present.
 *
 * @param {String} name
 * @return {ClassList}
 * @api public
 */

ClassList.prototype.add = function(name){
  // classList
  if (this.list) {
    this.list.add(name);
    return this;
  }

  // fallback
  var arr = this.array();
  var i = index(arr, name);
  if (!~i) arr.push(name);
  this.el.className = arr.join(' ');
  return this;
};

/**
 * Remove class `name` when present, or
 * pass a regular expression to remove
 * any which match.
 *
 * @param {String|RegExp} name
 * @return {ClassList}
 * @api public
 */

ClassList.prototype.remove = function(name){
  if ('[object RegExp]' == toString.call(name)) {
    return this.removeMatching(name);
  }

  // classList
  if (this.list) {
    this.list.remove(name);
    return this;
  }

  // fallback
  var arr = this.array();
  var i = index(arr, name);
  if (~i) arr.splice(i, 1);
  this.el.className = arr.join(' ');
  return this;
};

/**
 * Remove all classes matching `re`.
 *
 * @param {RegExp} re
 * @return {ClassList}
 * @api private
 */

ClassList.prototype.removeMatching = function(re){
  var arr = this.array();
  for (var i = 0; i < arr.length; i++) {
    if (re.test(arr[i])) {
      this.remove(arr[i]);
    }
  }
  return this;
};

/**
 * Toggle class `name`.
 *
 * @param {String} name
 * @return {ClassList}
 * @api public
 */

ClassList.prototype.toggle = function(name){
  // classList
  if (this.list) {
    this.list.toggle(name);
    return this;
  }

  // fallback
  if (this.has(name)) {
    this.remove(name);
  } else {
    this.add(name);
  }
  return this;
};

/**
 * Return an array of classes.
 *
 * @return {Array}
 * @api public
 */

ClassList.prototype.array = function(){
  var arr = this.el.className.split(re);
  if ('' === arr[0]) arr.pop();
  return arr;
};

/**
 * Check if class `name` is present.
 *
 * @param {String} name
 * @return {ClassList}
 * @api public
 */

ClassList.prototype.has =
ClassList.prototype.contains = function(name){
  return this.list
    ? this.list.contains(name)
    : !! ~index(this.array(), name);
};

});
require.register("component-sort/index.js", function(exports, require, module){

/**
 * Expose `sort`.
 */

exports = module.exports = sort;

/**
 * Sort `el`'s children with the given `fn(a, b)`.
 *
 * @param {Element} el
 * @param {Function} fn
 * @api public
 */

function sort(el, fn) {
  var arr = [].slice.call(el.children).sort(fn);
  el.innerHTML = '';
  for (var i = 0; i < arr.length; i++) {
    el.appendChild(arr[i]);
  }
};

/**
 * Sort descending.
 *
 * @param {Element} el
 * @param {Function} fn
 * @api public
 */

exports.desc = function(el, fn){
  sort(el, function(a, b){
    return ~fn(a, b) + 1;
  });
};

});
require.register("dom/index.js", function(exports, require, module){
/**
 * Module dependencies.
 */

var domify = require('domify')
  , classes = require('classes')
  , indexof = require('indexof')
  , delegate = require('delegate')
  , events = require('event')
  , type = require('type')

/**
 * Attributes supported.
 */

var attrs = [
  'id',
  'src',
  'rel',
  'cols',
  'rows',
  'name',
  'href',
  'title',
  'style',
  'width',
  'height',
  'tabindex',
  'placeholder'
];

/**
 * Expose `dom()`.
 */

exports = module.exports = dom;

/**
 * Expose supported attrs.
 */

exports.attrs = attrs;

/**
 * Return a dom `List` for the given
 * `html`, selector, or element.
 *
 * @param {String|Element|List}
 * @return {List}
 * @api public
 */

function dom(selector, context) {
  // array
  if (Array.isArray(selector)) {
    return new List(selector);
  }

  // List
  if (selector instanceof List) {
    return selector;
  }

  // node
  if (selector.nodeName) {
    return new List([selector]);
  }

  if ('string' != typeof selector) {
    throw new TypeError('invalid selector');
  }

  // html
  if ('<' == selector.charAt(0)) {
    return new List([domify(selector)[0]], selector);
  }

  // selector
  var ctx = context
    ? (context.els ? context.els[0] : context)
    : document;

  return new List(ctx.querySelectorAll(selector), selector);
}

/**
 * Expose `List` constructor.
 */

exports.List = List;

/**
 * Initialize a new `List` with the
 * given array-ish of `els` and `selector`
 * string.
 *
 * @param {Mixed} els
 * @param {String} selector
 * @api private
 */

function List(els, selector) {
  this.els = els || [];
  this.selector = selector;
}

/**
 * Remove elements from the DOM.
 *
 * @api public
 */

List.prototype.remove = function(){
  for (var i = 0; i < this.els.length; i++) {
    var el = this.els[i];
    var parent = el.parentNode;
    if (parent) parent.removeChild(el);
  }
};

/**
 * Set attribute `name` to `val`, or get attr `name`.
 *
 * @param {String} name
 * @param {String} [val]
 * @return {String|List} self
 * @api public
 */

List.prototype.attr = function(name, val){
  if (1 == arguments.length) {
    return this.els[0] && this.els[0].getAttribute(name);
  }

  return this.forEach(function(el){
    el.setAttribute(name, val);
  });
};

/**
 * Set property `name` to `val`, or get property `name`.
 *
 * @param {String} name
 * @param {String} [val]
 * @return {Object|List} self
 * @api public
 */

List.prototype.prop = function(name, val){
  if (1 == arguments.length) {
    return this.els[0] && this.els[0][name];
  }

  return this.forEach(function(el){
    el[name] = val;
  });
};

/**
 * Return a cloned `List` with all elements cloned.
 *
 * @return {List}
 * @api public
 */

List.prototype.clone = function(){
  var arr = [];
  for (var i = 0, len = this.els.length; i < len; ++i) {
    arr.push(this.els[i].cloneNode(true));
  }
  return new List(arr);
};

/**
 * Prepend `val`.
 *
 * @param {String|Element|List} val
 * @return {List} new list
 * @api public
 */

List.prototype.prepend = function(val){
  var el = this.els[0];
  if (!el) return this;
  val = dom(val);
  for (var i = 0; i < val.els.length; ++i) {
    if (el.children.length) {
      el.insertBefore(val.els[i], el.firstChild);
    } else {
      el.appendChild(val.els[i]);
    }
  }
  return val;
};

/**
 * Append `val`.
 *
 * @param {String|Element|List} val
 * @return {List} new list
 * @api public
 */

List.prototype.append = function(val){
  var el = this.els[0];
  if (!el) return this;
  val = dom(val);
  for (var i = 0; i < val.els.length; ++i) {
    el.appendChild(val.els[i]);
  }
  return val;
};

/**
 * Append self's `el` to `val`
 *
 * @param {String|Element|List} val
 * @return {List} self
 * @api public
 */

List.prototype.appendTo = function(val){
  dom(val).append(this);
  return this;
};

/**
 * Return a `List` containing the element at `i`.
 *
 * @param {Number} i
 * @return {List}
 * @api public
 */

List.prototype.at = function(i){
  return new List([this.els[i]], this.selector);
};

/**
 * Return a `List` containing the first element.
 *
 * @param {Number} i
 * @return {List}
 * @api public
 */

List.prototype.first = function(){
  return new List([this.els[0]], this.selector);
};

/**
 * Return a `List` containing the last element.
 *
 * @param {Number} i
 * @return {List}
 * @api public
 */

List.prototype.last = function(){
  return new List([this.els[this.els.length - 1]], this.selector);
};

/**
 * Return an `Element` at `i`.
 *
 * @param {Number} i
 * @return {Element}
 * @api public
 */

List.prototype.get = function(i){
  return this.els[i || 0];
};

/**
 * Return list length.
 *
 * @return {Number}
 * @api public
 */

List.prototype.length = function(){
  return this.els.length;
};

/**
 * Return element text.
 *
 * @param {String} str
 * @return {String|List}
 * @api public
 */

List.prototype.text = function(str){
  // TODO: real impl
  if (1 == arguments.length) {
    this.forEach(function(el){
      el.textContent = str;
    });
    return this;
  }

  var str = '';
  for (var i = 0; i < this.els.length; ++i) {
    str += this.els[i].textContent;
  }
  return str;
};

/**
 * Return element html.
 *
 * @return {String} html
 * @api public
 */

List.prototype.html = function(html){
  if (1 == arguments.length) {
    this.forEach(function(el){
      el.innerHTML = html;
    });
  }
  // TODO: real impl
  return this.els[0] && this.els[0].innerHTML;
};

/**
 * Bind to `event` and invoke `fn(e)`. When
 * a `selector` is given then events are delegated.
 *
 * @param {String} event
 * @param {String} [selector]
 * @param {Function} fn
 * @param {Boolean} capture
 * @return {List}
 * @api public
 */

List.prototype.on = function(event, selector, fn, capture){
  if ('string' == typeof selector) {
    for (var i = 0; i < this.els.length; ++i) {
      fn._delegate = delegate.bind(this.els[i], selector, event, fn, capture);
    }
    return this;
  }

  capture = fn;
  fn = selector;

  for (var i = 0; i < this.els.length; ++i) {
    events.bind(this.els[i], event, fn, capture);
  }

  return this;
};

/**
 * Unbind to `event` and invoke `fn(e)`. When
 * a `selector` is given then delegated event
 * handlers are unbound.
 *
 * @param {String} event
 * @param {String} [selector]
 * @param {Function} fn
 * @param {Boolean} capture
 * @return {List}
 * @api public
 */

List.prototype.off = function(event, selector, fn, capture){
  if ('string' == typeof selector) {
    for (var i = 0; i < this.els.length; ++i) {
      // TODO: add selector support back
      delegate.unbind(this.els[i], event, fn._delegate, capture);
    }
    return this;
  }

  capture = fn;
  fn = selector;

  for (var i = 0; i < this.els.length; ++i) {
    events.unbind(this.els[i], event, fn, capture);
  }
  return this;
};

/**
 * Iterate elements and invoke `fn(list, i)`.
 *
 * @param {Function} fn
 * @return {List} self
 * @api public
 */

List.prototype.each = function(fn){
  for (var i = 0; i < this.els.length; ++i) {
    fn(new List([this.els[i]], this.selector), i);
  }
  return this;
};

/**
 * Iterate elements and invoke `fn(el, i)`.
 *
 * @param {Function} fn
 * @return {List} self
 * @api public
 */

List.prototype.forEach = function(fn){
  for (var i = 0; i < this.els.length; ++i) {
    fn(this.els[i], i);
  }
  return this;
};

/**
 * Map elements invoking `fn(list, i)`.
 *
 * @param {Function} fn
 * @return {Array}
 * @api public
 */

List.prototype.map = function(fn){
  var arr = [];
  for (var i = 0; i < this.els.length; ++i) {
    arr.push(fn(new List([this.els[i]], this.selector), i));
  }
  return arr;
};

/**
 * Filter elements invoking `fn(list, i)`, returning
 * a new `List` of elements when a truthy value is returned.
 *
 * @param {Function} fn
 * @return {List}
 * @api public
 */

List.prototype.select =
List.prototype.filter = function(fn){
  var el;
  var list = new List([], this.selector);
  for (var i = 0; i < this.els.length; ++i) {
    el = this.els[i];
    if (fn(new List([el], this.selector), i)) list.els.push(el);
  }
  return list;
};

/**
 * Add the given class `name`.
 *
 * @param {String} name
 * @return {List} self
 * @api public
 */

List.prototype.addClass = function(name){
  var el;
  for (var i = 0; i < this.els.length; ++i) {
    el = this.els[i];
    el._classes = el._classes || classes(el);
    el._classes.add(name);
  }
  return this;
};

/**
 * Remove the given class `name`.
 *
 * @param {String|RegExp} name
 * @return {List} self
 * @api public
 */

List.prototype.removeClass = function(name){
  var el;

  if ('regexp' == type(name)) {
    for (var i = 0; i < this.els.length; ++i) {
      el = this.els[i];
      el._classes = el._classes || classes(el);
      var arr = el._classes.array();
      for (var j = 0; j < arr.length; j++) {
        if (name.test(arr[j])) {
          el._classes.remove(arr[j]);
        }
      }
    }
    return this;
  }

  for (var i = 0; i < this.els.length; ++i) {
    el = this.els[i];
    el._classes = el._classes || classes(el);
    el._classes.remove(name);
  }

  return this;
};

/**
 * Toggle the given class `name`,
 * optionally a `bool` may be given
 * to indicate that the class should
 * be added when truthy.
 *
 * @param {String} name
 * @param {Boolean} bool
 * @return {List} self
 * @api public
 */

List.prototype.toggleClass = function(name, bool){
  var el;
  var fn = 'toggle';

  // toggle with boolean
  if (2 == arguments.length) {
    fn = bool ? 'add' : 'remove';
  }

  for (var i = 0; i < this.els.length; ++i) {
    el = this.els[i];
    el._classes = el._classes || classes(el);
    el._classes[fn](name);
  }

  return this;
};

/**
 * Check if the given class `name` is present.
 *
 * @param {String} name
 * @return {Boolean}
 * @api public
 */

List.prototype.hasClass = function(name){
  var el;
  for (var i = 0; i < this.els.length; ++i) {
    el = this.els[i];
    el._classes = el._classes || classes(el);
    if (el._classes.has(name)) return true;
  }
  return false;
};

/**
 * Set CSS `prop` to `val` or get `prop` value.
 * Also accepts an object (`prop`: `val`)
 *
 * @param {String} prop
 * @param {Mixed} val
 * @return {List|String}
 * @api public
 */

List.prototype.css = function(prop, val){
  if (2 == arguments.length) return this.setStyle(prop, val);

  if ('object' == type(prop)) {
    for (var key in prop) {
      this.setStyle(key, prop[key]);
    }
    return this;
  }

  return this.getStyle(prop);
};

/**
 * Set CSS `prop` to `val`.
 *
 * @param {String} prop
 * @param {Mixed} val
 * @return {List} self
 * @api private
 */

List.prototype.setStyle = function(prop, val){
  for (var i = 0; i < this.els.length; ++i) {
    this.els[i].style[prop] = val;
  }
  return this;
};

/**
 * Get CSS `prop` value.
 *
 * @param {String} prop
 * @return {String}
 * @api private
 */

List.prototype.getStyle = function(prop){
  var el = this.els[0];
  if (el) return el.style[prop];
};

/**
 * Find children matching the given `selector`.
 *
 * @param {String} selector
 * @return {List}
 * @api public
 */

List.prototype.find = function(selector){
  // TODO: real implementation
  var list = new List([], this.selector);
  var el, els;
  for (var i = 0; i < this.els.length; ++i) {
    el = this.els[i];
    els = el.querySelectorAll(selector);
    for (var j = 0; j < els.length; ++j) {
      list.els.push(els[j]);
    }
  }
  return list;
};

/**
 * Attribute accessors.
 */

attrs.forEach(function(name){
  List.prototype[name] = function(val){
    if (0 == arguments.length) return this.attr(name);
    return this.attr(name, val);
  };
});

});
require.alias("component-type/index.js", "dom/deps/type/index.js");

require.alias("component-event/index.js", "dom/deps/event/index.js");

require.alias("component-delegate/index.js", "dom/deps/delegate/index.js");
require.alias("component-matches-selector/index.js", "component-delegate/deps/matches-selector/index.js");

require.alias("component-event/index.js", "component-delegate/deps/event/index.js");

require.alias("component-indexof/index.js", "dom/deps/indexof/index.js");

require.alias("component-domify/index.js", "dom/deps/domify/index.js");

require.alias("component-classes/index.js", "dom/deps/classes/index.js");
require.alias("component-indexof/index.js", "component-classes/deps/indexof/index.js");

require.alias("component-sort/index.js", "dom/deps/sort/index.js");

if (typeof exports == "object") {
  module.exports = require("dom");
} else if (typeof define == "function" && define.amd) {
  define(function(){ return require("dom"); });
} else {
  window["dom"] = require("dom");
}})();


text:
namespace Afterman.nRepo.UnitsOfWork
{
    public interface IUnitOfWorkFactory
    {
        IUnitOfWork Create();

    }
}

redpajama_set_name: RedPajamaGithub


text:
require "audit_history"

class AuditsController < ApplicationController
  def index
      @history = AuditHistory.new(audit_log)
  end

  private

  def audit_log
    if params.key?(:entry_id)
      return policy_scope(Entry).find(params[:entry_id]).audits
    end

    if params.key?(:project_id)
      return Project.find_by_slug(params[:project_id]).audits
    end
  end
end


text:
Format numbers with examples rather than complex codes. This can make your code more readable as well as open up opporunities for your users to specify their preferred output formats.

## Installation

Add this line to your application's Gemfile:

    gem 'numerology'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install numerology

## Usage

Adds the format_like method to Numeric. Pass a string example of the format you are looking and numerology will attempt to format the number similarly.

### Features
Currently the gem supports the following formatting options. Patches to add other formatting features are welcomed.

* Thousands separators.
* Significant digits
* Leading 0's

### Examples

```ruby
num = 123456
num.format_like('1,111') >>> "123,456"
num.format_like('1.111') >>> "123.456"
num.format_like('1 111') >>> "123 456"
num.format_like('1,100') >>> "123,500"

1234.format_like('001,111') >>> "001,234"
12345.format_like('001,111') >>> "012,345"
```
If you are familiar with the syntax used by the stamp gem, which inspired this one, you can also use the following aliases for format_like:

* `stamp`
* `stamp_like`

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Implement your new features, with tests and update the documentation
4. Commit your changes (`git commit -am 'Added some feature'`)
5. Push to the branch (`git push origin my-new-feature`)
6. Create new Pull Request


text:
import IOptionsBase = require("../IOptions");

interface IOptions extends IOptionsBase {
    document?: Document;
}

export = IOptions;


text:
/**
 * Base Styles
 */
.media-modal * {
	-webkit-box-sizing: content-box;
	-moz-box-sizing:    content-box;
	box-sizing:         content-box;
}

.media-modal,
.media-frame {
	font-family: "Open Sans", sans-serif;
	font-size: 12px;
}

.media-frame input,
.media-frame textarea {
	padding: 6px 8px;
	line-height: 16px;
}

.media-frame select,
.wp-admin .media-frame select {
	line-height: 28px;
	margin-top: 3px;
}

.media-frame a {
	border-bottom: none;
	color: #21759b;
}

.media-frame a:hover {
	color: #d54e21;
}

.media-frame a.button {
	color: #333;
}

.media-frame a.button:hover {
	color: #222;
}

.media-frame a.button-primary,
.media-frame a.button-primary:hover {
	color: #fff;
}

.media-frame input[type="text"],
.media-frame input[type="password"],
.media-frame input[type="number"],
.media-frame input[type="search"],
.media-frame input[type="email"],
.media-frame input[type="url"],
.media-frame textarea,
.media-frame select {
	font-family: "Open Sans", sans-serif;
	font-size: 12px;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-ms-box-sizing: border-box; /* ie8 only */
	box-sizing: border-box;
	border-width: 1px;
	border-style: solid;
	border-color: #dfdfdf;
}

.media-frame select {
	height: 24px;
	padding: 2px;
}

.media-frame input:disabled,
.media-frame textarea:disabled,
.media-frame input[readonly],
.media-frame textarea[readonly] {
	background-color: #eee;
}

.media-frame input[type="search"] {
	-webkit-appearance: textfield;
}

.media-frame :-moz-placeholder {
   color: #a9a9a9;
}

/* Enable draggable on IE10 touch events until it's rolled into jQuery UI core */
.ui-sortable,
.ui-draggable {
	-ms-touch-action: none;
	touch-action:     none;
}

.meta-box-sortables.ui-sortable {
	-ms-touch-action: auto;
	touch-action:     auto;
}

.meta-box-sortables.ui-sortable .hndle {
	-ms-touch-action: none;
	touch-action:     none;
}

/**
 * Modal
 */
.media-modal {
	position: fixed;
	top: 30px;
	left: 30px;
	right: 30px;
	bottom: 30px;
	z-index: 160000;
}

.wp-customizer .media-modal {
	z-index: 560000;
}

.media-modal-backdrop {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	min-height: 360px;
	background: #000;
	opacity: 0.7;
	z-index: 159900;
}

.wp-customizer .media-modal-backdrop {
	z-index: 559900;
}

.media-modal-close {
	position: absolute;
	text-decoration: none;
	top: 5px;
	right: 10px;
	width: 30px;
	height: 30px;
	z-index: 1000;
}

.media-modal-close span.media-modal-icon {
	display: block;
	margin: 8px auto 0;
	width: 15px;
	height: 15px;
	background-image: none;
}

.media-modal-close .media-modal-icon:before {
	content: '\f158';
	font: normal 20px/1 'dashicons';
	speak: none;
	vertical-align: middle;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	color: #666;
}

.media-modal-close:hover .media-modal-icon:before {
	color: #2ea2cc;
}

.media-modal-close:active {
	outline: 0;
}

.media-modal-content {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: auto;
	min-height: 300px;
	box-shadow: 0 5px 15px rgba(0,0,0,0.7);
	background: #fcfcfc;
	-webkit-font-smoothing: subpixel-antialiased;
}

.media-modal-icon {
	background-image: url(../images/uploader-icons.png);
	background-repeat: no-repeat;
}

/**
 * Toolbar
 */
.media-toolbar {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	height: 60px;
	padding: 0 16px;
	border: 0 solid #dfdfdf;
	overflow: hidden;
}

.media-toolbar-primary {
	float: right;
	height: 100%;
}

.media-toolbar-secondary {
	float: left;
	height: 100%;
}

.media-toolbar-primary > .media-button,
.media-toolbar-primary > .media-button-group {
	margin-left: 10px;
	float: left;
	margin-top: 15px;
}

.media-toolbar-secondary > .media-button,
.media-toolbar-secondary > .media-button-group {
	margin-right: 10px;
	float: left;
	margin-top: 15px;
}

/**
 * Sidebar
 */
.media-sidebar {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 267px;
	padding: 0 16px 24px;
	z-index: 75;
	background: #f3f3f3;
	border-left: 1px solid #ddd;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.hide-toolbar .media-sidebar {
	bottom: 0;
}

.media-sidebar .sidebar-title {
	font-size: 20px;
	margin: 0;
	padding: 12px 10px 10px;
	line-height: 28px;
}

.media-sidebar .sidebar-content {
	padding: 0 10px;
	margin-bottom: 130px;
}

.media-sidebar .search {
	display: block;
	width: 100%;
}

.media-sidebar h3 {
	position: relative;
	font-weight: bold;
	text-transform: uppercase;
	font-size: 12px;
	color: #666;
	margin: 24px 0 8px;
}

.media-sidebar .setting {
	display: block;
	float: left;
	width: 100%;
	margin: 1px 0;
}

.media-sidebar .setting label {
	display: block;
}

.media-sidebar .setting .link-to-custom {
	margin: 3px 0;
}

.media-sidebar .setting span {
	min-width: 30%;
	margin-right: 4%;
	font-size: 12px;
}

.media-sidebar .setting select {
	max-width: 65%;
}

.media-sidebar .setting input[type="checkbox"],
.media-sidebar .field input[type="checkbox"] {
	width: 16px;
	float: none;
	margin: 8px 3px 0;
	padding: 0;
}

.media-sidebar .setting span,
.compat-item label span {
	float: left;
	min-height: 22px;
	padding-top: 8px;
	line-height: 16px;
	text-align: right;
	font-weight: normal;
	color: #666;
}

.media-sidebar .setting input,
.media-sidebar .setting textarea {
	margin: 1px;
	width: 65%;
	float: right;
}

.media-sidebar .setting textarea,
.compat-item .field textarea {
	height: 62px;
	resize: vertical;
}

.media-sidebar select {
	margin-top: 3px;
}

.compat-item {
	float: left;
	width: 100%;
	overflow: hidden;
}

.compat-item table {
	width: 100%;
	table-layout: fixed;
	border-spacing: 0;
	border: 0;
}

.compat-item tr {
	padding: 2px 0;
	display: block;
	overflow: hidden;
}

.compat-item .label,
.compat-item .field {
	display: block;
	margin: 0;
	padding: 0;
}

.compat-item .label {
	min-width: 30%;
	margin-right: 4%;
	float: left;
	text-align: right;
}

.compat-item .label span {
	display: block;
	width: 100%;
}

.compat-item .field {
	float: right;
	width: 66%;
}

.compat-item .field input {
	width: 100%;
	margin: 0;
}

/**
 * Menu
 */
.media-menu {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 16px 0;
	background: #f3f3f3;
	border-right-width: 1px;
	border-right-style: solid;
	border-right-color: #ccc;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.media-menu > a {
	display: block;
	position: relative;
	padding: 8px 20px;
	margin: 0;
	line-height: 18px;
	font-size: 14px;
	color: #0074a2;
	text-decoration: none;
}

.media-menu > a:hover {
	color: #21759B;
	background: rgba( 0, 0, 0, 0.04 );
}

.media-menu > a:active {
	outline: none;
}

.media-menu .active,
.media-menu .active:hover {
	color: #222;
	font-weight: bold;
}

.media-menu .separator {
	height: 0;
	margin: 12px 20px;
	padding: 0;
	border-top: 1px solid #ddd;
}

/**
 * Menu
 */
.media-router {
	position: relative;
	padding: 0 6px;
	margin: 0;
	clear: both;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.media-router > a {
	position: relative;
	float: left;
	padding: 8px 10px 9px;
	margin: 0;
	height: 18px;
	line-height: 18px;
	font-size: 14px;
	text-decoration: none;
}

.media-router > a:last-child {
	border-right: 0;
}

.media-router > a:active,
.media-router > a:focus {
	outline: none;
}

.media-router .active,
.media-router .active:hover {
	color: #333;
}

.media-router .active,
.media-router > a.active:last-child {
	margin: -1px -1px 0;
	background: #fff;
	border: 1px solid #ddd;
	border-bottom: none;
}

.media-router .active:after {
	display: none;
}

/**
 * Frame
 */
.media-frame {
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

.media-frame-menu {
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 199px;
	z-index: 150;
}

.media-frame-title {
	position: absolute;
	top: 0;
	left: 200px;
	right: 0;
	height: 56px;
	z-index: 200;
}

.media-frame-router {
	position: absolute;
	top: 56px;
	left: 200px;
	right: 0;
	height: 36px;
	z-index: 200;
}

.media-frame-content {
	position: absolute;
	top: 90px;
	left: 200px;
	right: 0;
	bottom: 61px;
	height: auto;
	width: auto;
	margin: 0;
	overflow: auto;
	background: #fff;
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
}

.media-frame-toolbar {
	position: absolute;
	left: 200px;
	right: 0;
	bottom: 0;
	height: 60px;
	z-index: 100;
}

.media-frame.hide-menu .media-frame-title,
.media-frame.hide-menu .media-frame-router,
.media-frame.hide-menu .media-frame-toolbar,
.media-frame.hide-menu .media-frame-content {
	left: 0;
}

.media-frame.hide-menu .media-frame-menu {
	left: -200px;
}

.media-frame.hide-toolbar .media-frame-content {
	bottom: 0;
}

.media-frame.hide-toolbar .media-frame-toolbar {
	bottom: -61px;
}

.media-frame.hide-router .media-frame-content {
	top: 56px;
}

.media-frame.hide-router .media-frame-router {
	display: none;
}

.media-frame.hide-router .media-frame-title {
	border-bottom: 1px solid #dfdfdf;
	box-shadow: 0 4px 4px -4px rgba( 0, 0, 0, 0.1 );
}

.media-frame .media-toolbar .add-to-gallery {
	display: none;
}

.media-frame-title h1 {
	padding: 0 16px;
	font-size: 22px;
	line-height: 60px;
	margin: 0;
}

/**
 * Iframes
 */
.media-frame .media-iframe {
	overflow: hidden;
}

.media-frame .media-iframe,
.media-frame .media-iframe iframe {
	height: 100%;
	width: 100%;
	border: 0;
}

/**
 * Attachment Browser Filters
 */
.media-frame select.attachment-filters {
	margin-top: 11px;
	margin-right: 10px;
}

/**
 * Search
 */
.media-frame .search {
	margin-top: 11px;
	padding: 4px;
	line-height: 18px;
	font-size: 13px;
	color: #464646;
	font-family: "Open Sans", sans-serif;
	-webkit-appearance: none;
}

.media-toolbar-secondary .search {
	margin-right: 16px;
}

/**
 * Attachments
 */
.attachments {
	margin: 0;
	padding-right: 16px;
	-webkit-overflow-scrolling: touch;
}

/**
 * Attachment
 */
.attachment {
	position: relative;
	float: left;

	padding: 0;
	margin: 0 10px 20px;
	color: #464646;
	list-style: none;
	text-align: center;

	-webkit-user-select: none;
	-moz-user-select:    none;
	-ms-user-select:     none;
	-o-user-select:      none;
	user-select:         none;
}

.selected.attachment {
	box-shadow:
		0 0 0 1px #fff,
		0 0 0 3px #ccc;
}

.attachment-preview {
	position: relative;
	width: 199px;
	height: 199px;
	box-shadow:
		inset 0 0 15px rgba( 0, 0, 0, 0.1 ),
		inset 0 0 0 1px rgba( 0, 0, 0, 0.05 );
	background: #eee;
	cursor: pointer;
}

.attachment .icon {
	margin: 0 auto;
	overflow: hidden;
	padding-top: 20%;
}

.attachment .thumbnail {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	margin: 0 auto;
	overflow: hidden;
	max-width: 100%;
	max-height: 100%;
}

.attachment-preview .thumbnail:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, 0.1 );
	overflow: hidden;
}

/* @noflip */
.attachment .thumbnail img {
	top: 0;
	left: 0;
}

/* @noflip */
.attachment .thumbnail .centered {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-webkit-transform: translate( 50%, 50% );
	-moz-transform:    translate( 50%, 50% );
	-ms-transform:     translate( 50%, 50% );
	-o-transform:      translate( 50%, 50% );
	transform:         translate( 50%, 50% );
}

.attachment .thumbnail .centered img {
	-webkit-transform: translate( -50%, -50% );
	-moz-transform:    translate( -50%, -50% );
	-ms-transform:     translate( -50%, -50% );
	-o-transform:      translate( -50%, -50% );
	transform:         translate( -50%, -50% );
}

.attachment .filename {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: hidden;
	max-height: 100%;

	word-wrap: break-word;
	text-align: center;
	font-weight: bold;
	background: rgba( 255, 255, 255, 0.8 );
	box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, 0.15 );
}

.attachment .filename div {
	padding: 5px 10px;
}

.attachment-preview .thumbnail {
	width: 199px;
	height: 199px;
}

.attachment .thumbnail img {
	position: absolute;
}

.attachment .close {
	display: none;
	position: absolute;
	top: 5px;
	right: 5px;
	height: 22px;
	width: 22px;
	padding: 0;
	font-size: 20px;
	line-height: 20px;
	text-align: center;
	text-decoration: none;
	color: #464646;
	background-color: #fff;
	background-position: -96px 4px;
	border-width: 0;
	border-radius: 3px;
	box-shadow: 0 0 0 1px rgba( 0, 0, 0, 0.3 );
}

.attachment .close:hover {
	box-shadow: 0 0 0 1px rgba( 0, 0, 0, 0.6 );
}

.attachment:hover .close {
	display: block;
}

.attachment .check {
	display: none;
	height: 24px;
	width: 24px;
	position: absolute;
	top: -6px;
	right: -6px;
	outline: none;
	background: #eee;
	box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba( 0, 0, 0, 0.4 );
}

.attachment .check div {
	background-position: -1px 0;
	height: 15px;
	width: 15px;
	margin: 5px;
}

.attachment .check:hover div {
	background-position: -40px 0;
}

.attachment.selected .check {
	display: block;
}

.attachment.details {
	box-shadow: 0 0 0 1px #fff,
				0 0 0 5px #1e8cbe;
}

.attachment.details .check {
	background-color: #1e8cbe;
	box-shadow: 0 0 0 1px #fff,
				0 0 0 2px #1e8cbe;
}

.attachment.details .check div {
	background-position: -21px 0;
}

.attachment.details .check:hover div {
	background-position: -60px 0;
}

.media-frame .attachment .describe {
	position: relative;
	display: block;
	width: 100%;
	margin: -1px 0 0;
	padding: 8px;
	font-size: 12px;
	border-radius: 0;
}

/**
 * Attachments Browser
 */
.media-frame .attachments-browser {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.attachments-browser .media-toolbar {
	right: 300px;
	height: 50px;
}

.attachments-browser .media-toolbar-primary > .media-button,
.attachments-browser .media-toolbar-primary > .media-button-group,
.attachments-browser .media-toolbar-secondary > .media-button,
.attachments-browser .media-toolbar-secondary > .media-button-group {
	margin-top: 10px;
}

.attachments-browser .attachments,
.attachments-browser .uploader-inline {
	position: absolute;
	top: 50px;
	left: 0;
	right: 300px;
	bottom: 0;
	overflow: auto;
}

.attachments-browser .instructions {
	display: inline-block;
	margin-top: 16px;
	line-height: 18px;
	font-size: 13px;
	color: #666;
}

/**
 * Progress Bar
 */
.media-progress-bar {
	position: relative;
	height: 10px;
	width: 70%;
	margin: 10px auto;
	border-radius: 10px;
	background: #dfdfdf;
	background: rgba( 0, 0, 0, 0.1 );
}

.media-progress-bar div {
	height: 10px;
	min-width: 20px;
	width: 0;
	background: #1e8cbe;
	border-radius: 10px;
	-webkit-transition: width 300ms;
	-moz-transition:    width 300ms;
	-ms-transition:     width 300ms;
	-o-transition:      width 300ms;
	transition:         width 300ms;
}

.media-uploader-status .media-progress-bar {
	display: none;
	width: 100%;
}

.uploading.media-uploader-status .media-progress-bar {
	display: block;
}

.attachment-preview .media-progress-bar {
	position: absolute;
	top: 50%;
	left: 15%;
	width: 70%;
	margin: -5px 0 0 0;
}

.media-uploader-status {
	position: relative;
	margin: 0 auto;
	padding-bottom: 10px;
	max-width: 400px;
}

.media-sidebar .media-uploader-status {
	border-bottom: 1px solid #dfdfdf;
	box-shadow: 0 1px 0 #fff;
}

.uploader-inline .media-uploader-status h3 {
	display: none;
}

.media-uploader-status .upload-details {
	display: none;
	font-size: 12px;
	color: #666;
}

.uploading.media-uploader-status .upload-details {
	display: block;
}

.media-uploader-status .upload-detail-separator {
	padding: 0 4px;
}

.media-uploader-status .upload-count {
	color: #464646;
}

.media-uploader-status .upload-dismiss-errors,
.media-uploader-status .upload-errors {
	display: none;
}

.errors.media-uploader-status .upload-dismiss-errors,
.errors.media-uploader-status .upload-errors {
	display: block;
}

.media-uploader-status .upload-dismiss-errors {
	text-decoration: none;
}

.media-sidebar .media-uploader-status .upload-dismiss-errors {
	position: absolute;
	top: 0;
	right: 0;
}

.upload-errors .upload-error {
	margin: 8px auto 0 auto;
	padding: 8px;
	border: 1px #c00 solid;
	background: #ffebe8;
	border-radius: 3px;
}

.upload-errors .upload-error-label {
	padding: 2px 4px;
	margin-right: 8px;
	font-weight: bold;
	color: #fff;
	background: #e00;
	background-image: -webkit-gradient(linear, left top, left bottom, from(#e00), to(#a00));
	background-image: -webkit-linear-gradient(top, #e00, #a00);
	background-image:    -moz-linear-gradient(top, #e00, #a00);
	background-image:      -o-linear-gradient(top, #e00, #a00);
	background-image:   linear-gradient(to bottom, #e00, #a00);
	border-radius: 3px;
}

.upload-errors .upload-error-message {
	display: block;
	padding-top: 8px;
	color: #b44;
	word-wrap: break-word;
}

.uploader-window {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba( 0, 86, 132, 0.9 );

	z-index: 250000;
	display: none;
	text-align: center;
	opacity: 0;

	-webkit-transition: opacity 250ms;
	-moz-transition:    opacity 250ms;
	-ms-transition:     opacity 250ms;
	-o-transition:      opacity 250ms;
	transition:         opacity 250ms;
}

.uploader-window-content {
	position: absolute;
	top: 10px;
	left: 10px;
	right: 10px;
	bottom: 10px;
	border: 1px dashed #fff;
}

.uploader-window h3 {
	margin: -0.5em 0 0;
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	-webkit-transform: translateY( -50% );
	-moz-transform:    translateY( -50% );
	-ms-transform:     translateY( -50% );
	-o-transform:      translateY( -50% );
	transform:         translateY( -50% );

	font-size: 40px;
	color: #fff;
	padding: 0;
}

.uploader-window .media-progress-bar {
	margin-top: 20px;
	max-width: 300px;
	background: transparent;
	border-color: #fff;
	display: none;
}

.uploader-window .media-progress-bar div {
	background: #fff;
}

.uploading .uploader-window .media-progress-bar {
	display: block;
}

.media-frame .uploader-inline {
	margin: 20px;
	padding: 20px;
	text-align: center;
}

.uploader-inline-content {
	position: absolute;
	top: 30%;
	left: 0;
	right: 0;
}

.uploader-inline-content .upload-ui {
	margin: 4em 0;
}

.uploader-inline-content .post-upload-ui {
	margin-bottom: 2em;
}

.uploader-inline .has-upload-message .upload-ui {
	margin: 0 0 4em;
}

.uploader-inline h3 {
	font-size: 20px;
	line-height: 28px;
	font-weight: 400;
	margin-bottom: 1.6em;
}

.uploader-inline .has-upload-message .upload-instructions {
	font-size: 14px;
	color: #464646;
	font-weight: normal;
}

.uploader-inline .drop-instructions {
	display: none;
}

.supports-drag-drop .uploader-inline .drop-instructions {
	display: block;
}

.uploader-inline p {
	font-size: 12px;
}

.uploader-inline .media-progress-bar {
	display: none;
}

.uploading.uploader-inline .media-progress-bar {
	display: block;
}

.uploader-inline .browser {
	display: inline-block !important;
}

/**
 * Selection
 */
.media-selection {
	position: absolute;
	top: 0;
	left: 0;
	right: 350px;
	height: 60px;
	padding: 0 0 0 16px;
	overflow: hidden;
	white-space: nowrap;
}

.media-selection .selection-info {
	display: inline-block;
	font-size: 12px;
	height: 60px;
	margin-right: 10px;
	vertical-align: top;
}

.media-selection.empty,
.media-selection.editing {
	display: none;
}

.media-selection.one .edit-selection {
	display: none;
}

.media-selection .count {
	display: block;
	padding-top: 12px;
	font-size: 14px;
	line-height: 20px;
	font-weight: bold;
}

.media-selection .selection-info a {
	display: block;
	float: left;
	padding: 1px 8px;
	margin: 1px 8px 1px -8px;
	line-height: 16px;
	text-decoration: none;
	border-right: 1px solid #dfdfdf;
	color: #21759B;
}

.media-selection .selection-info a:hover {
	background: #21759B;
	color: #fff;
	border-color: transparent;
}

.media-selection .selection-info a:last-child {
	border-right: 0;
	margin-right: 0;
}

.media-selection .selection-info .clear-selection {
	color: red;
}

.media-selection .selection-info .clear-selection:hover {
	background: red;
}

.media-selection .selection-view {
	display: inline-block;
	vertical-align: top;
}

.media-selection .attachments {
	display: inline-block;
	height: 48px;
	margin-top: 5px;
	overflow: hidden;
	vertical-align: top;
}

.media-selection .attachment .icon {
	width: 50%;
}

.attachment.selection.selected {
	box-shadow: none;
}

.attachment.selection.details {
	box-shadow:
		0 0 0 1px #fff,
		0 0 0 4px #1e8cbe;
}

.media-selection .attachment.selection.details {
	box-shadow:
		0 0 0 1px #fff,
		0 0 0 3px #1e8cbe;
}

.media-selection:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 25px;
	background-image: -webkit-gradient(linear, right top, left top, from( rgba( 255, 255, 255, 1 ) ), to( rgba( 255, 255, 255, 0 ) ));
	background-image: -webkit-linear-gradient(right, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
	background-image:    -moz-linear-gradient(right, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
	background-image:      -o-linear-gradient(right, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
	background-image:   linear-gradient(to left, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
}

.media-selection .attachment .filename {
	display: none;
}

/**
 * Spinner
 */

.media-frame .spinner {
	background: url('../images/spinner.gif') no-repeat;
	background-size: 20px 20px;
	display: none;
	opacity: 0.7;
	filter: alpha(opacity=70);
	width: 20px;
	height: 20px;
	margin: 0;
}

.media-sidebar .settings-save-status {
	background: #f5f5f5;
	float: right;
	text-transform: none;
	z-index: 10;
}

.media-sidebar .settings-save-status .spinner {
	margin: 0 5px 0;
}

.media-sidebar .settings-save-status .saved {
	float: right;
	display: none;
}

.media-sidebar .save-waiting .settings-save-status .spinner,
.media-sidebar .save-complete .settings-save-status .saved {
	display: block;
}

/**
 * Attachment Details
 */
.attachment-details {
	position: relative;
	overflow: auto;
}

.attachment-info {
	overflow: hidden;
	min-height: 60px;
	margin-bottom: 16px;
	line-height: 18px;
	color: #666;
	border-bottom: 1px solid #e5e5e5;
	box-shadow: 0 1px 0 #fff;
	padding-bottom: 11px;
}

.attachment-info .filename {
	font-weight: bold;
	color: #464646;
	word-wrap: break-word;
}

.attachment-info .thumbnail {
	position: relative;
	float: left;
	max-width: 120px;
	max-height: 120px;
	margin-top: 5px;
	margin-right: 10px;
	margin-bottom: 5px;
}

.uploading .attachment-info .thumbnail {
	width: 120px;
	height: 80px;
	box-shadow: inset 0 0 15px rgba( 0, 0, 0, 0.1 );
}

.uploading .attachment-info .media-progress-bar {
	margin-top: 35px;
}

.attachment-info .thumbnail:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, 0.15 );
	overflow: hidden;
}

.attachment-info .thumbnail img {
	display: block;
	max-width: 120px;
	max-height: 120px;
	margin: 0 auto;
}

.attachment-info .details {
	float: left;
	font-size: 12px;
	max-width: 100%;
}

.attachment-info .edit-attachment,
.attachment-info .refresh-attachment,
.attachment-info .delete-attachment {
	display: block;
	text-decoration: none;
	white-space: nowrap;
}

.attachment-info .refresh-attachment,
.attachment-details.needs-refresh .attachment-info .edit-attachment {
	display: none;
}

.attachment-details.needs-refresh .attachment-info .refresh-attachment,
.attachment-info .edit-attachment {
	display: block;
}

.attachment-info .delete-attachment {
	color: #bc0b0b;
}

.attachment-info .delete-attachment:hover {
	color: red;
}

/**
 * Attachment Display Settings
 */
.attachment-display-settings {
	width: 100%;
	float: left;
	overflow: hidden;
}

.attachment-display-settings h4 {
	margin: 1.4em 0 0.4em;
}

.gallery-settings {
	overflow: hidden;
}

/**
 * Embed from URL
 */
.embed-url {
	display: block;
	position: relative;
	padding: 16px;
	margin: 0;
	z-index: 250;
	background: #fff;
	font-size: 18px;
}

.media-frame .embed-url input {
	font-size: 18px;
	padding: 12px 14px;
	width: 100%;
	min-width: 200px;
	box-shadow: inset 2px 2px 4px -2px rgba( 0, 0, 0, 0.1 );
}

.media-frame .embed-url .spinner {
	position: absolute;
	top: 16px;
	right: 26px;
}

.media-frame .embed-loading .embed-url .spinner {
	display: block;
}

.embed-link-settings,
.embed-image-settings {
	position: absolute;
	top: 60px;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 16px 16px 32px;
	overflow: auto;
}

.media-embed .thumbnail {
	max-width: 100%;
	max-height: 200px;
	position: relative;
	float: left;
}

.media-embed .thumbnail img {
	max-height: 200px;
	display: block;
}

.media-embed .thumbnail:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, 0.1 );
	overflow: hidden;
}

.media-embed .setting {
	width: 100%;
	margin-top: 10px;
	float: left;
	display: block;
	clear: both;
}

.media-embed .setting span {
	display: block;
	width: 200px;
	font-size: 13px;
	line-height: 24px;
	color: #666;
}

.media-embed .setting .button-group {
	margin: 2px 0;
}

.media-embed .setting input,
.media-embed .setting textarea {
	display: block;
	width: 100%;
	max-width: 400px;
	margin: 1px 0;
}

/**
 * IE7 Fixes
 */
.ie7 .media-frame .attachments-browser {
	position: static;
}

.ie7 .media-frame .embed-url input {
	margin-top: 4px;
	width: 90%;
}

.ie7 .compat-item {
	width: 99%;
}

.ie7 .attachment-display-settings {
	width: auto;
}

.ie7 .attachment-preview,
.ie7 .attachment-preview .thumbnail {
	width: 120px;
	height: 120px;
}

.ie7 .media-frame .attachment .describe {
	width: 102px;
}

.ie7 .media-sidebar .setting select {
	max-width: 55%;
}

.ie7 .media-sidebar .setting input,
.ie7 .media-sidebar .setting textarea {
	width: 55%;
}

.ie7 .media-sidebar .setting .link-to-custom {
	float: left;
}

/**
 * Localization
 */
.rtl .media-modal,
.rtl .media-frame,
.rtl .media-frame .search,
.rtl .media-frame input[type="text"],
.rtl .media-frame input[type="password"],
.rtl .media-frame input[type="number"],
.rtl .media-frame input[type="search"],
.rtl .media-frame input[type="email"],
.rtl .media-frame input[type="url"],
.rtl .media-frame textarea,
.rtl .media-frame select {
	font-family: Tahoma, sans-serif;
}

:lang(he-il) .rtl .media-modal,
:lang(he-il) .rtl .media-frame,
:lang(he-il) .rtl .media-frame .search,
:lang(he-il) .rtl .media-frame input[type="text"],
:lang(he-il) .rtl .media-frame input[type="password"],
:lang(he-il) .rtl .media-frame input[type="number"],
:lang(he-il) .rtl .media-frame input[type="search"],
:lang(he-il) .rtl .media-frame input[type="email"],
:lang(he-il) .rtl .media-frame input[type="url"],
:lang(he-il) .rtl .media-frame textarea,
:lang(he-il) .rtl .media-frame select {
	font-family: Arial, sans-serif;
}

@media only screen and (max-width: 960px) {
	.media-frame-content .media-toolbar-primary .search,
	.media-frame-content .media-toolbar-secondary .attachment-filters {
		max-width: 120px;
	}
}

/**
 * Responsive layout
 */
@media only screen and (max-width: 900px) {
	.media-frame-menu {
		width: 139px;
	}

	.media-menu > a {
		padding: 4px 5px;
	}

	.media-frame-title,
	.media-frame-router,
	.media-frame-content,
	.media-frame-toolbar {
		left: 140px;
	}

	.media-sidebar {
		width: 159px;
		padding: 0 10px 24px;
	}

	.attachments-browser .attachments,
	.attachments-browser .uploader-inline,
	.attachments-browser .media-toolbar {
		right: 180px;
	}

	.media-sidebar .setting input,
	.media-sidebar .setting textarea,
	.media-sidebar .setting span,
	.compat-item label span {
		float: none;
	}

	.media-sidebar .setting span,
	.compat-item label span {
		text-align: inherit;
		display: block;
		min-height: 16px;
		margin: 0;
		padding: 8px 2px 0;
	}

	.media-sidebar .setting input,
	.media-sidebar .setting textarea,
	.media-sidebar .setting select {
		width: 98%;
		max-width: none;
	}

	.media-sidebar .setting select.columns {
		width: auto;
	}

	.media-frame input,
	.media-frame textarea,
	.media-frame .search {
		padding: 3px 6px;
	}

	.media-frame-content .attachment .icon {
		top: 40%;
	}

	.media-selection {
		min-width: 120px;
	}

	.media-selection:after {
		background: none;
	}

	.media-selection .attachments {
		display: none;
	}

	.media-menu .separator {
		margin: 12px 10px;
	}

	.media-modal-close {
		right: 10px;
	}

	/* Text inputs need to be 16px, or they force zooming on iOS */
	.media-frame input[type="text"],
	.media-frame input[type="password"],
	.media-frame input[type="number"],
	.media-frame input[type="search"],
	.media-frame input[type="email"],
	.media-frame input[type="url"],
	.media-frame textarea,
	.media-frame select {
		font-size: 16px;
	}
}

/* Responsive on portrait and landscape */
@media only screen and (max-width: 640px), screen and (max-height: 400px) {

	/* Media tabs on the top */
	.media-frame-content .media-toolbar .instructions {
		display: none;
	}

	.media-frame-menu {
		width: auto;
		bottom: auto;
		right: 0;
		height: 60px;
	}

	.media-menu {
		border-right: none;
		position: relative;
		border-bottom: 1px solid #dddddd;
		overflow: hidden;
		padding: 10px 0 10px 10px;
	}

	.media-menu a {
		float: left;
		width: 42%;
		white-space: nowrap;
		text-overflow: ellipsis;
		overflow: hidden;
	}

	.media-frame-title {
		display: none;
	}

	.media-frame-toolbar {
		position: absolute;
		bottom: 0px;
		left: 0;
		right: 0;
		background: #FFF;
		border-top: 1px solid #DEDEDE;
	}

	.media-toolbar {
		position: relative;
	}

	.media-frame {
		overflow: hidden;
	}

	.attachments-browser .attachments {
		top: 42px;
	}

	.attachment-details h3 {
		margin-top: 45px;
	}

	/* Shorten right-side links so they don't overlap the close button */
	.media-menu a:nth-child(2),
	.media-menu a:last-child {
		width: 40%;
	}

	.media-menu .separator {
		display: none;
	}

	.media-frame-title {
		top: 72px;
		left: auto;
		height: auto;
	}

	.media-frame-title h1 {
		line-height: 3;
		font-size: 18px;
	}

	.media-frame-router {
		top: 84px;
		left: 0;
	}

	.media-frame-content {
		left: 0;
		top: 118px;
	}

	.media-frame .attachments-browser {
		padding-bottom: 300px;
	}

	.media-sidebar {
		border-bottom: 1px solid #dddddd;
	}

	.media-modal {
		width: auto;
	}

	.media-toolbar-primary, .media-toolbar-secondary {
		height: auto;
	}

	.uploader-inline h3 {
		margin: 0 0 .8em 0;
	}

	.uploader-inline-content {
		top: auto;
	}

	.uploader-inline-content .upload-ui {
		margin: 0;
	}

	.attachments-browser .attachments, .attachments-browser .uploader-inline {
		position: relative;
		margin-right: 180px;
	}

	/* Full-bleed modal */
	.media-modal {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
	}

	.media-modal-backdrop {
		position: fixed;
	}

	.attachments-browser .attachment,
	.attachments-browser .attachment-preview {
		max-width: 100%;
	}

	.attachments-browser .media-toolbar-primary input.search {
		max-width: 150px;
	}

	.uploader-inline-content {
		position: relative;
	}

	.media-sidebar .setting input[type="checkbox"],
	.media-sidebar .field input[type="checkbox"] {
		width: 25px;
	}

	/* Image From Link */
	.embed-link-settings,
	.embed-image-settings {
		padding-bottom: 52px;
	}

	/* Gallery */
	.media-frame.hide-router .media-frame-content {
		top: 73px;
		border-top: none;
	}

	.gallery-settings h3 {
		margin-top: 45px;
	}

}

/* Landscape specific header override */
@media screen and (max-height: 400px) {
	.media-menu {
		padding: 0 0 0 10px;
	}

	.media-menu a {
		float: left;
		width: 21%;
		white-space: nowrap;
		text-overflow: ellipsis;
		overflow: hidden;
		padding: 10px inherit;
	}

	.media-menu a:nth-child(2),
	.media-menu a:last-child {
		width: 21%;
	}

	.media-modal-close {
		top: 2px;
	}

	.media-frame-router {
		top: 44px;
	}

	.media-frame-content {
		top: 78px;
	}

	.attachments-browser .attachments {
		top: 2px;
	}

	/* Prevent unnecessary scrolling on title input */
	.embed-link-settings {
		overflow: visible;
	}
}

@media only screen and (max-width: 680px) {
	.media-frame-content .media-toolbar .search,
	.media-frame-content .media-toolbar .attachment-filters {
		max-width: 85px;
	}
}

/**
 * HiDPI Displays
 */
@media print,
  (-o-min-device-pixel-ratio: 5/4),
  (-webkit-min-device-pixel-ratio: 1.25),
  (min-resolution: 120dpi) {

  	.media-modal-icon {
  		background-image: url(../images/uploader-icons-2x.png);
  		background-size: 134px 15px;
  	}

  	.media-frame .spinner {
  		background-image: url('../images/spinner-2x.gif');
  	}
}


text:
package hello;

public class HelloWorld2 {

    public static void main(String[] args) {
        System.out.println("Hello World 2!");
    }
}


text:
%% Homework 8: GPS, streamflow data and statistics

%% Part 1: Automated GPS Data Processing

%% Step 1.1: Download the data and import into MATLAB

%% Step 1.2: Strip out the relevant data

%% Step 1.3: Process the GPS data
addpath('GPSdata')
detrendGPS('ana1CleanUnf.neu')
%% Step 1.4: Compare the best-fit polynomial

%% Step 1.5: Process the residuals

%% Step 1.6: Process all the data
allGPS()
%% Step 1.7: Analyze the results
% Do the histograms make sense?

% The histograms do make sense. The transparency overlay graph gives a good
% represenation of the relationships between the three different data sets
% that were used. We see that the north has the best polynomial fit,
% followed by the east, then the largest spread being the vertical. The
% stacked bar graph does a good job of showing this relationship as well,
% with the data points being stacked on top of each other we still see that
% the vertical model has the largest spread, therefore the greatest
% difference between the actual and modeled data.

% Is there anything strange in the histograms that would indicate the first
% order polynomial would be the best model, or is this a sufficient model?

% The only strange this shown is the deviation within the vertical model.
% The north I would say is a very good fit of a first order polynomial.
% However, the east and vertical may be able to have better results with a
% higher order.

% Would it be more useful to change the histogram bins somehow?

% It appears that the histogram bins are a good representation of the
% residual data. If the bin size is smaller, then there is a finer graph
% that is made, which shows the spread of the distribution more
% effectively, but the graph does get slightly more difficult to read. For
% a larger bin size, the data becomes more categorical and much more
% difficult to understand the distribution of the dataset. Therefore, I
% would conclude that the bin size that has been designated is the best
% choice in representing this dataset.

% What kind of model represents the residual data?
% Not quite sure where this is going, but it follows a Gaussian
% distribution (??)
%% Part 2: Water-year loading & Visualization

%% Step 2.1: Load the data, sort, and plot

%% Step 2.2: Reshape vector into a matrix and plot

%% Step 2.3: Median and mean

%% Step 2.4: Box and whisker plot of each month


text:
package chip.devicecontroller;

/** Represents information relating to NOC CSR. */
public final class CSRInfo {

  private byte[] nonce;
  private byte[] elements;
  private byte[] elementsSignature;
  private byte[] csr;

  public CSRInfo(byte[] nonce, byte[] elements, byte[] elementsSignature, byte[] csr) {
    this.nonce = nonce;
    this.elements = elements;
    this.elementsSignature = elementsSignature;
    this.csr = csr;
  }

  public byte[] getNonce() {
    return nonce;
  }

  public byte[] getElements() {
    return elements;
  }

  public byte[] getElementsSignature() {
    return elementsSignature;
  }

  public byte[] getCSR() {
    return csr;
  }
}


text:
package com.skia.sampleapp;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

public class SampleApp extends Activity
{
    private TextView mTitle;

    public class SampleView extends View {
        public SampleView(Context context) {
            super(context);
            createOSWindow(this);
        }

        @Override
        protected void onDraw(Canvas canvas) {
            drawToCanvas(canvas);
        }

        @Override
        protected void onSizeChanged(int w, int h, int oldw, int oldh) {
            updateSize(w, h);
        }

        @Override
        public boolean onTouchEvent(MotionEvent event) {
            final int x = (int) event.getX();
            final int y = (int) event.getY();
            final int action = event.getAction();
            handleClick(x, y, action);
            return true;
        }
    }

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        init();
        setContentView(R.layout.layout);
        mTitle = (TextView) findViewById(R.id.title_view);
        LinearLayout holder = (LinearLayout) findViewById(R.id.holder);
        View view = new SampleView(this);
        holder.addView(view, new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT));
    }

    @Override
    public void onDestroy()
    {
        term();
        super.onDestroy();
    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        switch (event.getAction()) {
            case KeyEvent.ACTION_DOWN:
                int uni = event.getUnicodeChar(event.getMetaState());
                return handleKeyDown(event.getKeyCode(), uni);
            case KeyEvent.ACTION_UP:
                return handleKeyUp(event.getKeyCode());
            default:
                return false;
        }
    }

    @Override
    public void setTitle(CharSequence title) {
        mTitle.setText(title);
    }

    private native void drawToCanvas(Canvas canvas);
    private native void init();
    private native void term();
    // Currently depends on init having already been called.
    private native void createOSWindow(SampleView view);
    private native void updateSize(int w, int h);
    private native void handleClick(int x, int y, int state);
    private native boolean handleKeyDown(int key, int uni);
    private native boolean handleKeyUp(int key);

    static {
        System.loadLibrary("skia-sample");
    }
}


text:
.hello {
  color: #f00;
}
@media only screen and (orientation: landscape) {
  .hello {
    color: #00f;
  }
}
@media only screen and (orientation: portrait) {
  .hello {
    color: #800000;
  }
}
@media only screen and (min-width: 500px) and (orientation: landscape) {
  .hello {
    color: #0f0;
  }
}
@media only screen and (min-width: 400px) and (max-width: 600px) and (orientation: portrait) {
  .hello {
    color: #0ff;
  }
}
@media only screen and (max-width: 500px) and (orientation: landscape) {
  .hello {
    color: #f0f;
  }
}
@media only screen and (min-width: 400px) and (max-width: 1050px) and (orientation: portrait) {
  .hello {
    color: #ff0;
  }
}
@media only screen and (min-width: 1050px) and (orientation: landscape) {
  .hello {
    color: #000;
  }
}
@media only screen and (min-width: 400px) and (orientation: portrait) {
  .hello {
    color: #fff;
  }
}
@media only screen and (max-width: 400px) and (orientation: landscape) {
  .hello {
    color: #008000;
  }
}
@media only screen and (min-width: 400px) and (max-width: 1050px) and (orientation: portrait) {
  .hello {
    color: #808080;
  }
}
@media only screen and (max-width: 600px) and (orientation: landscape) {
  .hello {
    color: #000080;
  }
}
@media only screen and (-webkit-min-device-pixel-ratio: 1.5) and (orientation: portrait), only screen and (min-resolution: 144dpi) and (orientation: portrait) {
  .hello {
    color: #a52a2a;
  }
}
@media only screen and (-webkit-min-device-pixel-ratio: 1.5) and (orientation: portrait), only screen and (min-resolution: 144dpi) and (orientation: portrait) {
  .hello {
    color: #a52a2a;
  }
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) and (orientation: landscape), only screen and (min-resolution: 192dpi) and (orientation: landscape) {
  .hello {
    color: #ffd700;
  }
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) and (orientation: landscape), only screen and (min-resolution: 192dpi) and (orientation: landscape) {
  .hello {
    color: #ffd700;
  }
}


text:
title: Календар
inshort: Outlook календар
translator: Microsoft Cognitive Services
---

Календар е Календарът на Outlook, както е показано в Office 365.

Ресурси
---------

-[Свържете календар на SharePoint да
    Outlook](http://icsh.pt/SPandOutlook) \[icansharepoint blog\]

Подобни приложения
--------------------

-Google Календар

-Apple календар

Метаданни
--------

-Външно споделяне се поддържа

-Ап за десктоп и мобилни


text:
      <svg class="icomoon icon-logo">
        <use xlink:href="#icon-logo"></use>
      </svg>

welcome to fa live

  <form class="loginForm" novalidate>

email

      <input type="email" name="emailAdd" ng-model="vm.userData.emailAdd">

password

forgot password

      <input type="password" name="emailAdd" ng-model="vm.userData.password">

  </form>