
// enyo.js
(function(){var e="enyo.js";enyo=window.enyo||{},enyo.locateScript=function(e){for(var t,o,n=document.getElementsByTagName("script"),a=n.length-1,r=e.length;a>=0&&(t=n[a]);a--)if(!t.located&&(o=t.getAttribute("src")||"",o.slice(-r)==e))return t.located=!0,{path:o.slice(0,Math.max(0,o.lastIndexOf("/"))),node:t}},enyo.args=enyo.args||{};var t=enyo.locateScript(e);if(t){enyo.args.root=(enyo.args.root||t.path).replace("/source","");for(var o,n=0,a=t.node.attributes.length;a>n&&(o=t.node.attributes.item(n));n++)enyo.args[o.nodeName]=o.value}})();

// ready.js
(function(e){var t,n,a,o,r,c=e.document,i=[],d="complete"===c.readyState;enyo.ready=function(e,n){d?t(e,n):i.push([e,n])},t=function(e,t){e.call(t||enyo.global)},n=function(e){(d="interactive"===c.readyState)&&(~enyo.indexOf(e.type,["DOMContentLoaded","readystatechange"])||(a(e.type,n),r())),(d="complete"===c.readyState)&&(a(e.type,n),r())},o=function(e,t){var n=c.addEventListener?"addEventListener":"attachEvent",a="attachEvent"===n?"on":"";c[n](a+e,t,!1)},a=function(e,t){var n=c.addEventListener?"removeEventListener":"detachEvent",a="detachEvent"===n?"on":"";c[n](a+e,t,!1)},r=function(){if(d&&i.length)for(;i.length;)t.apply(e,i.shift())},o("DOMContentLoaded",n),o("readystatechange",n)})(window,enyo);

// ../../loader.js
(function(){enyo=window.enyo||{},enyo.pathResolverFactory=function(){this.paths={}},enyo.pathResolverFactory.prototype={addPath:function(e,t){return this.paths[e]=t,t},addPaths:function(e){if(e)for(var t in e)this.addPath(t,e[t])},includeTrailingSlash:function(e){return e&&"/"!==e.slice(-1)?e+"/":e},rewritePattern:/\$([^\/\\]*)(\/)?/g,rewrite:function(e){var t,a=this.includeTrailingSlash,i=this.paths,n=function(e,n){return t=!0,a(i[n])||""},s=e;do t=!1,s=s.replace(this.rewritePattern,n);while(t);return s}},enyo.path=new enyo.pathResolverFactory,enyo.loaderFactory=function(e,t){this.machine=e,this.packages=[],this.modules=[],this.sheets=[],this.designs=[],this.stack=[],this.pathResolver=t||enyo.path,this.packageName="",this.packageFolder="",this.finishCallbacks={}},enyo.loaderFactory.prototype={verbose:!1,loadScript:function(e,t,a){this.machine.script(e,t,a)},loadSheet:function(e){this.machine.sheet(e)},loadPackage:function(e){this.machine.script(e)},report:function(){},load:function(){this.more({index:0,depends:arguments||[]})},more:function(e){if(!e||!this.continueBlock(e)){var t=this.stack.pop();t?(enyo.runtimeLoading&&e.failed&&(t.failed=t.failed||[],t.failed.push.apply(t.failed,e.failed)),this.verbose&&window.console.groupEnd("* finish package ("+(t.packageName||"anon")+")"),this.packageFolder=t.folder,this.packageName="",this.more(t)):this.finish(e)}},finish:function(e){this.packageFolder="",this.verbose&&window.console.log("-------------- fini");for(var t in this.finishCallbacks)this.finishCallbacks[t]&&(this.finishCallbacks[t](e),this.finishCallbacks[t]=null)},continueBlock:function(e){for(;e.index<e.depends.length;){var t=e.depends[e.index++];if(t)if("string"==typeof t){if(this.require(t,e))return!0}else this.pathResolver.addPaths(t)}},require:function(e,t){var a=this.pathResolver.rewrite(e),i=this.getPathPrefix(e);if(a=i+a,".css"==a.slice(-4)||".less"==a.slice(-5))this.verbose&&window.console.log("+ stylesheet: ["+i+"]["+e+"]"),this.requireStylesheet(a);else{if(".js"==a.slice(-3)&&"package.js"!=a.slice(-10))return this.verbose&&window.console.log("+ module: ["+i+"]["+e+"]"),this.requireScript(e,a,t);if(".design"!=a.slice(-7))return this.requirePackage(a,t),!0;this.verbose&&window.console.log("+ design metadata: ["+i+"]["+e+"]"),this.requireDesign(a)}},getPathPrefix:function(e){var t=e.slice(0,1);return"/"==t||"\\"==t||"$"==t||/^https?:/i.test(e)?"":this.packageFolder},requireStylesheet:function(e){this.sheets.push(e),this.loadSheet(e)},requireScript:function(e,t,a){if(this.modules.push({packageName:this.packageName,rawPath:e,path:t}),enyo.runtimeLoading){var i=this,n=function(){i.more(a)},s=function(){a.failed=a.failed||[],a.failed.push(t),i.more(a)};this.loadScript(t,n,s)}else this.loadScript(t);return enyo.runtimeLoading},requireDesign:function(e){this.designs.push({packageName:this.packageName,path:e})},decodePackagePath:function(e){var t,a,i="",n="",s="",o="package.js",r=e.replace(/\\/g,"/").replace(/\/\//g,"/").replace(/:\//,"://").split("/");if(r.length){var h=r.pop()||r.pop()||"";for(h.slice(-o.length)!==o?r.push(h):o=h,s=r.join("/"),s=s?s+"/":"",o=s+o,t=r.length-1;t>=0;t--)if("source"==r[t]){r.splice(t,1);break}for(n=r.join("/"),t=r.length-1;a=r[t];t--)if("lib"==a||"enyo"==a){r=r.slice(t+1);break}for(t=r.length-1;a=r[t];t--)(".."==a||"."==a)&&r.splice(t,1);i=r.join("-")}return{alias:i,target:n,folder:s,manifest:o}},aliasPackage:function(e){var t=this.decodePackagePath(e);this.manifest=t.manifest,t.alias&&(this.pathResolver.addPath(t.alias,t.target),this.packageName=t.alias,this.packages.push({name:t.alias,folder:t.folder})),this.packageFolder=t.folder},requirePackage:function(e,t){t.folder=this.packageFolder,this.aliasPackage(e),t.packageName=this.packageName,this.stack.push(t),this.report("loading package",this.packageName),this.verbose&&window.console.group("* start package ["+this.packageName+"]"),this.loadPackage(this.manifest)}}})();

// boot.js
enyo.execUnsafeLocalFunction=function(e){"undefined"==typeof MSApp?e():window.MSApp.execUnsafeLocalFunction(e)},enyo.machine={sheet:function(e){var t="text/css",a="stylesheet",n=".less"==e.slice(-5);n&&(window.less?(t="text/less",a="stylesheet/less"):e=e.slice(0,e.length-4)+"css");var i;enyo.runtimeLoading||n?(i=document.createElement("link"),i.href=e,i.media="screen",i.rel=a,i.type=t,document.getElementsByTagName("head")[0].appendChild(i)):(i=function(){document.write('<link href="'+e+'" media="screen" rel="'+a+'" type="'+t+'" />')},enyo.execUnsafeLocalFunction(i)),n&&window.less&&(window.less.sheets.push(i),enyo.loader.finishCallbacks.lessRefresh||(enyo.loader.finishCallbacks.lessRefresh=function(){window.less.refresh(!0)}))},script:function(e,t,a){if(enyo.runtimeLoading){var n=document.createElement("script");n.src=e,n.onload=t,n.onerror=a,document.getElementsByTagName("head")[0].appendChild(n)}else document.write('<script src="'+e+'"'+(t?' onload="'+t+'"':"")+(a?' onerror="'+a+'"':"")+"></scri"+"pt>")},inject:function(e){document.write('<script type="text/javascript">'+e+"</scri"+"pt>")}},enyo.loader=new enyo.loaderFactory(enyo.machine),enyo.depends=function(){var e=enyo.loader;if(!e.packageFolder){var t=enyo.locateScript("package.js");t&&t.path&&(e.aliasPackage(t.path),e.packageFolder=t.path+"/")}e.load.apply(e,arguments)},function(){function e(n){if(n&&n(),a.length){var i=a.shift(),s=i[0],o=t.isArray(s)?s:[s],r=i[1];t.loader.finishCallbacks.runtimeLoader=function(t){e(function(){r&&r(t)})},t.loader.packageFolder="./",t.depends.apply(this,o)}else t.runtimeLoading=!1,t.loader.packageFolder=""}var t=window.enyo,a=[];t.load=function(){a.push(arguments),t.runtimeLoading||(t.runtimeLoading=!0,e())}}(),enyo.path.addPaths({enyo:enyo.args.root,lib:"$enyo/../lib"});

// log.js
enyo.logging={level:99,levels:{log:20,warn:10,error:0},shouldLog:function(e){var t=parseInt(this.levels[e],0);return this.level>=t},_log:function(e,t){var n=window.console;if(void 0!==n){var a=enyo.isArray(t)?t:enyo.cloneArray(t);enyo.dumbConsole&&(a=[a.join(" ")]);var i=n[e];i&&i.apply?i.apply(n,a):n.log.apply?n.log.apply(n,a):n.log(a.join(" "))}},log:function(e,t){var n=window.console;n!==void 0&&this.shouldLog(e)&&this._log(e,t)}},enyo.setLogLevel=function(e){var t=parseInt(e,0);isFinite(t)&&(enyo.logging.level=t)},enyo.log=function(){enyo.logging.log("log",arguments)},enyo.warn=function(){enyo.logging.log("warn",arguments)},enyo.error=function(){enyo.logging.log("error",arguments)};

// lang.js
(function(){enyo.global=this;var e=0;enyo.exists=function(e){return void 0!==e};var n=enyo.exists;enyo.lastIndexOf=function(e,n,t){if(n.lastIndexOf)return n.lastIndexOf(e,t||n.length);var o,i="string"==typeof n,r=(i?n.split(""):n).reverse(),a=r.length-1,s=n.length;return i&&(r=r.join("")),o=enyo.indexOf(e,r,s-(t||s)),i||r.reverse(),-1===o?o:a-o};var t=enyo.lastIndexOf,o=function(e){for(var n=0;"."===e[n];)++n;return 0!==n&&(e=e.slice(n)),e},i=function(e){return e&&"function"==typeof e&&!0===e.overloaded};enyo.getPath=function(e){if(!n(e)||null===e)return void 0;var t,r,a,s=0,c=!0===arguments[1]||"object"==typeof e&&e.recursing?!0:!1,l=this===enyo&&!0!==c?window:this;if("object"==typeof e){if(!e.path||"string"!=typeof e.path)return void 0;e=e.path}if(e=o(e),s=e.indexOf("."),-1===s)a="get"+enyo.cap(e),t=i(l[a])?l[a].call(this):l[e];else if(r=e.substring(0,s),e=e.slice(s+1),typeof l[r]in{object:"","function":""}){if(l[r]._is_object)return l[r].get(e);t=enyo.getPath.call(l[r],{path:e,recursing:!0})}return t},enyo.proxyMethod=function(e,n){return delete e._inherited,function(){return e.apply(n||this,arguments)}},enyo.setPath=function(e,t,i){if(!n(e)||"string"!=typeof e||0===e.length)return this;var r,a,s,c=enyo===this?enyo.global:this,l=!0===i?!0:!1,u="function"==typeof i?i:void 0,f=enyo.getPath.call(c,e);if(e=o(e),r=e.indexOf("."),-1===r)c[e]=t;else for(s=e.split(".");s.length;)if(a=s.shift(),"enyo"!==a||enyo!==c)if(0===s.length)c[a]=t;else{if(typeof c[a]in{object:"","function":""}||(c[a]={}),!0===c[a]._is_object)return c[a].set(s.join("."),t);c=c[a]}return!0!==l&&(l=u?u(f,t):f!==t),!0===l&&c.notifyObservers&&c.notifyObservers(e,f,t),c},enyo.findAndInstance=function(e,t,o){var i,r,a;return t=n(t)&&"function"==typeof t?t:enyo.nop,(a=enyo.getPath.call(this,e))?("string"==typeof a?(i="."===a[0]?enyo.getPath.call(this,a):enyo.getPath(a)||enyo.getPath.call(this,a),n(i)&&"function"!=typeof i&&(r=i,i=void 0)):"function"==typeof a?i=a:r=a,n(i)&&!n(r)&&(r=new i),n(r)&&(this[e]=r),t.call(o||this,i,r)):t.call(o||this)},enyo.uid=function(n){return(n?n:"")+e++ +""},enyo.irand=function(e){return Math.floor(Math.random()*e)},enyo.cap=function(e){return e.slice(0,1).toUpperCase()+e.slice(1)},enyo.uncap=function(e){return e.slice(0,1).toLowerCase()+e.slice(1)},enyo.format=function(e){var n=/\%./g,t=0,o=e,i=arguments,r=function(){return i[++t]};return o.replace(n,r)};var r=Object.prototype.toString;enyo.isString=function(e){return"[object String]"===r.call(e)},enyo.isFunction=function(e){return"[object Function]"===r.call(e)},enyo.isArray=Array.isArray||function(e){return"[object Array]"===r.call(e)},enyo.isTrue=function(e){return!("false"===e||e===!1||0===e||null===e||void 0===e)},enyo.indexOf=function(e,n,t){if(n.indexOf)return n.indexOf(e,t);if(t&&(0>t&&(t=0),t>n.length))return-1;for(var o,i=t||0,r=n.length;(o=n[i])||r>i;i++)if(o==e)return i;return-1},enyo.remove=function(e,n){var t=enyo.indexOf(e,n);t>=0&&n.splice(t,1)},enyo.forEach=function(e,n,t){if(e){var o=t||this;if(enyo.isArray(e)&&e.forEach)e.forEach(n,o);else for(var i=Object(e),r=i.length>>>0,a=0;r>a;a++)a in i&&n.call(o,i[a],a,i)}},enyo.map=function(e,n,t){var o=t||this;if(enyo.isArray(e)&&e.map)return e.map(n,o);var i=[],r=function(e,t,r){i.push(n.call(o,e,t,r))};return enyo.forEach(e,r,o),i},enyo.merge=function(){var e=Array.prototype.concat.apply([],arguments);return c(e)};var a=enyo.merge;enyo.union=function(){for(var e,n=Array.prototype.concat.apply([],arguments),o=[],i=[],r=0,a=n.length;a>r;++r)e=n[r],~enyo.indexOf(e,o)||(o.push(e),r===t(e,n)&&i.push(e));return i};var s=enyo.union;enyo.unique=s;var c=enyo.unique;enyo.reduce=a,enyo.only=function(e,t,o){var i,r,a={},s=0;if(!(n(e)&&e instanceof Array))return a;if(!n(t)||"object"!=typeof t)return a;for(e=c(e),i=e.length;i>s;++s)if(r=e[s],r in t){if(!0===o&&!t[r])continue;a[r]=t[r]}return a},enyo.remap=function(e,n){var t,o,i={};for(t in e)o=e[t],t in n&&(i[o]=n[t]);return i},enyo.except=function(e,t){var o,i,r,a={},c=0;if(!(n(e)&&e instanceof Array))return a;if(!n(t)||"object"!=typeof t)return a;for(o=s(e,l(t)),i=o.length;i>c;++c)r=o[c],r in t&&(a[r]=t[r]);return a},enyo.indexBy=function(e,t,o){var i,r,a={},s=0;if(!(n(t)&&t instanceof Array))return a;if(!n(e)||"string"!=typeof e)return a;var c=enyo.clone(t);for(o=n(o)&&"function"==typeof o?o:void 0,r=t.length;r>s;++s)i=t[s],n(i)&&n(i[e])&&(o?o(e,i,a,c):a[i[e]]=i);return a},enyo.pluck=function(e,t){var o,i=[],r=0;if(!n(e)||!n(t))return i;if(!(t instanceof Array))return i;if("string"!=typeof e)return i;for(o=t.length;o>r;++r)n(t[r])&&n(t[r][e])&&i.push(t[r][e]);return i},enyo.filter=function(e,n,t){var o=t||this;if(enyo.isArray(e)&&e.filter)return e.filter(n,o);var i=[],r=function(e,t,r){var a=e;n.call(o,e,t,r)&&i.push(a)};return enyo.forEach(e,r,o),i},enyo.keys=Object.keys||function(e){var n=[],t=Object.prototype.hasOwnProperty;for(var o in e)t.call(e,o)&&n.push(o);if(!{toString:null}.propertyIsEnumerable("toString"))for(var i,r=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],a=0;i=r[a];a++)t.call(e,i)&&n.push(i);return n};var l=enyo.keys;enyo.cloneArray=function(e,n,t){for(var o=t||[],i=n||0,r=e.length;r>i;i++)o.push(e[i]);return o},enyo.toArray=enyo.cloneArray,enyo.clone=function(e){return enyo.isArray(e)?enyo.cloneArray(e):enyo.mixin({},e)};var u={};enyo.mixin=function(e,n){if(e=e||{},n){var t,o;for(t in n)o=n[t],u[t]!==o&&(e[t]=o)}return e},enyo.bind=function(e,n){if(n||(n=e,e=null),e=e||enyo.global,enyo.isString(n)){if(!e[n])throw['enyo.bind: scope["',n,'"] is null (scope="',e,'")'].join("");n=e[n]}if(enyo.isFunction(n)){var t=enyo.cloneArray(arguments,2);return n.bind?n.bind.apply(n,[e].concat(t)):function(){var o=enyo.cloneArray(arguments);return n.apply(e,t.concat(o))}}throw['enyo.bind: scope["',n,'"] is not a function (scope="',e,'")'].join("")},enyo.asyncMethod=function(){return setTimeout(enyo.bind.apply(enyo,arguments),1)},enyo.call=function(e,n,t){var o=e||this;if(n){var i=o[n]||n;if(i&&i.apply)return i.apply(o,t||[])}},enyo.now=Date.now||function(){return(new Date).getTime()},enyo.nop=function(){},enyo.nob={},enyo.nar=[],enyo.instance=function(){},enyo.setPrototype||(enyo.setPrototype=function(e,n){e.prototype=n}),enyo.delegate=function(e){return enyo.setPrototype(enyo.instance,e),new enyo.instance},window.$L=function(e){return e}})();

// dev.js
(function(){"use strict";function e(e){enyo.mixin(this,e),!0!==this.average||o[this.name]||(o[this.name]=[]),o[this.name]&&!1!==this.average&&(this._averaging=!0),!0===this.autoStart&&this.start()}function n(e){enyo.mixin(this,e)}enyo.bench=function(){var e=window.performance||{};return e.now=e.now||e.mozNow||e.msNow||e.oNow||e.webkitNow||enyo.now,e.now===enyo.now?function(){return enyo.warn("Performance benchmarking requested but was not available, the tests using the method cause considerable overhead, thus skewing the results."),e.now()}:function(){return e.now()}}();var t={},o={},i="- - - - - - - - - - - - - - - - -\nBENCHMARK REPORT (%.): %.\nTOTAL TIME: %.\nAVERAGE TIME: %.\nNUMBER OF ENTRIES: %.\n- - - - - - - - - - - - - - - - -\n",r=function(e){var n=0,t=e.length,o={total:null,average:null,number:t};return enyo.forEach(e,function(e){n+=e}),o.total=n,o.average=Math.abs(n/(t||1)),o};enyo.dev={enabled:!0,bench:function(t){if(!0!==this.enabled)return!1;var o=t||{name:enyo.uid("bench")};return!0===o.analyze?new n(o):new e(o)},report:function(e){var n=o[e]||t[e];if(!n)return!1;if(n.report&&"function"==typeof n.report)return n.report();var a=r(n);enyo.log(enyo.format(i,"averages",e,a.total,a.average,a.number))},clear:function(e){var n=t[e]?t:o[e]?o:null;return n?(n.complete&&n.complete(),n[e]instanceof Array?n[e]=[]:delete n[e],!0):!1}},e.prototype={logging:!0,autoStart:!0,_started:!1,_averaging:!1,_begin:null,_end:null,_time:null,start:function(){return!0===this._started?!1:(this._log("starting benchmark"),this._begin=enyo.bench(),this._started=!0,!0)},stop:function(){return this._started?(this._end=enyo.bench(),this._time=this._end-this._begin,this._log("benchmark complete: "+this._time),!0===this._averaging&&o[this.name].push(this._time),!(this._started=!1)):!1},_log:function(e){return this.logging?(enyo.log("bench ("+this.name+"): "+e),void 0):!1}},n.prototype={logging:!0,autoStart:!0,_started:!1,_averaging:!1,_begin:null,_end:null,_time:null,start:function(){return!0===this._started?!1:(this._log("starting benchmark"),this._begin=enyo.bench(),this._started=!0,!0)},stop:function(){return this._started?(this._end=enyo.bench(),this._time=this._end-this._begin,this._log("benchmark complete: "+this._time),!0===this._averaging&&o[this.name].push(this._time),!(this._started=!1)):!1},_log:function(e){return this.logging?(enyo.log("bench ("+this.name+"): "+e),void 0):!1}}})();

// job.js
enyo.job=function(e,n,t){enyo.job.stop(e),enyo.job._jobs[e]=setTimeout(function(){enyo.job.stop(e),n()},t)},enyo.job.stop=function(e){enyo.job._jobs[e]&&(clearTimeout(enyo.job._jobs[e]),delete enyo.job._jobs[e])},enyo.job._jobs={};

// Oop.js
enyo.concat=["concat","bindings"],enyo.handleConcatenatedProperties=function(e,n){for(var t,o,i,r=enyo.merge(e.concat||[],n.concat||[]);r.length;)t=r.shift(),i=e[t],o=n[t],i instanceof Array&&o instanceof Array&&(e[t]=enyo.merge(i,o),delete n[t])},enyo.kind=function(e){enyo._kindCtors={};var n=e.name||"";delete e.name;var t="kind"in e,o=e.kind;delete e.kind;var i=enyo.constructorForKind(o),r=i&&i.prototype||null;if(t&&void 0===o||void 0===i){var a=void 0===o?"undefined kind":"unknown kind ("+o+")";throw"enyo.kind: Attempt to subclass an "+a+". Check dependencies for ["+(n||"<unnamed>")+"]."}var s=enyo.kind.makeCtor();return e.hasOwnProperty("constructor")&&(e._constructor=e.constructor,delete e.constructor),enyo.setPrototype(s,r?enyo.delegate(r):{}),enyo.handleConcatenatedProperties(s.prototype,e),enyo.mixin(s.prototype,e),s.prototype.kindName=n?n:i&&i.prototype?i.prototype.kindName:"",s.prototype.base=i,s.prototype.ctor=s,enyo.forEach(enyo.kind.features,function(n){n(s,e)}),n&&!enyo.getPath(n)?enyo.setPath(n,s):n&&enyo.error("enyo.kind: "+n+" is already in use by another "+"kind, all kind definitions must have unique names."),s},enyo.singleton=function(e,n){var t=e.name;delete e.name;var o,i=enyo.kind(e);return enyo.setPath.call(n||enyo.global,t,o=new i),o},enyo.kind.makeCtor=function(){return function(){if(!(this instanceof arguments.callee))throw"enyo.kind: constructor called directly, not using 'new'";var e,n=arguments;this._constructor&&(e=this._constructor.apply(this,arguments)),this.constructed&&this.constructed.apply(this,arguments);for(var t=0;enyo.kind.postConstructors.length>t;++t)enyo.kind.postConstructors[t].apply(this,n);return e?e:void 0}},enyo.kind.defaultNamespace="enyo",enyo.kind.features=[],enyo.kind.postConstructors=[],enyo.kind.features.push(function(e,n){var t=e.prototype;if(t.inherited||(t.inherited=enyo.kind.inherited),t.base)for(var o in n){var i=n[o];enyo.isFunction(i)&&(i._inherited=t.base.prototype[o],i.nom=t.kindName+"."+o+"()")}}),enyo.kind.inherited=function(e,n){var t=e.callee,o=t._inherited;return o&&"function"==typeof o||(t=t.caller||{},o=t._inherited),"function"==typeof o?o.apply(this,n?enyo.mixin(e,n):e):(enyo.warn("enyo.kind.inherited: unable to find requested super-method from -> "+e.callee.nom+" in "+this.kindName),void 0)},enyo.kind.features.push(function(e,n){enyo.mixin(e,enyo.kind.statics),n.statics&&(enyo.mixin(e,n.statics),delete e.prototype.statics);for(var t=e.prototype.base;t;)t.subclass(e,n),t=t.prototype.base}),enyo.kind.statics={subclass:function(){},extend:function(e){enyo.handleConcatenatedProperties(this.prototype,e),enyo.mixin(this.prototype,e);var n=this;enyo.forEach(enyo.kind.features,function(t){t(n,e)})}},enyo._kindCtors={},enyo.constructorForKind=function(e){if(null===e||enyo.isFunction(e))return e;if(e){var n=enyo._kindCtors[e];return n?n:(enyo._kindCtors[e]=enyo.Theme[e]||enyo[e]||enyo.getPath.call(enyo,e,!0)||window[e]||enyo.getPath(e),enyo._kindCtors[e])}return enyo.defaultCtor},enyo.Theme={},enyo.registerTheme=function(e){enyo.mixin(enyo.Theme,e)};

// MixinSupport.js
(function(e){var n=e.mixins={},t=e.mixins.features=[],o=function(t,o){n[t]&&e.error("enyo.createMixin: cannot create "+t+" because "+"it already exists"),n[t]=o},i=e.createMixin=function(n){if(!n)return!1;var t=n.name;delete n.name,t||e.error("enyo.createMixin: cannot create mixin without name"),o(t,n)},r=e.applyMixin=function(o,i){var r,a,c,l,u,y=n[o],f=i._mixin_create=e.clone(i._mixin_create||[]),h=i._mixin_destroy=e.clone(i._mixin_destroy||[]),d=i._applied_mixins=e.clone(i._applied_mixins||[]);if(!y)return e.warn("enyo.applyMixin: could not find the requested mixin -> "+o+" for "+i.kindName,"(at the time of request available mixins are: "+e.keys(n).join(",")+")");if(~e.indexOf(o,d))return e.warn("enyo.applyMixin: attempt to apply mixin "+o+" to "+i.kindName+" multiple times");r=y.create,a=y.destroy;for(c in y)y.hasOwnProperty(c)&&"create"!==c&&"destroy"!==c&&(l=y[c],i[c]&&"function"==typeof i[c]?(u=i[c],i[c]=l,l._inherited=u,l.nom=o+"."+c+"()"):i[c]=l);"enyo.MixinSupport"===o&&(u=i.destroy,i.destroy=function(){return s.call(this),this.inherited(arguments)},i.destroy._inherited=u,i.destroy.nom="enyo.MixinSupport.destroy()"),r&&"function"==typeof r&&(f.push(r),r.nom=o+".create()"),a&&"function"==typeof a&&(h.push(a),a.nom=o+".destroy()"),d.push(o);for(var p=0;t.length>p;++p)t[p](i,y)},a=function(){for(var e,n=this._mixin_create,t=n.length,o=0;t>o;++o)e=n[o],e.call(this)},s=function(){for(var e,n=this._mixin_destroy,t=n.length,o=0;t>o;++o)e=n[o],e.call(this)},c=function(){this._supports_mixins&&a.call(this)};e.kind.features.push(function(e){var n=e.prototype,t=n.mixins||[],o=t.length,i=0;for(delete n.mixins;o>i;++i)r(t[i],n)}),e.kind.postConstructors.push(c),i({name:"enyo.MixinSupport",_supports_mixins:!0})})(enyo);

// ComputedPropertySupport.js
(function(){var e={"volatile":!0,cached:!1,defer:!0,value:null,dirty:0};enyo.computed=function(n){var t,o,i=enyo.toArray(arguments).slice(1);if(!enyo.exists(n)||"function"!=typeof n)throw"enyo.computed: a computed property must be a function";return o=n.properties||(n.properties=[]),t=n.config||enyo.clone(e),enyo.forEach(i,function(e){"string"==typeof e?o.push(e):"object"==typeof e&&enyo.mixin(t,e)}),!1===t.volatile?t.cached=!0:!0===t.cached&&(t.volatile=!1),n.config=t,n.isProperty=!0,t.properties=o,n};var n=function(e){return e&&"function"==typeof e&&!0===e.isProperty},t=function(e,n,t){var o=e._computed_map;o[t]||(o[t]=[]),o[t].push(n)},o=function(e,n){var t=e._computed_cacheable;t.push(n)},i=function(e,n,i){var r=e._computed,a=r[n]=i.config;a.cached&&!a.defer&&o(e,n),enyo.forEach(i.properties,function(o){t(e,n,o)})},r=function(e,t,o){if(e._supports_computed){e._computed=o?enyo.clone(e._computed||{}):e._computed||{},e._computed_map=o?enyo.clone(e._computed_map||{}):e._computed_map||{},e._computed_cacheable=o?enyo.clone(e._computed_cacheable||[]):e._computed_cacheable||[];for(var r in t)t[r]&&n(t[r])&&i(e,r,t[r])}},a=function(e){var n=this._computed[e],t=this[e];return!0===n.volatile?t.call(this):!0===n.cached?n.dirty||n.defer?(n.dirty=0,n.value=t.call(this),n.defer=null,n.value):n.value:void 0},s=function(e,n){var t=this[e];t.call(this,n),c.call(this,e),u.call(this)},c=function(e){var n=this._computed,t=n[e];t&&(++t.dirty,this._computed_queue.push(e))},u=function(){var e=this._computed_queue;if(e.length)do this.notifyObservers(e.shift());while(e.length)},l=function(){if(this._supports_computed){var e,n,t,o=this._computed_cacheable;for(n=0,t=o.length;t>n;++n)e=o[n],c.call(this,e),a.call(this,e)}},h=function(e,n){var t,o={};for(t in e)e.hasOwnProperty(t)&&(o[t]="object"!=typeof e[t]||null===e[t]||n?e[t]:h(e[t],!0));return o};enyo.kind.features.push(function(e,n){r(e.prototype,n,!0)}),enyo.kind.postConstructors.push(l),enyo.mixins.features.push(r),enyo.createMixin({name:"enyo.ComputedSupport",_supports_computed:!0,get:function(e){return n(this[e])?a.call(this,e):this.inherited(arguments)},set:function(e,t){return n(this[e])?s.call(this,e,t):this.inherited(arguments)},notifyObservers:function(e){var n,t,o=this._computed_map;if(o[e])for(n=o[e].length,t=0;n>t;++t)c.call(this,o[e][t]);this.inherited(arguments),u.call(this)},_constructor:function(){return this._computed=h(this._computed),this._computed_queue=[],this.inherited(arguments)},destroy:function(){var e,n,t=this._computed;for(n in t)e=t[n],delete e.value,delete t[n]}})})();

// ObserverMethodSupport.js
(function(){enyo.observer=function(e){var n=enyo.toArray(arguments).slice(1);if(!enyo.exists(e)||"function"!=typeof e)throw"enyo.observer: invalid observer, must have a function";return e.isObserver=!0,e.events=(e.events?e.events:[]).concat(n),e};var e=function(e,t,o,i){var r,a=e._observers||(e._observers={});return o._inherited&&o._inherited.isObserver&&n(e,t,o._inherited),o=i?enyo.bind(i,o):o,r=enyo.exists(a[t])?a[t]:a[t]=[],~enyo.indexOf(o,r)||r.push(o),o},n=function(e,n,t){var o,i,r=e._observers;return(i=r[n])?(enyo.exists(t)&&"function"==typeof t?(o=enyo.indexOf(t,i),~o&&i.splice(o,1)):delete r[n],void 0):this},t=function(e){var n,t,o,i,r,a=e._observers;for(o in a)if(a.hasOwnProperty(o))for(n=a[o],a[o]=null,i=0,r=n.length;r>i;++i)t=n[i];return e._observers={},e},o=function(e,n,t,o){var i,r=e._observers||{},a=r[n]||[],s=0,c=enyo.uncap(n)+"Changed";if("*"!==n&&(a=enyo.merge(a,r["*"]||[])),a)for(;a.length>s;++s)i=a[s],enyo.exists(i)&&"function"==typeof i&&(!1===e._allow_notifications?e.addNotificationToQueue(n,i,[n,t,o]):i.call(e,n,t,o));return enyo.exists(e[c])&&"function"==typeof e[c]&&(!1===e._allow_notifications?e.addNotificationToQueue(n,e[c],[t,o]):e[c].call(e,t,o)),e},i=function(e,n,t,o){var i=e._notification_queue||(e._notification_queue={}),r=i[n];o=o||[],!1!==e._allow_notification_queue&&(enyo.exists(r)?(r[0]!==o&&r.splice(0,1,o),~enyo.indexOf(t,r)||r.push(t)):i[n]=[o,t])},r=function(e,n){e._allow_notifications=!1,e._stop_count+=1,!0===n&&e.disableNotificationQueue()},a=function(e,n){0!==e._stop_count&&--e._stop_count,0===e._stop_count&&(e._allow_notifications=!0,e.flushNotifications()),!0===n&&e.enableNotificationQueue()},s=function(e){e._allow_notification_queue=!0},c=function(e){if(0===e._stop_count){var n,t,o,i,r=e._notification_queue;if(enyo.exists(r)&&!1!==e._allow_notification_queue)for(t in r)if(r.hasOwnProperty(t))for(o=r[t],i=o.shift(),"function"==typeof i&&(o.unshift(i),i=[]);o.length;)n=o.shift(),n.apply(e,i)}},u=function(e){e._allow_notification_queue=!1,e._notification_queue={}},l=function(n,t,o){function i(o){e(n,o,t[r])}n._observers=o?f(n._observers||{}):n._observers||{};for(var r in t)"function"==typeof t[r]&&!0===t[r].isObserver&&enyo.forEach(t[r].events,i)},f=function(e){var n=function(e){return[].concat(e)},t={};for(var o in e)t[o]=n(e[o]);return t};enyo.kind.features.push(function(e,n){l(e.prototype,n,!0)}),enyo.mixins.features.push(l),enyo.createMixin({name:"enyo.ObserverSupport",_supports_observers:!0,_stop_count:0,_notification_queue:null,_allow_notifications:!0,_allow_notification_queue:!0,addObserver:function(n,t,o){return e(this,n,t,o)},removeObserver:function(e,t){return n(this,e,t)},removeAllObservers:function(){return t(this)},notifyObservers:function(e,n,t){return o(this,e,n,t)},stopNotifications:function(e){return r(this,e)},startNotifications:function(e){return a(this,e)},enableNotificationQueue:function(){return s(this)},disableNotificationQueue:function(){return u(this)},addNotificationToQueue:function(e,n,t){return i(this,e,n,t)},flushNotifications:function(){return c(this)},create:function(){this._observers=f(this._observers)},destroy:function(){this.removeAllObservers()}})})();

// BindingSupport.js
(function(e){e.createMixin({name:"enyo.BindingSupport",defaultBindingKind:"enyo.Binding",bindings:null,_supports_bindings:!0,_bindings_from_observers:null,_binding_constructor:e.computed(function(){return e.getPath(this.defaultBindingKind)},{cached:!0}),binding:function(){for(var n,t,o,i=arguments,r=0,a=i.length,s={},c=this.bindings,u=this.get("_binding_constructor");a>r;++r)e.mixin(s,i[r]);return(o=s.kind)&&("string"==typeof o?t=e.getPath(s.kind):"function"==typeof o&&(t=o)),t&&"function"==typeof t||(t=u),n=new t({owner:this,autoConnect:!0},s),c.push(n),n},clearBindings:function(e){var n=e||this.bindings;if(n.length)do n.shift().destroy();while(n.length)},refreshBindings:function(e){for(var n=e||this.bindings,t=n.length,o=0;t>o;++o)n[o].refresh()},removeBinding:function(n){if(e.exists(n)&&n instanceof e.Binding){var t=this.bindings||[],o=e.indexOf(n,t);~o&&t.splice(o,1)}},addObserver:function(e,n){return n&&n.bindingId&&this._bindings_from_observers.push(n.bindingId),this.inherited(arguments)},_constructor:function(){return this._bindings_from_observers=[],this.inherited(arguments)},create:function(){var e=this.bindings||(this.bindings=[]),n=e.length,t=0;for(this.bindings=[];n>t;++t)this.binding(e[t])},destroy:function(){var n,t,o=this.bindings,i=this._bindings_from_observers;if(o.length)do o.pop().destroy();while(o.length);if(i.length)for(;i.length;)n=i.pop(),t=e.Binding.find(n),t&&!t.destroyed&&t.destroy()}})})(enyo);

// ApplicationSupport.js
enyo.createMixin({name:"enyo.ApplicationSupport",app:null,_supports_applications:!0,adjustComponentProps:function(e){return e.app=this.app,this.inherited(arguments,e)},destroy:function(){delete this.app}});

// AutoBindingSupport.js
(function(e){var n={bindFrom:"from",bindTo:"to",bindTransform:"transform",bindOneWay:"oneWay",bindTwoWay:"twoWay",bindAutoSync:"autoSync",bindDebug:"debug"},t={to:".content",transform:null,oneWay:!0,twoWay:!1,autoSync:!1,debug:!1},o=function(){if(this._supports_autobindings&&this.controller&&this.controller instanceof e.Controller){var n,t,o=this.get("_auto_bindings"),i=this.get("_bindable_controls"),r=0,a=i.length,s=this.controller;for(o&&o.length&&this.clearBindings(o);a>r;++r)n=i[r],t=this._bind_properties(n),this._auto_binding(t,{source:s,target:n})}};e.createMixin({name:"enyo.AutoBindingSupport",_supports_autobindings:!0,_bindable_controls:e.computed(function(e){e=e||this;for(var n=[],t=e.controls||[],o=0,i=t.length;i>o;++o)n=n.concat(this._bindable_controls(t[o]));return"bindFrom"in e&&n.push(e),n},{cached:!0}),_binding_defaults:e.computed(function(){var n=this.get("_binding_constructor"),o=e.keys(t);return e.Binding!==n?e.mixin(e.clone(t),e.only(o,n.prototype,!0)):e.clone(t)},{cached:!0}),_auto_bindings:e.computed(function(){return e.filter(this.bindings||[],function(e){return e&&e._auto_binding_id})}),_auto_binding:function(){var n=this.binding.apply(this,arguments);n._auto_binding_id=e.uid("_auto_binding")},_bind_properties:function(t){var o=this.get("_binding_defaults");return e.mixin(e.clone(o),e.remap(n,t))},_controller_changed:e.observer(function(){this.inherited(arguments),o.call(this)},"controller")})})(enyo);

// ControllerSupport.js
enyo.createMixin({name:"enyo.ControllerSupport",_supports_controllers:!0,create:function(){this.notifyObservers("controller")},destroy:function(){this.controller&&(this.controller.owner&&this===this.controller.owner&&this.controller.destroy(),this.controller=null)},_controller_changed:enyo.observer(function(){this.findAndInstance("controller")},"controller"),controllerFindAndInstance:function(e,n){(e||n)&&(e?n.set("owner",this):n.addDispatchTarget(this),this.refreshBindings())},dispatchEvent:function(e,n,t){return this.controller&&this.controller.dispatchEvent(e,n,t)?!0:this.inherited(arguments)},dispatch:function(e,n,t){var o=this.controller;return o&&o[e]&&enyo.isFunction(o[e])?o[e].call(o,t||this,n):this.inherited(arguments)}});

// MultipleDispatchSupport.js
enyo.createMixin({name:"enyo.MultipleDispatchSupport",_supports_multiple_dispatch:!0,_dispatch_targets:null,_default_dispatch:!1,_default_target:null,bubbleTarget:enyo.computed(function(){return this._default_target&&this._default_dispatch?this._default_target:void 0},"_default_target","_default_dispatch",{cached:!0}),addDispatchTarget:function(e){var n=this._dispatch_targets;e&&this!==e&&!~enyo.indexOf(e,n)&&this.owner!==e&&n.push(e)},removeDispatchTarget:function(e){var n=this._dispatch_targets,t=enyo.indexOf(e,n);-1!==t&&n.splice(t,1)},ownerChanged:function(){this.inherited(arguments),this.owner&&!0==this.owner instanceof enyo.Component?this.set("_default_target",this.owner):this.set("_default_target",null)},dispatchFrom:function(e,n){if(n.dispatchedByController){if(n.dispatchController===this)return!0}else e===this&&(n.dispatchedByController=!0,n.dispatchController=this);return!1},bubbleUp:function(e,n,t){var o;this._default_dispatch&&this.inherited(arguments),o=this._dispatch_targets,enyo.forEach(enyo.clone(o),function(o){o&&(o.destroyed?this.removeDispatchTarget(o):o.dispatchBubble(e,n,t))},this)},dispatchEvent:function(e,n,t){return this.dispatchFrom(t,n)?!1:this.inherited(arguments)},bubbleDelegation:function(e,n,t,o,i){this._default_dispatch&&this.inherited(arguments);var r=this.get("_dispatch_targets");enyo.forEach(enyo.clone(r),function(r){r&&(r.destroyed?this.removeDispatchTarget(r):r.delegateEvent(e,n,t,o,i))})},create:function(){this._dispatch_targets=[]}});

// Binding.js
(function(){function e(e,t){this.transformer=e,this.binding=t}var t={},n=function(e){t[e.id]=e,e._registered=!0},o=function(e){e=e&&e.id?e.id:e,t[e]&&delete t[e]},i=0,r=function(e,t){var n=e[(t||[])[0]];return enyo.exists(n)?enyo.global===e?"object"==typeof n?e:void 0:e:void 0},s=function(e,t){this.debug;var n,o,i,s,a,c,u=0,h={},l=this.owner,f="."===e[0]?!0:!1;if(e="."===e[0]?e.slice(1):e,n=e.split("."),o=f?t||l:t||r(enyo.global,n)||l,a=o,h.property=s=n.length>1?n.pop():e,s===e||!f&&t)h.base=a;else{for(i=a;n.length>u;++u)if(c=n[u],c&&(i=i[c],!i||"string"==typeof i))return c!==s&&(h.base=null),h;c!==e&&(a=i),h.base=a}return h},a=function(){var e=(this.debug,this.autoConnect),t=this.autoSync,o=this.setupSource(),i=this.setupTarget(),r=this._refreshing;if(this._registered||n(this),!0!==r&&this.setupTransform(),!o||!i)return r&&i&&this.setTargetValue(null),void 0;try{(e||r)&&this.connect()}catch(s){if("binding-destroyed"===s)return;throw s}(t||r)&&this.sync()};e.prototype={transform:function(e,t){var n=this.transformer,o=this.binding,i=o.owner||enyo.global;return n.call(i,e,t,o)},destroy:function(){this.transformer=null,this.binding=null}},enyo.kind({name:"enyo.Binding",kind:null,source:null,target:null,to:null,from:null,autoConnect:!0,autoSync:!0,owner:null,transform:null,oneWay:!0,twoWay:!1,destroyed:!1,debug:!1,statics:{find:function(e){return t[e]}},_source_property:null,_target_property:null,_source_responder:null,_target_responder:null,_is_connected:!1,_synchronizing:!1,_refreshing:!1,_registered:!1,sync:function(){!0===this._is_connected&&this.syncFromSource()},refresh:function(){this._refreshing=!0,a.call(this),this._refreshing=!1},connect:function(){!0!==this._is_connected&&!0!==this.destroyed&&(this.connectSource(),this.connectTarget(),this._is_connected=this.sourceConnected&&this.targetConnected?!0:!1)},disconnect:function(){!1!==this._is_connected&&(this.disconnectSource(),this.disconnectTarget(),this._is_connected=!1)},setupSource:function(){var e,t,n=this._source_property,o=this.source,i=this.from;return o&&n?!0:i?(e=s.call(this,i,o),t=e.base,n=e.property,t&&"object"==typeof t?(this.source=t,this._source_property=n,!0):!1):!1},setupTarget:function(){var e,t,n=this._target_property,o=this.target,i=this.to;return o&&n?!0:i?(e=s.call(this,i,o),t=e.base,n=e.property,t&&"object"==typeof t?(this.target=t,this._target_property=n,!0):!1):!1},stop:function(){throw"stop-binding"},connectSource:function(){var e=this.source,t=this._source_property,n=this._source_responder;if(!(e instanceof enyo.Object))return this.sourceConnected=!1,!1;if(enyo.exists(n)&&"function"==typeof n||(n=enyo.bind(this,this.syncFromSource),this._source_responder=n),!0===e.destroyed)throw this.destroy(),"binding-destroyed";return!0===this.sourceConnected?!0:enyo.exists(e)?(n.bindingId=this.id,e.addObserver(t,n),this.sourceConnected=!0,!0):(this.sourceConnected=!1,!1)},connectTarget:function(){var e=this.target,t=this._target_property,n=this._target_responder,o=this.oneWay;if(!(e instanceof enyo.Object))return this.targetConnected=!1,!1;if(!0===e.destroyed)throw this.destroy(),"binding-destroyed";return!0===o?(this.targetConnected=!0,!0):(enyo.exists(n)&&"function"==typeof n||(n=enyo.bind(this,this.syncFromTarget),this._target_responder=n),!0===this.targetConnected?!0:enyo.exists(e)?(n.bindingId=this.id,e.addObserver(t,n),this.targetConnected=!0,!0):(this.targetConnected=!1,!1))},syncFromSource:function(){var e=this.twoWay,t=this.getSourceValue(),n=this.transform;try{t=n.transform(t,"source")}catch(o){if("stop-binding"===o)return;throw o}e&&(this._synchronizing=!0,this.disconnectTarget()),this.setTargetValue(t),e&&(this.connectTarget(),this._synchronizing=!1)},syncFromTarget:function(){var e=this.getTargetValue(),t=this.transform;try{e=t.transform(e,"target")}catch(n){if("stop-binding"===n)return;throw n}this.disconnectSource(),this.setSourceValue(e),this.connectSource()},disconnectSource:function(){var e=this.source,t=this._source_property,n=this._source_responder;enyo.exists(e)&&(e.removeObserver(t,n),this.sourceConnected=!1)},disconnectTarget:function(){var e=this.target,t=this._target_responder,n=this._target_property;enyo.exists(e)&&("function"==typeof t&&e.removeObserver(n,t),this.targetConnected=!1)},setSourceValue:function(e){var t=this.source,n=this._source_property;t.set(n,e,!0)},setTargetValue:function(e){var t=this.target,n=this._target_property;t.set(n,e,!0)},getSourceValue:function(){var e=this.source,t=this._source_property;return e.get(t)},getTargetValue:function(){var e=this.target,t=this._target_property;return e.get(t)},setupTransform:function(){var t=this.transform,n=this.owner||{};"string"==typeof t&&(t=n[t]||enyo.getPath.call(n,t)||enyo.getPath.call(enyo.global,t)),"function"!=typeof t&&(t=this.transform=function(e){return e}),t instanceof e||(this.transform=new e(t,this))},destroy:function(){!0!==this.destroyed&&(this.destroyed=!0,this.disconnect(),this.source=null,this.target=null,this._source_responder=null,this._target_responder=null,enyo.Binding.bindingCount--,this.transform&&(this.transform.destroy(),this.transform=null),this.owner&&this.owner.removeBinding(this),o(this))},constructor:function(){var e,t,n=0,o=arguments.length;for(i++;o>n;++n)enyo.mixin(this,arguments[n]);this.id=enyo.uid("binding"),e=this.oneWay,t=this.twoWay,!0===t?this.oneWay=!1:!1===e&&(this.twoWay=!0),a.call(this)}})})();

// Object.js
enyo.kind({name:"enyo.Object",kind:null,concat:enyo.concat,mixins:["enyo.MixinSupport","enyo.ObserverSupport","enyo.ComputedSupport","enyo.BindingSupport"],constructor:function(e){enyo._objectCount++,this.importProps(e)},importProps:function(e){if(e)for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t])},destroyObject:function(e){this[e]&&this[e].destroy&&this[e].destroy(),this[e]=null},log:function(){var e=arguments.callee.caller,t=((e?e.nom:"")||"(instance method)")+":";enyo.logging.log("log",[t].concat(enyo.cloneArray(arguments)))},warn:function(){this._log("warn",arguments)},error:function(){this._log("error",arguments)},_log:function(e,t){if(enyo.logging.shouldLog(e))try{throw Error()}catch(n){enyo.logging._log(e,[t.callee.caller.nom+": "].concat(enyo.cloneArray(t))),enyo.log(n.stack)}},findAndInstance:function(e){if(enyo.exists(e)){var t=this[e+"FindAndInstance"];return enyo.findAndInstance.call(this,e,t,this)}},get:function(){return enyo.getPath.apply(this,arguments)},set:function(){return enyo.setPath.apply(this,arguments)},bindSafely:function(e){var t=this;if(enyo.isString(e)){if(!this[e])throw['enyo.Object.bindSafely: this["',e,'"] is null (this="',this,'")'].join("");e=this[e]}if(enyo.isFunction(e)){var n=enyo.cloneArray(arguments,1);return function(){if(!t.destroyed){var o=enyo.cloneArray(arguments);return e.apply(t,n.concat(o))}}}throw['enyo.Object.bindSafely: this["',e,'"] is not a function (this="',this,'")'].join("")},destroy:function(){this.destroyed=!0},_is_object:!0}),enyo._objectCount=0,enyo.Object.subclass=function(e,t){this.publish(e,t),this.overload(e,t)},enyo.Object.publish=function(e,t){var n=t.published;if(n){var o=e.prototype;for(var i in n)t[i]&&enyo.isFunction(t[i])&&t[i].isProperty||enyo.Object.addGetterSetter(i,n[i],o)}},enyo.Object.overload=function(e,t){var n,o,i=e.prototype.base?e.prototype.base.prototype:{},r=/^(get|set).*/;for(n in t)r.test(n)&&(o=t[n],"function"==typeof o&&i[n]&&(o.overloaded=!0))},enyo.Object.addGetterSetter=function(e,t,n){var o,i="get"+enyo.cap(e),r="set"+enyo.cap(e);n[e]=t,o=n[i],"function"!=typeof o?(o=n[i]=function(){return this.get(e)},o.overloaded=!1):!1!==o.overloaded&&(o.overloaded=!0),o=n[r],"function"!=typeof o?(o=n[r]=function(){return this.set(e,arguments[0])},o.overloaded=!1):!1!==o.overloaded&&(o.overloaded=!0)};

// Component.js
enyo.kind({name:"enyo.Component",kind:enyo.Object,published:{name:"",id:"",owner:null},statics:{_kindPrefixi:{},_unnamedKindNumber:0},defaultKind:"Component",handlers:{},mixins:["enyo.ApplicationSupport"],__jobs:{},toString:function(){return this.kindName},constructor:function(){this._componentNameMap={},this.$={},this.inherited(arguments)},constructed:function(e){this.handlers=enyo.mixin(enyo.clone(this.kindHandlers),this.handlers),this.create(e)},create:function(){this.ownerChanged(),this.initComponents()},initComponents:function(){this.createChrome(this.kindComponents),this.createClientComponents(this.components)},createChrome:function(e){this.createComponents(e,{isChrome:!0})},createClientComponents:function(e){this.createComponents(e,{owner:this.getInstanceOwner()})},getInstanceOwner:function(){return!this.owner||this.owner.notInstanceOwner?this:this.owner},destroy:function(){this.destroyComponents(),this.setOwner(null),this.inherited(arguments),this.stopAllJobs()},destroyComponents:function(){enyo.forEach(this.getComponents(),function(e){e.destroyed||e.destroy()})},makeId:function(){var e="_",n=this.owner&&this.owner.getId(),t=this.name||"@@"+ ++enyo.Component._unnamedKindNumber;return(n?n+e:"")+t},ownerChanged:function(e){e&&e.removeComponent&&e.removeComponent(this),this.owner&&this.owner.addComponent&&this.owner.addComponent(this),this.id||(this.id=this.makeId())},nameComponent:function(e){var n,t=enyo.Component.prefixFromKindName(e.kindName),o=this._componentNameMap[t]||0;do n=t+(++o>1?o+"":"");while(this.$[n]);return this._componentNameMap[t]=Number(o),e.name=n,e.name},addComponent:function(e){var n=e.getName();n||(n=this.nameComponent(e)),this.$[n]&&this.warn('Duplicate component name "'+n+'" in owner "'+this.id+'" violates '+"unique-name-under-owner rule, replacing existing component in the hash and continuing, "+"but this is an error condition and should be fixed."),this.$[n]=e},removeComponent:function(e){delete this.$[e.getName()]},getComponents:function(){var e=[];for(var n in this.$)e.push(this.$[n]);return e},adjustComponentProps:function(e){this.defaultProps&&enyo.mixin(e,this.defaultProps),e.kind=e.kind||e.isa||this.defaultKind,e.owner=e.owner||this},_createComponent:function(e,n){if(!e.kind&&"kind"in e)throw"enyo.create: Attempt to create a null kind. Check dependencies for ["+e.name+"].";var t=enyo.mixin(enyo.clone(n),e);return this.adjustComponentProps(t),enyo.Component.create(t)},createComponent:function(e,n){return this._createComponent(e,n)},createComponents:function(e,n){if(e){for(var t,o=[],i=0;t=e[i];i++)o.push(this._createComponent(t,n));return o}},getBubbleTarget:function(){return this._bubble_target||this.owner},bubble:function(e,n,t){if(!this._silenced){var o=n||{};return"originator"in o||(o.originator=t||this),this.dispatchBubble(e,o,t||this)}},bubbleUp:function(e,n){if(!this._silenced){var t=this.getBubbleTarget(),o=n.delegate;return t?t.dispatchBubble(e,n,o||this):!1}},dispatchEvent:function(e,n,t){if(!this._silenced){var o,i=(n||(n={})).delegate;if(this.decorateEvent(e,n,t),this.handlers&&this.handlers[e]&&this.dispatch(this.handlers[e],n,t))return!0;if(this[e]){if("function"!=typeof this[e])return i||(n.delegate=this),o=this.bubbleUp(this[e],n,t),delete n.delegate,o;if(this._is_controller||i&&this===i.owner)return this.dispatch(e,n,t)}}},dispatchBubble:function(e,n,t){return this._silenced?void 0:this.dispatchEvent(e,n,t)?!0:this.bubbleUp(e,n,t)},decorateEvent:function(){},bubbleDelegation:function(e,n,t,o,i){if(!this._silenced){var r=this.getBubbleTarget();return r?r.delegateEvent(e,n,t,o,i):void 0}},delegateEvent:function(e,n,t,o,i){return this._silenced?void 0:(this.decorateEvent(t,o,i),e==this?this.dispatch(n,o,i):this.bubbleDelegation(e,n,t,o,i))},stopAllJobs:function(){for(var e in this.__jobs)this.stopJob(e)},dispatch:function(e,n,t){if(!this._silenced){var o=e&&this[e];return o&&"function"==typeof o?o.call(this,t||this,n):void 0}},waterfall:function(e,n,t){return this._silenced?void 0:(n=n||{},this.dispatchEvent(e,n,t)?!0:(this.waterfallDown(e,n,t||this),void 0))},waterfallDown:function(e,n,t){if(!this._silenced)for(var o in this.$)this.$[o].waterfall(e,n,t)},_silenced:!1,_silence_count:0,silence:function(){this._silenced=!0,this._silence_count+=1},unsilence:function(){0!==this._silence_count&&--this._silence_count,0===this._silence_count&&(this._silenced=!1)},startJob:function(e,n,t){enyo.isString(n)&&(n=this[n]),this.stopJob(e),this.__jobs[e]=setTimeout(this.bindSafely(function(){this.stopJob(e),n.call(this)}),t)},stopJob:function(e){this.__jobs[e]&&(clearTimeout(this.__jobs[e]),delete this.__jobs[e])}}),enyo.defaultCtor=enyo.Component,enyo.create=enyo.Component.create=function(e){if(!e.kind&&"kind"in e)throw"enyo.create: Attempt to create a null kind. Check dependencies for ["+(e.name||"")+"].";var n=e.kind||e.isa||enyo.defaultCtor,t=enyo.constructorForKind(n);return t||(enyo.error('no constructor found for kind "'+n+'"'),t=enyo.Component),new t(e)},enyo.Component.subclass=function(e,n){var t=e.prototype;if(n.components&&(t.kindComponents=n.components,delete t.components),n.handlers){var o=t.kindHandlers;t.kindHandlers=enyo.mixin(enyo.clone(o),t.handlers),t.handlers=null}n.events&&this.publishEvents(e,n)},enyo.Component.publishEvents=function(e,n){var t=n.events;if(t){var o=e.prototype;for(var i in t)this.addEvent(i,t[i],o)}},enyo.Component.addEvent=function(e,n,t){var o,i;enyo.isString(n)?("on"!=e.slice(0,2)&&(enyo.warn("enyo.Component.addEvent: event names must start with 'on'. "+t.kindName+" event '"+e+"' was auto-corrected to 'on"+e+"'."),e="on"+e),o=n,i="do"+enyo.cap(e.slice(2))):(o=n.value,i=n.caller),t[e]=o,t[i]||(t[i]=function(n){n=n||{};var t=n.delegate;delete n.delegate,this.bubble(e,n),t&&(n.delegate=t)})},enyo.Component.prefixFromKindName=function(e){var n=enyo.Component._kindPrefixi[e];if(!n){var t=e.lastIndexOf(".");n=t>=0?e.slice(t+1):e,n=n.charAt(0).toLowerCase()+n.slice(1),enyo.Component._kindPrefixi[e]=n}return n};

// UiComponent.js
enyo.kind({name:"enyo.UiComponent",kind:enyo.Component,published:{container:null,parent:null,controlParentName:"client",layoutKind:""},handlers:{onresize:"resizeHandler"},addBefore:void 0,statics:{_resizeFlags:{showingOnly:!0}},create:function(){this.controls=[],this.children=[],this.containerChanged(),this.inherited(arguments),this.layoutKindChanged()},destroy:function(){this.destroyClientControls(),this.setContainer(null),this.inherited(arguments)},importProps:function(){this.inherited(arguments),this.owner||(this.owner=enyo.master)},createComponents:function(){var e=this.inherited(arguments);return this.discoverControlParent(),e},discoverControlParent:function(){this.controlParent=this.$[this.controlParentName]||this.controlParent},adjustComponentProps:function(e){e.container=e.container||this,this.inherited(arguments)},containerChanged:function(e){e&&e.removeControl(this),this.container&&this.container.addControl(this,this.addBefore)},parentChanged:function(e){e&&e!=this.parent&&e.removeChild(this)},isDescendantOf:function(e){for(var n=this;n&&n!=e;)n=n.parent;return e&&n==e},getControls:function(){return this.controls},getClientControls:function(){for(var e,n=[],t=0,o=this.controls;e=o[t];t++)e.isChrome||n.push(e);return n},destroyClientControls:function(){for(var e,n=this.getClientControls(),t=0;e=n[t];t++)e.destroy()},addControl:function(e,n){this.controls.push(e),this.addChild(e,n)},removeControl:function(e){return e.setParent(null),enyo.remove(e,this.controls)},indexOfControl:function(e){return enyo.indexOf(e,this.controls)},indexOfClientControl:function(e){return enyo.indexOf(e,this.getClientControls())},indexInContainer:function(){return this.container.indexOfControl(this)},clientIndexInContainer:function(){return this.container.indexOfClientControl(this)},controlAtIndex:function(e){return this.controls[e]},addChild:function(e,n){if(this.controlParent)this.controlParent.addChild(e);else if(e.setParent(this),void 0!==n){var t=null===n?0:this.indexOfChild(n);this.children.splice(t,0,e)}else this.children.push(e)},removeChild:function(e){return enyo.remove(e,this.children)},indexOfChild:function(e){return enyo.indexOf(e,this.children)},layoutKindChanged:function(){this.layout&&this.layout.destroy(),this.layout=enyo.createFromKind(this.layoutKind,this),this.generated&&this.render()},flow:function(){this.layout&&this.layout.flow()},reflow:function(){this.layout&&this.layout.reflow()},resized:function(){this.waterfall("onresize",enyo.UiComponent._resizeFlags),this.waterfall("onpostresize",enyo.UiComponent._resizeFlags)},resizeHandler:function(){this.reflow()},waterfallDown:function(e,n,t){n=n||{};for(var o in this.$)this.$[o]instanceof enyo.UiComponent||this.$[o].waterfall(e,n,t);for(var i,r=0,s=this.children;i=s[r];r++)!i.showing&&n&&n.showingOnly||i.waterfall(e,n,t)},getBubbleTarget:function(){return this._bubble_target||this.parent}}),enyo.createFromKind=function(e,n){var t=e&&enyo.constructorForKind(e);return t?new t(n):void 0},enyo.master=new enyo.Component({name:"master",notInstanceOwner:!0,eventFlags:{showingOnly:!0},getId:function(){return""},isDescendantOf:enyo.nop,bubble:function(e,n){"onresize"==e?(enyo.master.waterfallDown("onresize",this.eventFlags),enyo.master.waterfallDown("onpostresize",this.eventFlags)):enyo.Signals.send(e,n)}});

// Layout.js
enyo.kind({name:"enyo.Layout",kind:null,layoutClass:"",constructor:function(e){this.container=e,e&&e.addClass(this.layoutClass)},destroy:function(){this.container&&this.container.removeClass(this.layoutClass)},flow:function(){},reflow:function(){}});

// Signals.js
enyo.kind({name:"enyo.Signals",kind:enyo.Component,create:function(){this.inherited(arguments),enyo.Signals.addListener(this)},destroy:function(){enyo.Signals.removeListener(this),this.inherited(arguments)},notify:function(e,n){this.dispatchEvent(e,n)},statics:{listeners:[],addListener:function(e){this.listeners.push(e)},removeListener:function(e){enyo.remove(e,this.listeners)},send:function(e,n){enyo.forEach(this.listeners,function(t){t.notify(e,n)})}}});

// Controller.js
enyo.kind({name:"enyo.Controller",kind:"enyo.Component",mixins:["enyo.MultipleDispatchSupport"],data:null,_is_controller:!0});

// Router.js
(function(e){var n=[],t=function(e){for(var t=n,o=t.length,i=0;o>i;++i)t[i]._hash_changed(e)},o=/\:[a-zA-Z0-9]*/g,i=function(e){return"#"===e[0]?e.slice(1):e};e.ready(function(){e.dispatcher.listen(window,"hashchange",t)}),e.kind({name:"enyo.Router",listening:!0,internalOnly:!1,defaultRoute:null,triggerOnStart:!0,routes:null,kind:"enyo.Controller",_static_routes:null,_dynamic_routes:null,_current:"",location:e.computed(function(e){return e?(e=i(e),this.internalOnly?this.set("_current",e):window.location.hash=e,void 0):i(this.get("_current"))},"_current",{cached:!0}),trigger:function(e){e?"string"==typeof e&&(e={location:e}):e={location:this.get("_current")};var n=e.location,o=e.global,i=e.change;i?window.location.hash=n:o?t(n):this._hash_changed(n)},handle:function(e){this._handle_static(e)||this._handle_dynamic(e)||this._handle_default(e)},addRoute:function(e){var n,t=this._static_routes,i=this._dynamic_routes;!0===e["default"]?this.defaultRoute=e:o.test(e.path)?(n=RegExp(e.path.replace(o,"([a-zA-Z0-9]*)")),e.regex=n,i.push(e)):t[e.path]=e},constructor:function(){this._static_routes={},this._dynamic_routes=[],this.inherited(arguments)},create:function(){this.inherited(arguments),this._setup_routes(),this.set("_current",i(window.location.hash)),n.push(this),this.triggerOnStart&&this.trigger()},destroy:function(){var t=e.indexOf(this,n);~t||n.splice(t,1),this.inherited(arguments)},_hash_changed:function(e){e=function(n){return"string"!=typeof e&&(n=e.newUrl||window.location.hash),i(n)}(e||{}),this.listening&&(this.set("_current",e),this.handle(e))},_exec_handler:function(n,t,o,i){var r=t;return"string"==typeof t&&(n?"string"==typeof n&&(n=e.getPath(n)):n=this,r=this[t]||n[t],"function"==typeof r&&(i.handler=r,i.context=n)),r&&"function"==typeof r?(r.apply(n,o),!0):!1},_handle_static:function(e){var n,t,o,i=this._static_routes;return(n=i[e])?(t=n.handler,o=n.context,this._exec_handler(o,t,[e],n)):!1},_handle_dynamic:function(e){for(var n,t,o,i,r,s=this._dynamic_routes,a=0,c=s.length;c>a;++a)if(t=s[a],n=t.regex,r=n.exec(e))return r=r.slice(1),o=t.handler,i=t.context,this._exec_handler(i,o,r,t);return!1},_handle_default:function(e){var n=this.defaultRoute||{},t=n.context,o=n.handler;return this._exec_handler(t,o,[e],n)},_setup_routes:function(){for(var e,n=this.routes,t=0,o=n.length;o>t;++t)e=n[t],e&&this.addRoute(e)}})})(enyo);

// ArrayController.js
enyo.kind({name:"enyo.ArrayController",kind:"enyo.Controller",length:0,data:enyo.computed(function(e){if(e)return this.reset(e);for(var t=[],n=0,i=this.length;i>n;++n)t[n]=this[n];return t},"length",{cached:!0}),_init_values:null,push:function(){var e=arguments,t=this.length,n=e.length+t,i=0,o={},r=this.length;if(n){for(;n>t;++t,++i)o[t]=this[t]=e[i];return this.length=n,this.notifyObservers("length",r,this.length),this.dispatchBubble("didadd",{values:o},this),this.length}return 0},pop:function(){if(this.length){var e=this.length-1,t=this[e],n={};return delete this[e],this.length=e,n[e]=t,this.notifyObservers("length",e+1,e),this.dispatchBubble("didremove",{values:n},this),t}},shift:function(){if(this.length){for(var e=this[0],t=1,n=this.length,i={};n>t;++t)this[t-1]=this[t];return delete this[n-1],this.length=n-1,i[0]=e,this.notifyObservers("length",n,this.length),this.dispatchBubble("didremove",{values:i},this),e}},unshift:function(){if(arguments.length){for(var e=this.length,t=e-1,n=arguments.length,i=t+n,o={};i>=n;--i,--t)this[i]=this[t];for(t=0;n>t;++t)o[t]=this[t]=arguments[t];return this.length=e+arguments.length,this.notifyObservers("length",e,this.length),this.dispatchBubble("didadd",{values:o},this),this.length}},indexOf:function(e,t){return enyo.indexOf(e,this.get("data"),t)},lastIndexOf:function(e,t){return enyo.lastIndexOf(e,this.get("data"),t)},splice:function(e,t){var n,i,o,r,s=enyo.toArray(arguments).slice(2),a=s.length,c=this.length,h=c-1,u=[],l={added:{len:0},removed:{len:0},changed:{len:0}},d=0;if(e=0>e?0:e>=c?c:e,t=t&&!isNaN(t)&&c>=t+e?t:0)for(o=e+t-a,n=e,i=e+t-1;i>=n;++n,++d)u[d]=this[n],a&&a>=t?(l.changed[n]=this[n],l.changed.len++):a&&t>a&&o>n&&(l.changed[n]=this[n],l.changed.len++),l.removed[n]=this[n],l.removed.len++;if(a&&a>t){for(r=a-t,d=h;d>=e&&c>d;--d)this[d+r]=this[d];this.length+=r}else{for(r=t-(a?a:0),d=e+t;c>d;++d)this[d-r]=this[d],l.changed[d-r]=this[d-r],l.changed.len++;for(n=this.length-=r;c>n;++n)delete this[n]}if(a)for(d=0,n=e,r=t?t>a?t-a:a-t:0;a>d;++n,++d)this[n]=s[d],c&&c>n&&(l.changed[n]=this[n],l.changed.len++),(!c||r&&d>=r||!t)&&(l.added[c+d-r]=this[c+d-r],l.added.len++);return c!==this.length&&this.notifyObservers("length",c,this.length),l.removed.len&&(delete l.removed.len,this.dispatchBubble("didremove",{values:l.removed},this)),l.added.len&&(delete l.added.len,this.dispatchBubble("didadd",{values:l.added},this)),l.changed.len&&(delete l.changed.len,this.dispatchBubble("didchange",{values:l.changed},this)),u},join:function(e){this.get("data").join(e)},map:function(e,t){return enyo.map(this.get("data"),e,t)},filter:function(e,t){return enyo.filter(this.get("data"),e,t)},add:function(e,t){e=e&&"length"in e?e:[e];var n=this.length,i=t&&!isNaN(t)&&t>=0&&n>t?t:n,o=[i,0].concat(e);this.splice.apply(this,o)},remove:function(e,t){var n,i,o,r=0;if(e instanceof Array){for(n={removed:{},changed:{}},i=0,o=e.length,this.silence(),this.stopNotifications(!0);o>i;++i)t=this.indexOf(e[i]),r>t&&(r=t),n.removed[i]=e[i],this.remove(e[i],t);for(i=r,o=this.length;o>i;++i)n.changed[i]=this[i];this.unsilence(),this.startNotifications(!0),this.dispatchBubble("didremove",{values:n.removed},this),this.dispatchBubble("didchange",{values:n.changed},this)}else i=isNaN(t)?this.indexOf(e):t,~i&&this.splice(i,1)},reset:function(e){this.silence(),this.stopNotifications(!0),e?this.splice.apply(this,[0,this.length].concat(e)):this.splice(0,this.length),this.unsilence(),this.startNotifications(!0),this.dispatchBubble("didreset",{values:this},this)},swap:function(e,t){var n={},i=this[e],o=this[t];n[e]=this[e]=o,n[t]=this[t]=i,this.dispatchBubble("didchange",{values:n},this)},move:function(e,t){var n,i=this.length,o=i-1;e=0>e?0:e>=i?o:e,t=0>t?0:t>=i?o:t,e!==t&&(n=this[e],this.silence(),this.stopNotifications(!0),e===o?this.pop():this.splice(e,1),this.unsilence(),this.startNotifications(!0),this.splice(t,0,n))},contains:function(e){return~enyo.indexOf(this.get("data"),e)?!0:!1},at:function(e){return this[e]},find:function(e,t){for(var n,i=0,o=this.length;o>i;++i)if(n=this.at(i),e.call(t||this,n))return n;return!1},changed:function(e){var t,n,i,o,r,s={},a=0;if(e)n=e instanceof Array?e.slice():enyo.keys(e);else for(n=[],t=this.length,o=this.get("data");t>a;++a)r=o[a],this.comparator(this[a],r)||(s[a]=this[a],n.push(a));if(n.length){for(t=n.length;t>a;++a)i=n[a],s[i]=this[i];this.dispatchBubble("didchange",{values:s},this)}},comparator:function(e,t){return e===t},create:function(){this.inherited(arguments),this._init_values&&(this.add.call(this,this._init_values),this._init_values=null)},constructor:function(){if(this.inherited(arguments),arguments.length){for(var e=[],t=0,n=arguments.length;n>t;++t)arguments[t]instanceof Array&&(e=e.concat(arguments[t]));this._init_values=e}}});

// ViewController.js
(function(e){e.kind({name:"enyo.ViewController",kind:"enyo.Controller",view:null,renderTarget:"document.body",_is_view_controller:!0,_view_kind:e.computed(function(){var t=this.view;if("function"==typeof t)return t;if("object"==typeof t)return t.name||(t.name=this._make_view_name()),e.kind(t);if("string"==typeof t)return t=e.getPath(t),t.prototype.kindName||(t.prototype.kindName=this._make_view_name()),t;throw this.kindName+" cannot initialize without a valid view defined"},{cached:!0}),_render_target:e.computed(function(){var t=this.renderTarget;if(t=e.dom.byId(t)||e.getPath(t))return t;throw this.kindName+" cannot find the render target: "+this.renderTarget},"renderTarget",{cached:!0}),render:function(){var e=this.view,t=this.get("_render_target");e.hasNode()?e.render():e.renderInto(t)},renderInto:function(e){this.set("renderTarget",e),this.render()},constructed:function(){this.inherited(arguments),this._create_view()},_create_view:function(){this.set("view",new this.get("_view_kind"))},_make_view_name:function(){return e.uid("_view_controller_view_")}})})(enyo);

// Application.js
(function(e){var t=e.applications={},n=function(e){t[e.id]=e},i=function(n){var i=n.kindName,o=t[i]||[],r=e.indexOf(n,o);~r||o.splice(r,1)},o=function(){var e;for(e in this.controllers)this===this.controllers[e].owner&&"function"==typeof this.controllers[e].destroy&&this.controllers[e].destroy(),delete this.controllers[e];delete this.controllers},r=function(){for(var t,n=this.controllers||[],i=this.controllers={},o=n.length,r=0;o>r;++r){t=n[r];var s,a,c=t.name,h=Boolean(t.global);delete t.global,delete t.name,"kind"in t||(t.kind="enyo.Controller"),s=e.kind(t),a=new s({owner:this,app:this}),!1===h?i[c]=a:e.setPath(c,a)}};e.kind.postConstructors.push(function(){this._is_application&&!0===this.autoStart&&this.start()}),e.kind({name:"enyo.Application",kind:"enyo.ViewController",autoStart:!0,renderOnStart:!0,controllers:null,concat:["controllers"],_is_application:!0,start:function(){!0===this.renderOnStart&&this.render()},constructor:function(t){t&&e.exists(t.name)?(e.setPath(t.name,this),this.id=t.name,delete t.name):this.id=e.uid("_application_"),this.inherited(arguments),n(this)},constructed:function(){r.call(this),this.inherited(arguments)},_create_view:function(){var e=this.get("_view_kind");this.set("view",new e({app:this,_bubble_target:this}))},_make_view_name:function(){return e.uid("_application_view_")},destroy:function(){o.call(this),this.inherited(arguments),i(this)}})})(enyo);

// ObjectController.js
enyo.kind({name:"enyo.ObjectController",kind:"enyo.Controller",_getting:!1,_listener:null,_last:null,get:function(t){var e;return"data"===t?this.inherited(arguments):(!1===(e=this.getDataProperty(t))&&(e=this.inherited(arguments)),e)},set:function(t,e){return this.setDataProperty(t,e)?void 0:this.inherited(arguments)},setDataProperty:function(t,e){var n=this.get("data");return n&&this.isAttribute(t)?(n instanceof enyo.Object||(this.stopNotifications(),this.notifyObservers(t,this.get(t),e)),enyo.setPath.call(n,t,e),this.startNotifications(),!0):!1},getDataProperty:function(t){var e=this.get("data");return e&&this.isAttribute(t)?enyo.getPath.call(e,t):!1},isAttribute:function(t){var e=this.get("data");if(e){if("function"==typeof e.isAttribute)return e.isAttribute(t);if(e.hasOwnProperty(t))return!0}return!1},releaseData:function(t){t=t||this.get("data"),t&&t instanceof enyo.Object&&(this._listener&&t.removeObserver("*",this._listener),this._last=null)},sync:function(){var t,e,n,i,o,r=this._observers,s=0;for(e in r)if(n=r[e],n&&n.length)for(s=0,i=n.length;i>s;++s)if(t=n[s],t.bindingId){if(o=enyo.Binding.map[t.bindingId],!o)continue;o.sync()}},initData:function(t){t=t||this.get("data"),t&&t instanceof enyo.Object&&(this._listener=t.addObserver("*",this.notifyObservers,this),this._last=t)},create:function(){this.inherited(arguments),this.dataDidChange()},notifyAll:function(){var t,e,n=this._observers,i=function(t){"function"==typeof t&&t()};for(e in n)n.hasOwnProperty(e)&&!1!==this.isAttribute(e)&&(t=n[e],enyo.forEach(t,i,this))},dataDidChange:enyo.observer(function(){this._last&&this.releaseData(this._last),this.initData(),this.notifyAll()},"data")});

// macroize.js
enyo.macroize=function(t,e,n){var i,o,r=t,s=n||enyo.macroize.pattern,a=function(t,n){return i=enyo.getPath.call(e,n),void 0===i||null===i?"{$"+n+"}":(o=!0,i)},c=0;do if(o=!1,r=r.replace(s,a),++c>=20)throw"enyo.macroize: recursion too deep";while(o);return r},enyo.quickMacroize=function(t,e,n){var i,o=t,r=n||enyo.macroize.pattern,s=function(t,n){return i=n in e?e[n]:enyo.getPath.call(e,n),void 0===i||null===i?"{$"+n+"}":i};return o=o.replace(r,s)},enyo.macroize.pattern=/\{\$([^{}]*)\}/g;

// InputBinding.js
enyo.kind({name:"enyo.InputBinding",kind:"enyo.Binding",twoWay:!0,transform:function(t,e,n){var i=n.source||{},o=n.target||{},r=i.placholder||o.placeholder||"";return enyo.exists(t)&&null!==t&&0!==t.length?t:r}});

// Async.js
enyo.kind({name:"enyo.Async",kind:enyo.Object,published:{timeout:0},failed:!1,context:null,constructor:function(){this.responders=[],this.errorHandlers=[]},accumulate:function(t,e){var n=2>e.length?e[0]:enyo.bind(e[0],e[1]);t.push(n)},response:function(){return this.accumulate(this.responders,arguments),this},error:function(){return this.accumulate(this.errorHandlers,arguments),this},route:function(t,e){var n=this.bindSafely("respond");t.response(function(t,e){n(e)});var i=this.bindSafely("fail");t.error(function(t,e){i(e)}),t.go(e)},handle:function(t,e){var n=e.shift();if(n)if(n instanceof enyo.Async)this.route(n,t);else{var i=enyo.call(this.context||this,n,[this,t]);i=void 0!==i?i:t,(this.failed?this.fail:this.respond).call(this,i)}},startTimer:function(){this.startTime=enyo.now(),this.timeout&&(this.timeoutJob=setTimeout(this.bindSafely("timeoutComplete"),this.timeout))},endTimer:function(){this.timeoutJob&&(this.endTime=enyo.now(),clearTimeout(this.timeoutJob),this.timeoutJob=null,this.latency=this.endTime-this.startTime)},timeoutComplete:function(){this.timedout=!0,this.fail("timeout")},respond:function(t){this.failed=!1,this.endTimer(),this.handle(t,this.responders)},fail:function(t){this.failed=!0,this.endTimer(),this.handle(t,this.errorHandlers)},recover:function(){this.failed=!1},go:function(t){return enyo.asyncMethod(this,function(){this.respond(t)}),this}});

// json.js
enyo.json={stringify:function(t,e,n){return JSON.stringify(t,e,n)},parse:function(t,e){return t?JSON.parse(t,e):null}};

// cookie.js
enyo.getCookie=function(t){var e=document.cookie.match(RegExp("(?:^|; )"+t+"=([^;]*)"));return e?decodeURIComponent(e[1]):void 0},enyo.setCookie=function(t,e,n){var i=t+"="+encodeURIComponent(e),o=n||{},r=o.expires;if("number"==typeof r){var s=new Date;s.setTime(s.getTime()+1e3*60*60*24*r),r=s}r&&r.toUTCString&&(o.expires=r.toUTCString());var a,c;for(a in o)i+="; "+a,c=o[a],c!==!0&&(i+="="+c);document.cookie=i};

// xhr.js
enyo.xhr={request:function(e){var t=this.getXMLHttpRequest(e),n=enyo.path.rewrite(this.simplifyFileURL(e.url)),i=e.method||"GET",o=!e.sync;if(e.username?t.open(i,n,o,e.username,e.password):t.open(i,n,o),enyo.mixin(t,e.xhrFields),e.callback&&this.makeReadyStateHandler(t,e.callback),e.headers=e.headers||{},"GET"!==i&&enyo.platform.ios&&enyo.platform.ios>=6&&null!==e.headers["cache-control"]&&(e.headers["cache-control"]=e.headers["cache-control"]||"no-cache"),t.setRequestHeader)for(var r in e.headers)e.headers[r]&&t.setRequestHeader(r,e.headers[r]);return"function"==typeof t.overrideMimeType&&e.mimeType&&t.overrideMimeType(e.mimeType),t.send(e.body||null),!o&&e.callback&&t.onreadystatechange(t),t},cancel:function(e){e.onload&&(e.onload=null),e.onreadystatechange&&(e.onreadystatechange=null),e.abort&&e.abort()},makeReadyStateHandler:function(e,t){window.XDomainRequest&&e instanceof window.XDomainRequest&&(e.onload=function(){var n;"string"==typeof e.responseText&&(n=e.responseText),t.apply(null,[n,e])}),e.onreadystatechange=function(){if(4==e.readyState){var n;"string"==typeof e.responseText&&(n=e.responseText),t.apply(null,[n,e])}}},inOrigin:function(e){var t=document.createElement("a"),n=!1;return t.href=e,(":"===t.protocol||t.protocol===window.location.protocol&&t.hostname===window.location.hostname&&t.port===(window.location.port||("https:"===window.location.protocol?"443":"80")))&&(n=!0),n},simplifyFileURL:function(e){var t=document.createElement("a");return t.href=e,"file:"===t.protocol||":"===t.protocol&&"file:"===window.location.protocol?t.protocol+"//"+t.host+t.pathname:":"===t.protocol&&"x-wmapp0:"===window.location.protocol?window.location.protocol+"//"+window.location.pathname.split("/")[0]+"/"+t.host+t.pathname:e},getXMLHttpRequest:function(e){try{if(10>enyo.platform.ie&&window.XDomainRequest&&!e.headers&&!this.inOrigin(e.url)&&!/^file:\/\//.test(window.location.href))return new window.XDomainRequest}catch(t){}try{return new XMLHttpRequest}catch(t){}return null}};

// formdata.js
(function(t){function e(){this.fake=!0,this._fields=[],this.boundary="--------------------------";for(var t=0;24>t;t++)this.boundary+=Math.floor(10*Math.random()).toString(16)}function n(t,e){if(this.name=e.name,this.type=e.type||"application/octet-stream",!enyo.isArray(t))throw Error("enyo.Blob only handles Arrays of Strings");if(t.length>0&&"string"!=typeof t[0])throw Error("enyo.Blob only handles Arrays of Strings");this._bufs=t}if(t.FormData)try{return new t.FormData,new t.Blob,enyo.FormData=t.FormData,enyo.Blob=t.Blob,void 0}catch(i){}e.prototype.getContentType=function(){return"multipart/form-data; boundary="+this.boundary},e.prototype.append=function(t,e,n){this._fields.push([t,e,n])},e.prototype.toString=function(){var t=this.boundary,e="";return enyo.forEach(this._fields,function(n){if(e+="--"+t+"\r\n",n[2]||n[1].name){var i=n[1],o=n[2]||i.name;e+='Content-Disposition: form-data; name="'+n[0]+'"; filename="'+o+'"\r\n',e+="Content-Type: "+i.type+"\r\n\r\n",e+=i.getAsBinary()+"\r\n"}else e+='Content-Disposition: form-data; name="'+n[0]+'";\r\n\r\n',e+=n[1]+"\r\n"}),e+="--"+t+"--"},enyo.FormData=e,n.prototype.getAsBinary=function(){var t="",e=t.concat.apply(t,this._bufs);return e},enyo.Blob=n})(window);

// AjaxProperties.js
enyo.AjaxProperties={cacheBust:!0,url:"",method:"GET",handleAs:"json",contentType:"application/x-www-form-urlencoded",sync:!1,headers:null,postBody:"",username:"",password:"",xhrFields:null,mimeType:null};

// Ajax.js
enyo.kind({name:"enyo.Ajax",kind:enyo.Async,published:enyo.AjaxProperties,constructor:function(e){enyo.mixin(this,e),this.inherited(arguments)},go:function(e){return this.startTimer(),this.request(e),this},request:function(e){var t=this.url.split("?"),n=t.shift()||"",i=t.length?t.join("?").split("&"):[],o=null;enyo.isString(e)?o=e:e&&(o=enyo.Ajax.objectToQuery(e)),o&&(i.push(o),o=null),this.cacheBust&&i.push(Math.random());var r,s=i.length?[n,i.join("&")].join("?"):n,a={};"GET"!=this.method&&(r=this.postBody,"POST"===this.method&&r instanceof enyo.FormData?r.fake&&(a["Content-Type"]=r.getContentType(),r=""+r):(a["Content-Type"]=this.contentType,r instanceof Object&&(r=null!==this.contentType.match(/^application\/json(;.*)?$/)?JSON.stringify(r):"application/x-www-form-urlencoded"===this.contentType?enyo.Ajax.objectToQuery(r):""+r))),enyo.mixin(a,this.headers),0===enyo.keys(a).length&&(a=void 0);try{this.xhr=enyo.xhr.request({url:s,method:this.method,callback:this.bindSafely("receive"),body:r,headers:a,sync:window.PalmSystem?!1:this.sync,username:this.username,password:this.password,xhrFields:this.xhrFields,mimeType:this.mimeType})}catch(c){this.fail(c)}},receive:function(e,t){if(!this.failed&&!this.destroyed){var n;n="string"==typeof t.responseText?t.responseText:t.responseBody,this.xhrResponse={status:t.status,headers:enyo.Ajax.parseResponseHeaders(t),body:n},this.isFailure(t)?this.fail(t.status):this.respond(this.xhrToResponse(t))}},fail:function(){this.xhr&&(enyo.xhr.cancel(this.xhr),this.xhr=null),this.inherited(arguments)},xhrToResponse:function(e){return e?this[(this.handleAs||"text")+"Handler"](e):void 0},isFailure:function(e){try{var t="";return"string"==typeof e.responseText&&(t=e.responseText),0===e.status&&""===t?!0:0!==e.status&&(200>e.status||e.status>=300)}catch(n){return!0}},xmlHandler:function(e){return e.responseXML},textHandler:function(e){return e.responseText},jsonHandler:function(e){var t=e.responseText;try{return t&&enyo.json.parse(t)}catch(n){return enyo.warn("Ajax request set to handleAs JSON but data was not in JSON format"),t}},statics:{objectToQuery:function(e){var t=encodeURIComponent,n=[],i={};for(var o in e){var r=e[o];if(r!=i[o]){var s=t(o)+"=";if(enyo.isArray(r))for(var a=0;r.length>a;a++)n.push(s+t(r[a]));else n.push(s+t(r))}}return n.join("&")},parseResponseHeaders:function(e){var t={},n=[];e.getAllResponseHeaders&&(n=e.getAllResponseHeaders().split(/\r?\n/));for(var i=0;n.length>i;i++){var o=n[i],r=o.indexOf(": ");if(r>0){var s=o.substring(0,r).toLowerCase(),a=o.substring(r+2);t[s]=a}}return t}}});

// Jsonp.js
enyo.kind({name:"enyo.JsonpRequest",kind:enyo.Async,published:{url:"",charset:null,callbackName:"callback",cacheBust:!0},statics:{nextCallbackID:0},addScriptElement:function(){var e=document.createElement("script");e.src=this.src,e.async="async",this.charset&&(e.charset=this.charset),e.onerror=this.bindSafely(function(){this.fail(400)});var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t),this.scriptTag=e},removeScriptElement:function(){var e=this.scriptTag;this.scriptTag=null,e.onerror=null,e.parentNode&&e.parentNode.removeChild(e)},constructor:function(e){enyo.mixin(this,e),this.inherited(arguments)},go:function(e){return this.startTimer(),this.jsonp(e),this},jsonp:function(e){var t="enyo_jsonp_callback_"+enyo.JsonpRequest.nextCallbackID++;this.src=this.buildUrl(e,t),this.addScriptElement(),window[t]=this.bindSafely(this.respond);var n=this.bindSafely(function(){this.removeScriptElement(),window[t]=null});this.response(n),this.error(n)},buildUrl:function(e,t){var n=this.url.split("?"),i=n.shift()||"",o=n.join("?").split("&"),r=this.bodyArgsFromParams(e,t);return o.push(r),this.cacheBust&&o.push(Math.random()),[i,o.join("&")].join("?")},bodyArgsFromParams:function(e,t){if(enyo.isString(e))return e.replace("=?","="+t);var n=enyo.mixin({},e);return n[this.callbackName]=t,enyo.Ajax.objectToQuery(n)}});

// WebService.js
enyo.kind({name:"enyo._AjaxComponent",kind:enyo.Component,published:enyo.AjaxProperties}),enyo.kind({name:"enyo.WebService",kind:enyo._AjaxComponent,published:{jsonp:!1,callbackName:"callback",charset:null,timeout:0},events:{onResponse:"",onError:""},constructor:function(){this.inherited(arguments)},send:function(e,t){return this.jsonp?this.sendJsonp(e,t):this.sendAjax(e,t)},sendJsonp:function(e,t){var n=new enyo.JsonpRequest;for(var i in{url:1,callbackName:1,charset:1,timeout:1})n[i]=this[i];return enyo.mixin(n,t),this.sendAsync(n,e)},sendAjax:function(e,t){var n=new enyo.Ajax(t);for(var i in enyo.AjaxProperties)n[i]=this[i];return n.timeout=this.timeout,enyo.mixin(n,t),this.sendAsync(n,e)},sendAsync:function(e,t){return e.go(t).response(this,"response").error(this,"error")},response:function(e,t){this.doResponse({ajax:e,data:t})},error:function(e,t){this.doError({ajax:e,data:t})}});

// dom.js
enyo.requiresWindow=function(e){e()},enyo.dom={byId:function(e,t){return"string"==typeof e?(t||document).getElementById(e):e},escape:function(e){return null!==e?(e+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):""},getBounds:function(e){return e?{left:e.offsetLeft,top:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}:null},getComputedStyle:function(e){if(9>enyo.platform.ie&&e&&e.currentStyle){var t=enyo.clone(e.currentStyle);return t.getPropertyValue=e.currentStyle.getAttribute,t.setProperty=e.currentStyle.setExpression,t.removeProperty=e.currentStyle.removeAttribute,t}return window.getComputedStyle&&e&&window.getComputedStyle(e,null)},getComputedStyleValue:function(e,t,n){var i=n||this.getComputedStyle(e);return i?i.getPropertyValue(t):null},getFirstElementByTagName:function(e){var t=document.getElementsByTagName(e);return t&&t[0]},applyBodyFit:function(){var e=this.getFirstElementByTagName("html");e&&(e.className+=" enyo-document-fit");var t=this.getFirstElementByTagName("body");t&&(t.className+=" enyo-body-fit"),enyo.bodyIsFitting=!0},getWindowWidth:function(){return window.innerWidth?window.innerWidth:document.body&&document.body.offsetWidth?document.body.offsetWidth:"CSS1Compat"==document.compatMode&&document.documentElement&&document.documentElement.offsetWidth?document.documentElement.offsetWidth:320},getWindowHeight:function(){return window.innerHeight?window.innerHeight:document.body&&document.body.offsetHeight?document.body.offsetHeight:"CSS1Compat"==document.compatMode&&document.documentElement&&document.documentElement.offsetHeight?document.documentElement.offsetHeight:480},compareDocumentPosition:function(e,t){return e.compareDocumentPosition?e.compareDocumentPosition(t):e.contains?(e!=t&&e.contains(t)&&16)+(e!=t&&t.contains(e)&&8)+(e.sourceIndex>=0&&t.sourceIndex>=0?(e.sourceIndex<t.sourceIndex&&4)+(e.sourceIndex>t.sourceIndex&&2):1)+0:0},_ieCssToPixelValue:function(e,t){var n=t,i=e.style,o=i.left,r=e.runtimeStyle&&e.runtimeStyle.left;return r&&(e.runtimeStyle.left=e.currentStyle.left),i.left=n,n=i.pixelLeft,i.left=o,r&&(i.runtimeStyle.left=r),n},_pxMatch:/px/i,getComputedBoxValue:function(e,t,n,i){var o=i||this.getComputedStyle(e);if(o)return parseInt(o.getPropertyValue(t+"-"+n),0);if(e&&e.currentStyle){var r=e.currentStyle[t+enyo.cap(n)];return r.match(this._pxMatch)||(r=this._ieCssToPixelValue(e,r)),parseInt(r,0)}return 0},calcBoxExtents:function(e,t){var n=this.getComputedStyle(e);return{top:this.getComputedBoxValue(e,t,"top",n),right:this.getComputedBoxValue(e,t,"right",n),bottom:this.getComputedBoxValue(e,t,"bottom",n),left:this.getComputedBoxValue(e,t,"left",n)}},calcPaddingExtents:function(e){return this.calcBoxExtents(e,"padding")},calcMarginExtents:function(e){return this.calcBoxExtents(e,"margin")},calcNodePosition:function(e,t){var n=0,i=0,o=e,r=o.offsetWidth,s=o.offsetHeight,a=enyo.dom.getStyleTransformProp(),c=/translateX\((-?\d+)px\)/i,u=/translateY\((-?\d+)px\)/i,h=0,l=0,d=0,f=0,p=0,y=0;if(t?(d=t.offsetHeight,f=t.offsetWidth):(d=document.body.parentNode.offsetHeight>this.getWindowHeight()?this.getWindowHeight()-document.body.parentNode.scrollTop:document.body.parentNode.offsetHeight,f=document.body.parentNode.offsetWidth>this.getWindowWidth()?this.getWindowWidth()-document.body.parentNode.scrollLeft:document.body.parentNode.offsetWidth),o.offsetParent)do t&&8&this.compareDocumentPosition(t,o.offsetParent)&&(p=t.offsetLeft,y=t.offsetTop),i+=o.offsetLeft-(o.offsetParent?o.offsetParent.scrollLeft:0)-p,a&&c.test(o.style[a])&&(i+=parseInt(o.style[a].replace(c,"$1"),10)),n+=o.offsetTop-(o.offsetParent?o.offsetParent.scrollTop:0)-y,a&&u.test(o.style[a])&&(n+=parseInt(o.style[a].replace(u,"$1"),10)),o!==e&&(o.currentStyle?(h=parseInt(o.currentStyle.borderLeftWidth,10),l=parseInt(o.currentStyle.borderTopWidth,10)):window.getComputedStyle?(h=parseInt(window.getComputedStyle(o,"").getPropertyValue("border-left-width"),10),l=parseInt(window.getComputedStyle(o,"").getPropertyValue("border-top-width"),10)):(h=parseInt(o.style.borderLeftWidth,10),l=parseInt(o.style.borderTopWidth,10)),h&&(i+=h),l&&(n+=l));while((o=o.offsetParent)&&(!t||16&this.compareDocumentPosition(t,o)));return{top:n,left:i,bottom:d-n-s,right:f-i-r,height:s,width:r}},setInnerHtml:function(e,t){enyo.execUnsafeLocalFunction(function(){e.innerHTML=t})}};

// transform.js
(function(){enyo.dom.calcCanAccelerate=function(){if(2>=enyo.platform.android)return!1;for(var e,t=["perspective","WebkitPerspective","MozPerspective","msPerspective","OPerspective"],n=0;e=t[n];n++)if(document.body.style[e]!==void 0)return!0;return!1};var e=["transform","-webkit-transform","-moz-transform","-ms-transform","-o-transform"],t=["transform","webkitTransform","MozTransform","msTransform","OTransform"];enyo.dom.getCssTransformProp=function(){if(this._cssTransformProp)return this._cssTransformProp;var n=enyo.indexOf(this.getStyleTransformProp(),t);return this._cssTransformProp=e[n],this._cssTransformProp},enyo.dom.getStyleTransformProp=function(){if(this._styleTransformProp||!document.body)return this._styleTransformProp;for(var e,n=0;e=t[n];n++)if(document.body.style[e]!==void 0)return this._styleTransformProp=e,this._styleTransformProp},enyo.dom.domTransformsToCss=function(e){var t,n,o="";for(t in e)n=e[t],null!==n&&void 0!==n&&""!==n&&(o+=t+"("+n+") ");return o},enyo.dom.transformsToDom=function(e){var t=this.domTransformsToCss(e.domTransforms),n=e.hasNode()?e.node.style:null,o=e.domStyles,i=this.getStyleTransformProp(),r=this.getCssTransformProp();i&&r&&(o[r]=t,n?n[i]=t:e.domStylesChanged())},enyo.dom.canTransform=function(){return Boolean(this.getStyleTransformProp())},enyo.dom.canAccelerate=function(){return void 0!==this.accelerando?this.accelerando:document.body&&(this.accelerando=this.calcCanAccelerate())},enyo.dom.transform=function(e,t){var n=e.domTransforms=e.domTransforms||{};enyo.mixin(n,t),this.transformsToDom(e)},enyo.dom.transformValue=function(e,t,n){var o=e.domTransforms=e.domTransforms||{};o[t]=n,this.transformsToDom(e)},enyo.dom.accelerate=function(e,t){var n="auto"==t?this.canAccelerate():t;this.transformValue(e,"translateZ",n?0:null)}})();

// Control.js
enyo.kind({name:"enyo.Control",kind:enyo.UiComponent,published:{tag:"div",attributes:null,classes:"",style:"",content:"",showing:!0,allowHtml:!1,src:"",canGenerate:!0,fit:null,isContainer:!1},handlers:{ontap:"tap"},mixins:["enyo.ControllerSupport"],_is_view:!0,defaultKind:"Control",controlClasses:"",node:null,generated:!1,create:function(){this.initStyles(),this.inherited(arguments),this.showingChanged(),this.addClass(this.kindClasses),this.addClass(this.classes),this.initProps(["id","content","src"])},destroy:function(){this.removeNodeFromDom(),enyo.Control.unregisterDomEvents(this.id),this.inherited(arguments)},importProps:function(){this.inherited(arguments),this.attributes=enyo.mixin(enyo.clone(this.kindAttributes),this.attributes)},initProps:function(t){for(var e,n,i=0;e=t[i];i++)this[e]&&(n=e+"Changed",this[n]&&this[n]())},dispatchEvent:function(t,e){return this.strictlyInternalEvents[t]&&this.isInternalEvent(e)?!0:this.inherited(arguments)},classesChanged:function(t){this.removeClass(t),this.addClass(this.classes)},addChild:function(t){t.addClass(this.controlClasses),this.inherited(arguments)},removeChild:function(t){this.inherited(arguments),t.removeClass(this.controlClasses)},strictlyInternalEvents:{onenter:1,onleave:1},isInternalEvent:function(t){var e=enyo.dispatcher.findDispatchTarget(t.relatedTarget);return e&&e.isDescendantOf(this)},hasNode:function(){return this.generated&&(this.node||this.findNodeById())},addContent:function(t){this.setContent(this.get("content")+t)},getAttribute:function(t){return this.hasNode()?this.node.getAttribute(t):this.attributes[t]},setAttribute:function(t,e){this.attributes[t]=e,this.hasNode()&&this.attributeToNode(t,e),this.invalidateTags()},getNodeProperty:function(t,e){return this.hasNode()?this.node[t]:e},setNodeProperty:function(t,e){this.hasNode()&&(this.node[t]=e)},setClassAttribute:function(t){this.setAttribute("class",t)},getClassAttribute:function(){return this.attributes["class"]||""},hasClass:function(t){return t&&(" "+this.getClassAttribute()+" ").indexOf(" "+t+" ")>=0},addClass:function(t){if(t&&!this.hasClass(t)){var e=this.getClassAttribute();this.setClassAttribute(e+(e?" ":"")+t)}},removeClass:function(t){if(t&&this.hasClass(t)){var e=this.getClassAttribute();e=(" "+e+" ").replace(" "+t+" "," ").slice(1,-1),this.setClassAttribute(e)}},addRemoveClass:function(t,e){this[e?"addClass":"removeClass"](t)},initStyles:function(){this.domStyles=this.domStyles||{},enyo.Control.cssTextToDomStyles(this.kindStyle,this.domStyles),this.domCssText=enyo.Control.domStylesToCssText(this.domStyles)},styleChanged:function(){this.invalidateTags(),this.renderStyles()},applyStyle:function(t,e){this.domStyles[t]=e,this.domStylesChanged()},addStyles:function(t){enyo.Control.cssTextToDomStyles(t,this.domStyles),this.domStylesChanged()},getComputedStyleValue:function(t,e){return this.hasNode()?enyo.dom.getComputedStyleValue(this.node,t):e},domStylesChanged:function(){this.domCssText=enyo.Control.domStylesToCssText(this.domStyles),this.invalidateTags(),this.renderStyles()},stylesToNode:function(){this.node.style.cssText=this.style+(";"==this.style[this.style.length-1]?" ":"; ")+this.domCssText},setupBodyFitting:function(){enyo.dom.applyBodyFit(),this.addClass("enyo-fit enyo-clip")},setupOverflowScrolling:function(){enyo.platform.android||enyo.platform.androidChrome||enyo.platform.blackberry||(document.getElementsByTagName("body")[0].className+=" webkitOverflowScrolling")},render:function(){return this.parent&&(this.parent.beforeChildRender(this),!this.parent.generated)?this:(this.hasNode()||this.renderNode(),this.hasNode()&&(this.renderDom(),this.generated&&this.rendered()),this)},renderInto:function(t){this.teardownRender();var e=enyo.dom.byId(t),n=enyo.exists(this.fit)&&this.fit===!1;return e!=document.body||n?this.fit&&this.addClass("enyo-fit enyo-clip"):this.setupBodyFitting(),this.addClass("enyo-no-touch-action"),this.setupOverflowScrolling(),enyo.dom.setInnerHtml(e,this.generateHtml()),this.generated&&this.rendered(),this},write:function(){return this.fit&&this.setupBodyFitting(),this.addClass("enyo-no-touch-action"),this.setupOverflowScrolling(),document.write(this.generateHtml()),this.generated&&this.rendered(),this},rendered:function(){this.reflow();for(var t,e=0;t=this.children[e];e++)t.generated&&t.rendered()},show:function(){this.setShowing(!0)},hide:function(){this.setShowing(!1)},focus:function(){this.hasNode()&&this.node.focus()},blur:function(){this.hasNode()&&this.node.blur()},hasFocus:function(){return this.hasNode()?document.activeElement===this.node:void 0},getBounds:function(){var t=this.node||this.hasNode(),e=enyo.dom.getBounds(t);return e||{left:void 0,top:void 0,width:void 0,height:void 0}},setBounds:function(t,e){for(var n,i,o=this.domStyles,r=e||"px",s=["width","height","left","top","right","bottom"],a=0;i=s[a];a++)n=t[i],(n||0===n)&&(o[i]=n+(enyo.isString(n)?"":r));this.domStylesChanged()},getAbsoluteBounds:function(){for(var t=0,e=0,n=this.hasNode(),i=n?n.offsetWidth:0,o=n?n.offsetHeight:0;n;)t+=n.offsetLeft-(n.offsetParent?n.offsetParent.scrollLeft:0),e+=n.offsetTop-(n.offsetParent?n.offsetParent.scrollTop:0),n=n.offsetParent;return{top:e,left:t,bottom:document.body.offsetHeight-e-o,right:document.body.offsetWidth-t-i,height:o,width:i}},findNodeById:function(){return this.id&&(this.node=enyo.dom.byId(this.id))},idChanged:function(t){t&&enyo.Control.unregisterDomEvents(t),this.setAttribute("id",this.id),this.id&&enyo.Control.registerDomEvents(this.id,this)},contentChanged:function(){this.hasNode()&&this.renderContent()},getSrc:function(){return this.getAttribute("src")},srcChanged:function(){this.src&&this.setAttribute("src",enyo.path.rewrite(this.src))},attributesChanged:function(){this.invalidateTags(),this.renderAttributes()},generateHtml:function(){if(this.canGenerate===!1)return"";var t=this.generateInnerHtml(),e=this.generateOuterHtml(t);return this.generated=!0,e},generateInnerHtml:function(){return this.flow(),this.children.length?this.generateChildHtml():this.allowHtml?this.get("content"):enyo.Control.escapeHtml(this.get("content"))},generateChildHtml:function(){for(var t,e="",n=0;t=this.children[n];n++){var i=t.generateHtml();e+=i}return e},generateOuterHtml:function(t){return this.tag?(this.tagsValid||this.prepareTags(),this._openTag+t+this._closeTag):t},invalidateTags:function(){this.tagsValid=!1},prepareTags:function(){var t=this.domCssText+this.style;this._openTag="<"+this.tag+(t?' style="'+t+'"':"")+enyo.Control.attributesToHtml(this.attributes),enyo.Control.selfClosing[this.tag]?(this._openTag+="/>",this._closeTag=""):(this._openTag+=">",this._closeTag="</"+this.tag+">"),this.tagsValid=!0},attributeToNode:function(t,e){null===e||e===!1||""===e?this.node.removeAttribute(t):this.node.setAttribute(t,e)},attributesToNode:function(){for(var t in this.attributes)this.attributeToNode(t,this.attributes[t])},getParentNode:function(){return this.parentNode||this.parent&&(this.parent.hasNode()||this.parent.getParentNode())},addNodeToParent:function(){if(this.node){var t=this.getParentNode();t&&(void 0!==this.addBefore?this.insertNodeInParent(t,this.addBefore&&this.addBefore.hasNode()):this.appendNodeToParent(t))}},appendNodeToParent:function(t){t.appendChild(this.node)},insertNodeInParent:function(t,e){t.insertBefore(this.node,e||t.firstChild)},removeNodeFromDom:function(){this.hasNode()&&this.node.parentNode&&this.node.parentNode.removeChild(this.node)},teardownRender:function(){this.generated&&this.teardownChildren(),this.node=null,this.generated=!1},teardownChildren:function(){for(var t,e=0;t=this.children[e];e++)t.teardownRender()},renderNode:function(){this.teardownRender(),this.node=document.createElement(this.tag),this.addNodeToParent(),this.generated=!0},renderDom:function(){this.renderAttributes(),this.renderStyles(),this.renderContent()},renderContent:function(){this.generated&&this.teardownChildren(),enyo.dom.setInnerHtml(this.node,this.generateInnerHtml())},renderStyles:function(){this.hasNode()&&this.stylesToNode()},renderAttributes:function(){this.hasNode()&&this.attributesToNode()},beforeChildRender:function(){this.generated&&this.flow()},syncDisplayToShowing:function(){var t=this.domStyles;this.showing?"none"==t.display&&this.applyStyle("display",this._displayStyle||""):(this._displayStyle="none"==t.display?"":t.display,this.applyStyle("display","none"))},showingChanged:function(){this.syncDisplayToShowing()},getShowing:function(){return this.showing="none"!=this.domStyles.display,this.showing},getAbsoluteShowing:function(){var t=this.getBounds();return this.getShowing()===!1||0===t.height&&0===t.width?!1:this.parent&&this.parent.getAbsoluteShowing?this.parent.getAbsoluteShowing():!0},fitChanged:function(){this.parent.reflow()},statics:{escapeHtml:function(t){return null!=t?(t+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):""},registerDomEvents:function(t,e){enyo.$[t]=e},unregisterDomEvents:function(t){enyo.$[t]=null},selfClosing:{img:1,hr:1,br:1,area:1,base:1,basefont:1,input:1,link:1,meta:1,command:1,embed:1,keygen:1,wbr:1,param:1,source:1,track:1,col:1},cssTextToDomStyles:function(t,e){if(t)for(var n,i,o,r,s=t.replace(/; /g,";").split(";"),a=0;r=s[a];a++)n=r.split(":"),i=n.shift(),o=n.join(":"),e[i]=o},domStylesToCssText:function(t){var e,n,i="";for(e in t)n=t[e],null!==n&&void 0!==n&&""!==n&&(i+=e+":"+n+";");return i},stylesToHtml:function(t){var e=enyo.Control.domStylesToCssText(t);return e?' style="'+e+'"':""},escapeAttribute:function(t){return enyo.isString(t)?(t+"").replace(/&/g,"&amp;").replace(/\"/g,"&quot;"):t},attributesToHtml:function(t){var e,n,i="";for(e in t)n=t[e],null!==n&&n!==!1&&""!==n&&(i+=" "+e+'="'+enyo.Control.escapeAttribute(n)+'"');return i}}}),enyo.defaultCtor=enyo.Control,enyo.Control.subclass=function(t,e){var n=t.prototype;if(n.classes){var i=n.kindClasses;n.kindClasses=(i?i+" ":"")+n.classes,n.classes=""}if(n.style){var o=n.kindStyle;n.kindStyle=(o?o+";":"")+n.style,n.style=""}if(e.attributes){var r=n.kindAttributes;n.kindAttributes=enyo.mixin(enyo.clone(r),n.attributes),n.attributes=null}},enyo.View=enyo.Control;

// platform.js
enyo.platform={touch:Boolean("ontouchstart"in window||window.navigator.msMaxTouchPoints),gesture:Boolean("ongesturestart"in window||window.navigator.msMaxTouchPoints)},function(){for(var t,e,n,i=navigator.userAgent,o=enyo.platform,r=[{platform:"androidChrome",regex:/Android .* Chrome\/(\d+)[.\d]+/},{platform:"android",regex:/Android (\d+)/},{platform:"android",regex:/Silk\/1./,forceVersion:2,extra:{silk:1}},{platform:"android",regex:/Silk\/2./,forceVersion:4,extra:{silk:2}},{platform:"windowsPhone",regex:/Windows Phone (?:OS )?(\d+)[.\d]+/},{platform:"ie",regex:/MSIE (\d+)/},{platform:"ios",regex:/iP(?:hone|ad;(?: U;)? CPU) OS (\d+)/},{platform:"webos",regex:/(?:web|hpw)OS\/(\d+)/},{platform:"safari",regex:/Version\/(\d+)[.\d]+\s+Safari/},{platform:"chrome",regex:/Chrome\/(\d+)[.\d]+/},{platform:"androidFirefox",regex:/Android;.*Firefox\/(\d+)/},{platform:"firefoxOS",regex:/Mobile;.*Firefox\/(\d+)/},{platform:"firefox",regex:/Firefox\/(\d+)/},{platform:"blackberry",regex:/BB1\d;.*Version\/(\d+\.\d+)/}],s=0;t=r[s];s++)if(e=t.regex.exec(i)){n=t.forceVersion?t.forceVersion:Number(e[1]),o[t.platform]=n,t.extra&&enyo.mixin(o,t.extra);break}enyo.dumbConsole=Boolean(o.android||o.ios||o.webos)}();

// animation.js
(function(){for(var t,e,n,i=Math.round(1e3/60),o=["webkit","moz","ms","o",""],r="requestAnimationFrame",s="cancel"+enyo.cap(r),a=function(t){return window.setTimeout(t,i)},c=function(t){return window.clearTimeout(t)},h=0,u=o.length;((t=o[h])||u>h)&&!(enyo.platform.ios>=6);h++)if(e=t?t+enyo.cap(s):s,n=t?t+enyo.cap(r):r,window[e]){c=window[e],a=window[n],"webkit"==t&&c(a(enyo.nop));break}enyo.requestAnimationFrame=function(t,e){return a(t,e)},enyo.cancelRequestAnimationFrame=function(t){return c(t)}})(),enyo.easing={cubicIn:function(t){return Math.pow(t,3)},cubicOut:function(t){return Math.pow(t-1,3)+1},expoOut:function(t){return 1==t?1:-1*Math.pow(2,-10*t)+1},quadInOut:function(t){return t=2*t,1>t?Math.pow(t,2)/2:-1*(--t*(t-2)-1)/2},linear:function(t){return t}},enyo.easedLerp=function(t,e,n,i){var o=(enyo.now()-t)/e;return i?o>=1?0:1-n(1-o):o>=1?1:n(o)};

// phonegap.js
(function(){if(window.cordova||window.PhoneGap)for(var t,e=["deviceready","pause","resume","online","offline","backbutton","batterycritical","batterylow","batterystatus","menubutton","searchbutton","startcallbutton","endcallbutton","volumedownbutton","volumeupbutton"],n=0;t=e[n];n++)document.addEventListener(t,enyo.bind(enyo.Signals,"send","on"+t),!1)})();

// dispatcher.js
enyo.$={},enyo.dispatcher={events:["mousedown","mouseup","mouseover","mouseout","mousemove","mousewheel","click","dblclick","change","keydown","keyup","keypress","input"],windowEvents:["resize","load","unload","message","hashchange"],cssEvents:["webkitTransitionEnd","transitionend"],features:[],connect:function(){var t,e,n=enyo.dispatcher;for(t=0;e=n.events[t];t++)n.listen(document,e);for(t=0;e=n.cssEvents[t];t++)n.listen(document,e);for(t=0;e=n.windowEvents[t];t++)"unload"===e&&"object"==typeof window.chrome&&window.chrome.app||n.listen(window,e);for(t=0;e=n.cssEvents[t];t++)n.listen(document,e)},listen:function(t,e,n){var o=enyo.dispatch;this.listen=t.addEventListener?function(t,e,n){t.addEventListener(e,n||o,!1)}:function(t,e,n){t.attachEvent("on"+e,function(t){return t.target=t.srcElement,t.preventDefault||(t.preventDefault=enyo.iePreventDefault),(n||o)(t)})},this.listen(t,e,n)},stopListening:function(t,e,n){var o=enyo.dispatch;this.stopListening=t.addEventListener?function(t,e,n){t.removeEventListener(e,n||o,!1)}:function(t,e,n){t.detachEvent("on"+e,n||o)},this.stopListening(t,e,n)},dispatch:function(t){var e=this.findDispatchTarget(t.target)||this.findDefaultTarget(t);t.dispatchTarget=e;for(var n,o=0;n=this.features[o];o++)if(n.call(this,t)===!0)return;e&&!t.preventDispatch&&this.dispatchBubble(t,e)},findDispatchTarget:function(t){var e,n=t;try{for(;n;){if(e=enyo.$[n.id]){e.eventNode=n;break}n=n.parentNode}}catch(o){enyo.log(o,n)}return e},findDefaultTarget:function(){return enyo.master},dispatchBubble:function(t,e){return e.bubble("on"+t.type,t,e)}},enyo.iePreventDefault=function(){try{this.returnValue=!1}catch(t){}},enyo.dispatch=function(t){return enyo.dispatcher.dispatch(t)},enyo.bubble=function(t){var e=t||window.event;e&&(e.target||(e.target=e.srcElement),enyo.dispatch(e))},enyo.bubbler="enyo.bubble(arguments[0])",function(){var t=function(){enyo.bubble(arguments[0])};enyo.makeBubble=function(){var e=Array.prototype.slice.call(arguments,0),n=e.shift();"object"==typeof n&&"function"==typeof n.hasNode&&enyo.forEach(e,function(e){this.hasNode()&&enyo.dispatcher.listen(this.node,e,t)},n)},enyo.unmakeBubble=function(){var e=Array.prototype.slice.call(arguments,0),n=e.shift();"object"==typeof n&&"function"==typeof n.hasNode&&enyo.forEach(e,function(e){this.hasNode()&&enyo.dispatcher.stopListening(this.node,e,t)},n)}}(),enyo.requiresWindow(enyo.dispatcher.connect),enyo.dispatcher.features.push(function(t){if("click"===t.type&&0===t.clientX&&0===t.clientY){var e=enyo.clone(t);e.type="tap",enyo.dispatch(e)}});

// preview.js
(function(){var t="previewDomEvent",e={feature:function(t){e.dispatch(t,t.dispatchTarget)},dispatch:function(e,n){for(var i,o=this.buildLineage(n),r=0;i=o[r];r++)if(i[t]&&i[t](e)===!0)return e.preventDispatch=!0,void 0},buildLineage:function(t){for(var e=[],n=t;n;)e.unshift(n),n=n.parent;return e}};enyo.dispatcher.features.push(e.feature)})();

// modal.js
enyo.dispatcher.features.push(function(t){var e=t.dispatchTarget,n=this.captureTarget&&!this.noCaptureEvents[t.type],i=n&&!(e&&e.isDescendantOf&&e.isDescendantOf(this.captureTarget));if(i){var o=t.captureTarget=this.captureTarget,r=this.autoForwardEvents[t.type]||this.forwardEvents;this.dispatchBubble(t,o),r||(t.preventDispatch=!0)}}),enyo.mixin(enyo.dispatcher,{noCaptureEvents:{load:1,unload:1,error:1},autoForwardEvents:{leave:1,resize:1},captures:[],capture:function(t,e){var n={target:t,forward:e};this.captures.push(n),this.setCaptureInfo(n)},release:function(){this.captures.pop(),this.setCaptureInfo(this.captures[this.captures.length-1])},setCaptureInfo:function(t){this.captureTarget=t&&t.target,this.forwardEvents=t&&t.forward}});

// gesture.js
enyo.gesture={eventProps:["target","relatedTarget","clientX","clientY","pageX","pageY","screenX","screenY","altKey","ctrlKey","metaKey","shiftKey","detail","identifier","dispatchTarget","which","srcEvent"],makeEvent:function(t,e){for(var n,i={type:t},o=0;n=this.eventProps[o];o++)i[n]=e[n];if(i.srcEvent=i.srcEvent||e,i.preventDefault=this.preventDefault,i.disablePrevention=this.disablePrevention,10>enyo.platform.ie){8==enyo.platform.ie&&i.target&&(i.pageX=i.clientX+i.target.scrollLeft,i.pageY=i.clientY+i.target.scrollTop);var r=window.event&&window.event.button;i.which=1&r?1:2&r?2:4&r?3:0}else(enyo.platform.webos||window.PalmSystem)&&0===i.which&&(i.which=1);return i},down:function(t){var e=this.makeEvent("down",t);enyo.dispatch(e),this.downEvent=e},move:function(t){var e=this.makeEvent("move",t);e.dx=e.dy=e.horizontal=e.vertical=0,e.which&&this.downEvent&&(e.dx=t.clientX-this.downEvent.clientX,e.dy=t.clientY-this.downEvent.clientY,e.horizontal=Math.abs(e.dx)>Math.abs(e.dy),e.vertical=!e.horizontal),enyo.dispatch(e)},up:function(t){var e=this.makeEvent("up",t),n=!1;e.preventTap=function(){n=!0},enyo.dispatch(e),!n&&this.downEvent&&1==this.downEvent.which&&this.sendTap(e),this.downEvent=null},over:function(t){enyo.dispatch(this.makeEvent("enter",t))},out:function(t){enyo.dispatch(this.makeEvent("leave",t))},sendTap:function(t){var e=this.findCommonAncestor(this.downEvent.target,t.target);if(e){var n=this.makeEvent("tap",t);n.target=e,enyo.dispatch(n)}},findCommonAncestor:function(t,e){for(var n=e;n;){if(this.isTargetDescendantOf(t,n))return n;n=n.parentNode}},isTargetDescendantOf:function(t,e){for(var n=t;n;){if(n==e)return!0;n=n.parentNode}}},enyo.gesture.preventDefault=function(){this.srcEvent&&this.srcEvent.preventDefault()},enyo.gesture.disablePrevention=function(){this.preventDefault=enyo.nop,this.srcEvent&&(this.srcEvent.preventDefault=enyo.nop)},enyo.dispatcher.features.push(function(t){return enyo.gesture.events[t.type]?enyo.gesture.events[t.type](t):void 0}),enyo.gesture.events={mousedown:function(t){enyo.gesture.down(t)},mouseup:function(t){enyo.gesture.up(t)},mousemove:function(t){enyo.gesture.move(t)},mouseover:function(t){enyo.gesture.over(t)},mouseout:function(t){enyo.gesture.out(t)}},enyo.requiresWindow(function(){document.addEventListener&&document.addEventListener("DOMMouseScroll",function(t){var e=enyo.clone(t);e.preventDefault=function(){t.preventDefault()},e.type="mousewheel";var n=e.VERTICAL_AXIS==e.axis?"wheelDeltaY":"wheelDeltaX";e[n]=-40*e.detail,enyo.dispatch(e)},!1)});

// drag.js
enyo.dispatcher.features.push(function(t){return enyo.gesture.drag[t.type]?enyo.gesture.drag[t.type](t):void 0}),enyo.gesture.drag={hysteresisSquared:16,holdPulseDelay:200,trackCount:5,minFlick:.1,minTrack:8,down:function(t){this.stopDragging(t),this.cancelHold(),this.target=t.target,this.startTracking(t),this.beginHold(t)},move:function(t){if(this.tracking){if(this.track(t),!t.which)return this.stopDragging(t),this.cancelHold(),this.tracking=!1,void 0;this.dragEvent?this.sendDrag(t):this.dy*this.dy+this.dx*this.dx>=this.hysteresisSquared&&(this.sendDragStart(t),this.cancelHold())}},up:function(t){this.endTracking(t),this.stopDragging(t),this.cancelHold()},leave:function(t){this.dragEvent&&this.sendDragOut(t)},stopDragging:function(t){if(this.dragEvent){this.sendDrop(t);var e=this.sendDragFinish(t);return this.dragEvent=null,e}},makeDragEvent:function(t,e,n,i){var o=Math.abs(this.dx),r=Math.abs(this.dy),s=o>r,a=.414>(s?r/o:o/r),c={type:t,dx:this.dx,dy:this.dy,ddx:this.dx-this.lastDx,ddy:this.dy-this.lastDy,xDirection:this.xDirection,yDirection:this.yDirection,pageX:n.pageX,pageY:n.pageY,clientX:n.clientX,clientY:n.clientY,horizontal:s,vertical:!s,lockable:a,target:e,dragInfo:i,ctrlKey:n.ctrlKey,altKey:n.altKey,metaKey:n.metaKey,shiftKey:n.shiftKey,srcEvent:n.srcEvent};return 8==enyo.platform.ie&&c.target&&(c.pageX=c.clientX+c.target.scrollLeft,c.pageY=c.clientY+c.target.scrollTop),c.preventDefault=enyo.gesture.preventDefault,c.disablePrevention=enyo.gesture.disablePrevention,c},sendDragStart:function(t){this.dragEvent=this.makeDragEvent("dragstart",this.target,t),enyo.dispatch(this.dragEvent)},sendDrag:function(t){var e=this.makeDragEvent("dragover",t.target,t,this.dragEvent.dragInfo);enyo.dispatch(e),e.type="drag",e.target=this.dragEvent.target,enyo.dispatch(e)},sendDragFinish:function(t){var e=this.makeDragEvent("dragfinish",this.dragEvent.target,t,this.dragEvent.dragInfo);e.preventTap=function(){t.preventTap&&t.preventTap()},enyo.dispatch(e)},sendDragOut:function(t){var e=this.makeDragEvent("dragout",t.target,t,this.dragEvent.dragInfo);enyo.dispatch(e)},sendDrop:function(t){var e=this.makeDragEvent("drop",t.target,t,this.dragEvent.dragInfo);e.preventTap=function(){t.preventTap&&t.preventTap()},enyo.dispatch(e)},startTracking:function(t){this.tracking=!0,this.px0=t.clientX,this.py0=t.clientY,this.flickInfo={startEvent:t,moves:[]},this.track(t)},track:function(t){this.lastDx=this.dx,this.lastDy=this.dy,this.dx=t.clientX-this.px0,this.dy=t.clientY-this.py0,this.xDirection=this.calcDirection(this.dx-this.lastDx,0),this.yDirection=this.calcDirection(this.dy-this.lastDy,0);var e=this.flickInfo;e.moves.push({x:t.clientX,y:t.clientY,t:enyo.now()}),e.moves.length>this.trackCount&&e.moves.shift()},endTracking:function(){this.tracking=!1;var t=this.flickInfo,e=t&&t.moves;if(e&&e.length>1){for(var n,i=e[e.length-1],o=enyo.now(),r=e.length-2,s=0,a=0,c=0,h=0,u=0,l=0,d=0;n=e[r];r--)s=o-n.t,a=(i.x-n.x)/s,c=(i.y-n.y)/s,l=l||(0>a?-1:a>0?1:0),d=d||(0>c?-1:c>0?1:0),(a*l>h*l||c*d>u*d)&&(h=a,u=c);var f=Math.sqrt(h*h+u*u);f>this.minFlick&&this.sendFlick(t.startEvent,h,u,f)}this.flickInfo=null},calcDirection:function(t,e){return t>0?1:0>t?-1:e},beginHold:function(t){this.holdStart=enyo.now(),this.holdJob=setInterval(enyo.bind(this,"sendHoldPulse",t),this.holdPulseDelay)},cancelHold:function(){clearInterval(this.holdJob),this.holdJob=null,this.sentHold&&(this.sentHold=!1,this.sendRelease(this.holdEvent))},sendHoldPulse:function(t){this.sentHold||(this.sentHold=!0,this.sendHold(t));var e=enyo.gesture.makeEvent("holdpulse",t);e.holdTime=enyo.now()-this.holdStart,enyo.dispatch(e)},sendHold:function(t){this.holdEvent=t;var e=enyo.gesture.makeEvent("hold",t);enyo.dispatch(e)},sendRelease:function(t){var e=enyo.gesture.makeEvent("release",t);enyo.dispatch(e)},sendFlick:function(t,e,n,i){var o=enyo.gesture.makeEvent("flick",t);o.xVelocity=e,o.yVelocity=n,o.velocity=i,enyo.dispatch(o)}};

// transition.js
enyo.dom.transition=enyo.platform.ios||enyo.platform.android||enyo.platform.chrome||enyo.platform.androidChrome||enyo.platform.safari?"-webkit-transition":enyo.platform.firefox||enyo.platform.firefoxOS||enyo.platform.androidFirefox?"-moz-transition":"transition";

// touch.js
enyo.requiresWindow(function(){var t=enyo.gesture,e=t.events;t.events.touchstart=function(e){t.events=n,t.events.touchstart(e)};var n={_touchCount:0,touchstart:function(e){this._touchCount+=e.changedTouches.length,this.excludedTarget=null;var n=this.makeEvent(e);t.down(n),n=this.makeEvent(e),this.overEvent=n,t.over(n)},touchmove:function(e){enyo.job.stop("resetGestureEvents");var n=t.drag.dragEvent;this.excludedTarget=n&&n.dragInfo&&n.dragInfo.node;var i=this.makeEvent(e);t.move(i),enyo.bodyIsFitting&&e.preventDefault(),this.overEvent&&this.overEvent.target!=i.target&&(this.overEvent.relatedTarget=i.target,i.relatedTarget=this.overEvent.target,t.out(this.overEvent),t.over(i)),this.overEvent=i},touchend:function(e){t.up(this.makeEvent(e)),t.out(this.overEvent),this._touchCount-=e.changedTouches.length},mouseup:function(){0===this._touchCount&&(this.sawMousedown=!1,t.events=e)},makeEvent:function(t){var e=enyo.clone(t.changedTouches[0]);return e.srcEvent=t,e.target=this.findTarget(e),e.which=1,e},calcNodeOffset:function(t){if(t.getBoundingClientRect){var e=t.getBoundingClientRect();return{left:e.left,top:e.top,width:e.width,height:e.height}}},findTarget:function(t){return document.elementFromPoint(t.clientX,t.clientY)},findTargetTraverse:function(t,e,n){var i=t||document.body,o=this.calcNodeOffset(i);if(o&&i!=this.excludedTarget){var r=e-o.left,s=n-o.top;if(r>0&&s>0&&o.width>=r&&o.height>=s){for(var a,c,h=i.childNodes,u=h.length-1;c=h[u];u--)if(a=this.findTargetTraverse(c,e,n))return a;return i}}},connect:function(){enyo.forEach(["ontouchstart","ontouchmove","ontouchend","ongesturestart","ongesturechange","ongestureend"],function(t){document[t]=enyo.dispatch}),18>=enyo.platform.androidChrome||2===enyo.platform.silk?this.findTarget=function(t){return document.elementFromPoint(t.screenX,t.screenY)}:document.elementFromPoint||(this.findTarget=function(t){return this.findTargetTraverse(null,t.clientX,t.clientY)})}};n.connect()});

// msevents.js
(function(){var t=enyo.gesture;if(window.navigator.msPointerEnabled){var e=["MSPointerDown","MSPointerUp","MSPointerMove","MSPointerOver","MSPointerOut","MSPointerCancel","MSGestureTap","MSGestureDoubleTap","MSGestureHold","MSGestureStart","MSGestureChange","MSGestureEnd"];enyo.forEach(e,function(t){enyo.dispatcher.listen(document,t)}),enyo.dispatcher.features.push(function(t){i[t.type]&&t.isPrimary&&i[t.type](t)}),enyo.gesture.events={}}var n=function(t){var e=enyo.clone(t);return e.srcEvent=t,e.which=1,e},i={MSPointerDown:function(e){var i=n(e);t.down(i)},MSPointerUp:function(e){var i=n(e);t.up(i)},MSPointerMove:function(e){var i=n(e);t.move(i)},MSPointerCancel:function(e){var i=n(e);t.up(i)},MSPointerOver:function(e){var i=n(e);t.over(i)},MSPointerOut:function(e){var i=n(e);t.out(i)}}})();

// gesture.js
(function(){!enyo.platform.gesture&&enyo.platform.touch&&enyo.dispatcher.features.push(function(n){t[n.type]&&e[n.type](n)});var t={touchstart:!0,touchmove:!0,touchend:!0},e={orderedTouches:[],gesture:null,touchstart:function(t){if(enyo.forEach(t.changedTouches,function(t){var e=t.identifier;0>enyo.indexOf(e,this.orderedTouches)&&this.orderedTouches.push(e)},this),t.touches.length>=2&&!this.gesture){var e=this.gesturePositions(t);this.gesture=this.gestureVector(e),this.gesture.angle=this.gestureAngle(e),this.gesture.scale=1,this.gesture.rotation=0;var n=this.makeGesture("gesturestart",t,{vector:this.gesture,scale:1,rotation:0});enyo.dispatch(n)}},touchend:function(t){if(enyo.forEach(t.changedTouches,function(t){enyo.remove(t.identifier,this.orderedTouches)},this),1>=t.touches.length&&this.gesture){var e=t.touches[0]||t.changedTouches[t.changedTouches.length-1];enyo.dispatch(this.makeGesture("gestureend",t,{vector:{xcenter:e.pageX,ycenter:e.pageY},scale:this.gesture.scale,rotation:this.gesture.rotation})),this.gesture=null}},touchmove:function(t){if(this.gesture){var e=this.makeGesture("gesturechange",t);this.gesture.scale=e.scale,this.gesture.rotation=e.rotation,enyo.dispatch(e)}},findIdentifiedTouch:function(t,e){for(var n,i=0;n=t[i];i++)if(n.identifier===e)return n},gesturePositions:function(t){var e=this.findIdentifiedTouch(t.touches,this.orderedTouches[0]),n=this.findIdentifiedTouch(t.touches,this.orderedTouches[this.orderedTouches.length-1]),i=e.pageX,o=n.pageX,r=e.pageY,s=n.pageY,a=o-i,c=s-r,h=Math.sqrt(a*a+c*c);return{x:a,y:c,h:h,fx:i,lx:o,fy:r,ly:s}},gestureAngle:function(t){var e=t,n=Math.asin(e.y/e.h)*(180/Math.PI);return 0>e.x&&(n=180-n),e.x>0&&0>e.y&&(n+=360),n},gestureVector:function(t){var e=t;return{magnitude:e.h,xcenter:Math.abs(Math.round(e.fx+e.x/2)),ycenter:Math.abs(Math.round(e.fy+e.y/2))}},makeGesture:function(t,e,n){var i,o,r;if(n)i=n.vector,o=n.scale,r=n.rotation;else{var s=this.gesturePositions(e);i=this.gestureVector(s),o=i.magnitude/this.gesture.magnitude,r=(360+this.gestureAngle(s)-this.gesture.angle)%360}var a=enyo.clone(e);return enyo.mixin(a,{type:t,scale:o,pageX:i.xcenter,pageY:i.ycenter,rotation:r})}}})();

// ScrollMath.js
enyo.kind({name:"enyo.ScrollMath",kind:enyo.Component,published:{vertical:!0,horizontal:!0},events:{onScrollStart:"",onScroll:"",onScrollStop:""},kSpringDamping:.93,kDragDamping:.5,kFrictionDamping:.97,kSnapFriction:.9,kFlickScalar:15,kMaxFlick:enyo.platform.android>2?2:1e9,kFrictionEpsilon:.01,topBoundary:0,rightBoundary:0,bottomBoundary:0,leftBoundary:0,interval:20,fixedTime:!0,x0:0,x:0,y0:0,y:0,destroy:function(){this.stop(),this.inherited(arguments)},verlet:function(){var t=this.x;this.x+=t-this.x0,this.x0=t;var e=this.y;this.y+=e-this.y0,this.y0=e},damping:function(t,e,n,i){var o=.5,r=t-e;return o>Math.abs(r)?e:t*i>e*i?n*r+e:t},boundaryDamping:function(t,e,n,i){return this.damping(this.damping(t,e,i,1),n,i,-1)},constrain:function(){var t=this.boundaryDamping(this.y,this.topBoundary,this.bottomBoundary,this.kSpringDamping);t!=this.y&&(this.y0=t-(this.y-this.y0)*this.kSnapFriction,this.y=t);var e=this.boundaryDamping(this.x,this.leftBoundary,this.rightBoundary,this.kSpringDamping);e!=this.x&&(this.x0=e-(this.x-this.x0)*this.kSnapFriction,this.x=e)},friction:function(t,e,n){var i=this[t]-this[e],o=Math.abs(i)>this.kFrictionEpsilon?n:0;this[t]=this[e]+o*i},frame:10,simulate:function(t){for(;t>=this.frame;)t-=this.frame,this.dragging||this.constrain(),this.verlet(),this.friction("y","y0",this.kFrictionDamping),this.friction("x","x0",this.kFrictionDamping);return t},animate:function(){this.stop();var t,e,n=enyo.now(),i=0,o=this.bindSafely(function(){var r=enyo.now();this.job=enyo.requestAnimationFrame(o);var s=r-n;n=r,this.dragging&&(this.y0=this.y=this.uy,this.x0=this.x=this.ux),i+=Math.max(16,s),this.fixedTime&&!this.isInOverScroll()&&(i=this.interval),i=this.simulate(i),e!=this.y||t!=this.x?this.scroll():this.dragging||(this.stop(!0),this.scroll()),e=this.y,t=this.x});this.job=enyo.requestAnimationFrame(o)},start:function(){this.job||(this.animate(),this.doScrollStart())},stop:function(t){this.job=enyo.cancelRequestAnimationFrame(this.job),t&&this.doScrollStop()},stabilize:function(){this.start();var t=Math.min(this.topBoundary,Math.max(this.bottomBoundary,this.y)),e=Math.min(this.leftBoundary,Math.max(this.rightBoundary,this.x));this.y=this.y0=t,this.x=this.x0=e,this.scroll(),this.stop(!0)},startDrag:function(t){this.dragging=!0,this.my=t.pageY,this.py=this.uy=this.y,this.mx=t.pageX,this.px=this.ux=this.x},drag:function(t){if(this.dragging){var e=this.vertical?t.pageY-this.my:0;this.uy=e+this.py,this.uy=this.boundaryDamping(this.uy,this.topBoundary,this.bottomBoundary,this.kDragDamping);var n=this.horizontal?t.pageX-this.mx:0;return this.ux=n+this.px,this.ux=this.boundaryDamping(this.ux,this.leftBoundary,this.rightBoundary,this.kDragDamping),this.start(),!0}},dragDrop:function(){if(this.dragging&&!window.PalmSystem){var t=.5;this.y=this.uy,this.y0=this.y-(this.y-this.y0)*t,this.x=this.ux,this.x0=this.x-(this.x-this.x0)*t}this.dragFinish()},dragFinish:function(){this.dragging=!1},flick:function(t){var e;this.vertical&&(e=t.yVelocity>0?Math.min(this.kMaxFlick,t.yVelocity):Math.max(-this.kMaxFlick,t.yVelocity),this.y=this.y0+e*this.kFlickScalar),this.horizontal&&(e=t.xVelocity>0?Math.min(this.kMaxFlick,t.xVelocity):Math.max(-this.kMaxFlick,t.xVelocity),this.x=this.x0+e*this.kFlickScalar),this.start()},mousewheel:function(t){var e=this.vertical?t.wheelDeltaY||t.wheelDelta:0;return e>0&&this.y<this.topBoundary||0>e&&this.y>this.bottomBoundary?(this.stop(!0),this.y=this.y0=this.y0+e,this.start(),!0):void 0},scroll:function(){this.doScroll()},scrollTo:function(t,e){null!==e&&(this.y=this.y0-(e+this.y0)*(1-this.kFrictionDamping)),null!==t&&(this.x=this.x0-(t+this.x0)*(1-this.kFrictionDamping)),this.start()},setScrollX:function(t){this.x=this.x0=t},setScrollY:function(t){this.y=this.y0=t},setScrollPosition:function(t){this.setScrollY(t)},isScrolling:function(){return Boolean(this.job)},isInOverScroll:function(){return this.job&&(this.x>this.leftBoundary||this.x<this.rightBoundary||this.y>this.topBoundary||this.y<this.bottomBoundary)}});

// ScrollStrategy.js
enyo.kind({name:"enyo.ScrollStrategy",tag:null,published:{vertical:"default",horizontal:"default",scrollLeft:0,scrollTop:0,maxHeight:null,useMouseWheel:!0},handlers:{ondragstart:"dragstart",ondragfinish:"dragfinish",ondown:"down",onmove:"move",onmousewheel:"mousewheel"},create:function(){this.inherited(arguments),this.horizontalChanged(),this.verticalChanged(),this.maxHeightChanged()},rendered:function(){this.inherited(arguments),enyo.makeBubble(this.container,"scroll"),this.scrollNode=this.calcScrollNode()},teardownRender:function(){this.inherited(arguments),this.scrollNode=null},calcScrollNode:function(){return this.container.hasNode()},horizontalChanged:function(){this.container.applyStyle("overflow-x","default"==this.horizontal?"auto":this.horizontal)},verticalChanged:function(){this.container.applyStyle("overflow-y","default"==this.vertical?"auto":this.vertical)},maxHeightChanged:function(){this.container.applyStyle("max-height",this.maxHeight)},scrollTo:function(t,e){this.scrollNode&&(this.setScrollLeft(t),this.setScrollTop(e))},scrollToNode:function(t,e){if(this.scrollNode){for(var n=this.getScrollBounds(),i=t,o={height:i.offsetHeight,width:i.offsetWidth,top:0,left:0};i&&i.parentNode&&i.id!=this.scrollNode.id;)o.top+=i.offsetTop,o.left+=i.offsetLeft,i=i.parentNode;this.setScrollTop(Math.min(n.maxTop,e===!1?o.top-n.clientHeight+o.height:o.top)),this.setScrollLeft(Math.min(n.maxLeft,e===!1?o.left-n.clientWidth+o.width:o.left))}},scrollIntoView:function(t,e){t.hasNode()&&t.node.scrollIntoView(e)},isInView:function(t){var e=this.getScrollBounds(),n=t.offsetTop,i=t.offsetHeight,o=t.offsetLeft,r=t.offsetWidth;return n>=e.top&&e.top+e.clientHeight>=n+i&&o>=e.left&&e.left+e.clientWidth>=o+r},setScrollTop:function(t){this.scrollTop=t,this.scrollNode&&(this.scrollNode.scrollTop=this.scrollTop)},setScrollLeft:function(t){this.scrollLeft=t,this.scrollNode&&(this.scrollNode.scrollLeft=this.scrollLeft)},getScrollLeft:function(){return this.scrollNode?this.scrollNode.scrollLeft:this.scrollLeft},getScrollTop:function(){return this.scrollNode?this.scrollNode.scrollTop:this.scrollTop},_getScrollBounds:function(){var t=this.getScrollSize(),e=this.container.hasNode(),n={left:this.getScrollLeft(),top:this.getScrollTop(),clientHeight:e?e.clientHeight:0,clientWidth:e?e.clientWidth:0,height:t.height,width:t.width};return n.maxLeft=Math.max(0,n.width-n.clientWidth),n.maxTop=Math.max(0,n.height-n.clientHeight),n},getScrollSize:function(){var t=this.scrollNode;return{width:t?t.scrollWidth:0,height:t?t.scrollHeight:0}},getScrollBounds:function(){return this._getScrollBounds()},calcStartInfo:function(){var t=this.getScrollBounds(),e=this.getScrollTop(),n=this.getScrollLeft();this.canVertical=t.maxTop>0&&"hidden"!=this.vertical,this.canHorizontal=t.maxLeft>0&&"hidden"!=this.horizontal,this.startEdges={top:0===e,bottom:e===t.maxTop,left:0===n,right:n===t.maxLeft}},shouldDrag:function(t){var e=t.vertical;return e&&this.canVertical||!e&&this.canHorizontal},dragstart:function(t,e){return this.dragging=this.shouldDrag(e),this.dragging?this.preventDragPropagation:void 0},dragfinish:function(t,e){this.dragging&&(this.dragging=!1,e.preventTap())},down:function(){this.calcStartInfo()},move:function(t,e){e.which&&(this.canVertical&&e.vertical||this.canHorizontal&&e.horizontal)&&e.disablePrevention()},mousewheel:function(t,e){this.useMouseWheel||e.preventDefault()}});

// Thumb.js
enyo.kind({name:"enyo.ScrollThumb",axis:"v",minSize:4,cornerSize:6,classes:"enyo-thumb",create:function(){this.inherited(arguments);var t="v"==this.axis;this.dimension=t?"height":"width",this.offset=t?"top":"left",this.translation=t?"translateY":"translateX",this.positionMethod=t?"getScrollTop":"getScrollLeft",this.sizeDimension=t?"clientHeight":"clientWidth",this.addClass("enyo-"+this.axis+"thumb"),this.transform=enyo.dom.canTransform(),enyo.dom.canAccelerate()&&enyo.dom.transformValue(this,"translateZ",0)},sync:function(t){this.scrollBounds=t._getScrollBounds(),this.update(t)},update:function(t){if(this.showing){var e=this.dimension,n=this.offset,i=this.scrollBounds[this.sizeDimension],o=this.scrollBounds[e],r=0,s=0,a=0;if(i>=o)return this.hide(),void 0;t.isOverscrolling()&&(a=t.getOverScrollBounds()["over"+n],r=Math.abs(a),s=Math.max(a,0));var h=t[this.positionMethod]()-a,c=i-this.cornerSize,u=Math.floor(i*i/o-r);u=Math.max(this.minSize,u);var l=Math.floor(c*h/o+s);l=Math.max(0,Math.min(c-this.minSize,l)),this.needed=i>u,this.needed&&this.hasNode()?(this._pos!==l&&(this._pos=l,this.transform?enyo.dom.transformValue(this,this.translation,l+"px"):"v"==this.axis?this.setBounds({top:l+"px"}):this.setBounds({left:l+"px"})),this._size!==u&&(this._size=u,this.node.style[e]=this.domStyles[e]=u+"px")):this.hide()}},setShowing:function(t){if(!(t&&t!=this.showing&&this.scrollBounds[this.sizeDimension]>=this.scrollBounds[this.dimension])&&(this.hasNode()&&this.cancelDelayHide(),t!=this.showing)){var e=this.showing;this.showing=t,this.showingChanged(e)}},delayHide:function(t){this.showing&&enyo.job(this.id+"hide",this.bindSafely("hide"),t||0)},cancelDelayHide:function(){enyo.job.stop(this.id+"hide")}});

// TouchScrollStrategy.js
enyo.kind({name:"enyo.TouchScrollStrategy",kind:"ScrollStrategy",overscroll:!0,preventDragPropagation:!0,published:{vertical:"default",horizontal:"default",thumb:!0,scrim:!1,dragDuringGesture:!0},events:{onShouldDrag:""},handlers:{onscroll:"domScroll",onflick:"flick",onhold:"hold",ondragstart:"dragstart",onShouldDrag:"shouldDrag",ondrag:"drag",ondragfinish:"dragfinish",onmousewheel:"mousewheel"},tools:[{kind:"ScrollMath",onScrollStart:"scrollMathStart",onScroll:"scrollMathScroll",onScrollStop:"scrollMathStop"},{name:"vthumb",kind:"ScrollThumb",axis:"v",showing:!1},{name:"hthumb",kind:"ScrollThumb",axis:"h",showing:!1}],scrimTools:[{name:"scrim",classes:"enyo-fit",style:"z-index: 1;",showing:!1}],components:[{name:"client",classes:"enyo-touch-scroller"}],listReordering:!1,create:function(){this.inherited(arguments),this.transform=enyo.dom.canTransform(),this.transform||this.overscroll&&this.$.client.applyStyle("position","relative"),this.accel=enyo.dom.canAccelerate();var t="enyo-touch-strategy-container";enyo.platform.ios&&this.accel&&(t+=" enyo-composite"),this.scrimChanged(),this.container.addClass(t),this.translation=this.accel?"translate3d":"translate"},initComponents:function(){this.createChrome(this.tools),this.inherited(arguments)},destroy:function(){this.container.removeClass("enyo-touch-strategy-container"),this.inherited(arguments)},rendered:function(){this.inherited(arguments),enyo.makeBubble(this.$.client,"scroll"),this.calcBoundaries(),this.syncScrollMath(),this.thumb&&this.alertThumbs()},scrimChanged:function(){this.scrim&&!this.$.scrim&&this.makeScrim(),!this.scrim&&this.$.scrim&&this.$.scrim.destroy()},makeScrim:function(){var t=this.controlParent;this.controlParent=null,this.createChrome(this.scrimTools),this.controlParent=t;var e=this.container.hasNode();e&&(this.$.scrim.parentNode=e,this.$.scrim.render())},isScrolling:function(){var t=this.$.scrollMath;return t?t.isScrolling():this.scrolling},isOverscrolling:function(){var t=this.$.scrollMath||this;return this.overscroll?t.isInOverScroll():!1},domScroll:function(){this.isScrolling()||(this.calcBoundaries(),this.syncScrollMath(),this.thumb&&this.alertThumbs())},horizontalChanged:function(){this.$.scrollMath.horizontal="hidden"!=this.horizontal},verticalChanged:function(){this.$.scrollMath.vertical="hidden"!=this.vertical},maxHeightChanged:function(){this.$.client.applyStyle("max-height",this.maxHeight),this.$.client.addRemoveClass("enyo-scrollee-fit",!this.maxHeight)},thumbChanged:function(){this.hideThumbs()},stop:function(){this.isScrolling()&&this.$.scrollMath.stop(!0)},stabilize:function(){this.$.scrollMath&&this.$.scrollMath.stabilize()},scrollTo:function(t,e){this.stop(),this.$.scrollMath.scrollTo(t,e||0===e?e:null)},scrollIntoView:function(){this.stop(),this.inherited(arguments)},setScrollLeft:function(){this.stop(),this.inherited(arguments)},setScrollTop:function(){this.stop(),this.inherited(arguments)},getScrollLeft:function(){return this.isScrolling()?this.scrollLeft:this.inherited(arguments)},getScrollTop:function(){return this.isScrolling()?this.scrollTop:this.inherited(arguments)},calcScrollNode:function(){return this.$.client.hasNode()},calcAutoScrolling:function(){var t="auto"==this.vertical,e="auto"==this.horizontal||"default"==this.horizontal;if((t||e)&&this.scrollNode){var n=this.getScrollBounds();t&&(this.$.scrollMath.vertical=n.height>n.clientHeight),e&&(this.$.scrollMath.horizontal=n.width>n.clientWidth)}},shouldDrag:function(t,e){this.calcAutoScrolling();var n=e.vertical,i=this.$.scrollMath.horizontal&&!n,o=this.$.scrollMath.vertical&&n,r=0>e.dy,s=0>e.dx,a=!r&&this.startEdges.top||r&&this.startEdges.bottom,h=!s&&this.startEdges.left||s&&this.startEdges.right;return e.boundaryDragger||!i&&!o||(e.boundaryDragger=this),!a&&o||!h&&i?(e.dragger=this,!0):void 0},flick:function(t,e){var n=Math.abs(e.xVelocity)>Math.abs(e.yVelocity)?this.$.scrollMath.horizontal:this.$.scrollMath.vertical;return n&&this.dragging?(this.$.scrollMath.flick(e),this.preventDragPropagation):void 0},hold:function(t,e){if(this.isScrolling()&&!this.isOverscrolling()){var n=this.$.scrollMath||this;return n.stop(e),!0}},move:function(){},dragstart:function(t,e){return!this.dragDuringGesture&&e.srcEvent.touches&&e.srcEvent.touches.length>1?!0:(this.doShouldDrag(e),this.dragging=e.dragger==this||!e.dragger&&e.boundaryDragger==this,this.dragging&&(e.preventDefault(),this.syncScrollMath(),this.$.scrollMath.startDrag(e),this.preventDragPropagation)?!0:void 0)},drag:function(t,e){return this.listReordering?!1:(this.dragging&&(e.preventDefault(),this.$.scrollMath.drag(e),this.scrim&&this.$.scrim.show()),void 0)},dragfinish:function(t,e){this.dragging&&(e.preventTap(),this.$.scrollMath.dragFinish(),this.dragging=!1,this.scrim&&this.$.scrim.hide())},mousewheel:function(t,e){return!this.dragging&&this.useMouseWheel&&(this.calcBoundaries(),this.syncScrollMath(),this.stabilize(),this.$.scrollMath.mousewheel(e))?(e.preventDefault(),!0):void 0},scrollMathStart:function(){this.scrollNode&&(this.calcBoundaries(),this.thumb&&this.showThumbs())},scrollMathScroll:function(t){this.overscroll?this.effectScroll(-t.x,-t.y):this.effectScroll(-Math.min(t.leftBoundary,Math.max(t.rightBoundary,t.x)),-Math.min(t.topBoundary,Math.max(t.bottomBoundary,t.y))),this.thumb&&this.updateThumbs()},scrollMathStop:function(){this.effectScrollStop(),this.thumb&&this.delayHideThumbs(100)},calcBoundaries:function(){var t=this.$.scrollMath||this,e=this._getScrollBounds();t.bottomBoundary=e.clientHeight-e.height,t.rightBoundary=e.clientWidth-e.width},syncScrollMath:function(){var t=this.$.scrollMath;t&&(t.setScrollX(-this.getScrollLeft()),t.setScrollY(-this.getScrollTop()))},effectScroll:function(t,e){this.scrollNode&&(this.scrollLeft=this.scrollNode.scrollLeft=t,this.scrollTop=this.scrollNode.scrollTop=e,this.effectOverscroll(Math.round(t),Math.round(e)))},effectScrollStop:function(){this.effectOverscroll(null,null)},effectOverscroll:function(t,e){var n=this.scrollNode,i="0",o="0",r=this.accel?",0":"";null!==e&&Math.abs(e-n.scrollTop)>1&&(o=n.scrollTop-e),null!==t&&Math.abs(t-n.scrollLeft)>1&&(i=n.scrollLeft-t),this.transform?enyo.dom.transformValue(this.$.client,this.translation,i+"px, "+o+"px"+r):this.$.client.setBounds({left:i+"px",top:o+"px"})},getOverScrollBounds:function(){var t=this.$.scrollMath||this;return{overleft:Math.min(t.leftBoundary-t.x,0)||Math.max(t.rightBoundary-t.x,0),overtop:Math.min(t.topBoundary-t.y,0)||Math.max(t.bottomBoundary-t.y,0)}},_getScrollBounds:function(){var t=this.inherited(arguments);return enyo.mixin(t,this.getOverScrollBounds()),t},getScrollBounds:function(){return this.stop(),this.inherited(arguments)},alertThumbs:function(){this.showThumbs(),this.delayHideThumbs(500)},syncThumbs:function(){this.$.vthumb.sync(this),this.$.hthumb.sync(this)},updateThumbs:function(){this.$.vthumb.update(this),this.$.hthumb.update(this)},showThumbs:function(){this.syncThumbs(),"hidden"!=this.horizontal&&this.$.hthumb.show(),"hidden"!=this.vertical&&this.$.vthumb.show()},hideThumbs:function(){this.$.vthumb.hide(),this.$.hthumb.hide()},delayHideThumbs:function(t){this.$.vthumb.delayHide(t),this.$.hthumb.delayHide(t)}});

// TranslateScrollStrategy.js
enyo.kind({name:"enyo.TranslateScrollStrategy",kind:"TouchScrollStrategy",translateOptimized:!1,components:[{name:"clientContainer",classes:"enyo-touch-scroller",components:[{name:"client"}]}],rendered:function(){this.inherited(arguments),enyo.makeBubble(this.$.clientContainer,"scroll")},getScrollSize:function(){var t=this.$.client.hasNode();return{width:t?t.scrollWidth:0,height:t?t.scrollHeight:0}},create:function(){this.inherited(arguments),enyo.dom.transformValue(this.$.client,this.translation,"0,0,0")},calcScrollNode:function(){return this.$.clientContainer.hasNode()},maxHeightChanged:function(){this.$.client.applyStyle("min-height",this.maxHeight?null:"100%"),this.$.client.applyStyle("max-height",this.maxHeight),this.$.clientContainer.addRemoveClass("enyo-scrollee-fit",!this.maxHeight)},shouldDrag:function(){return this.stop(),this.calcStartInfo(),this.inherited(arguments)},syncScrollMath:function(){this.translateOptimized||this.inherited(arguments)},setScrollLeft:function(t){if(this.stop(),this.translateOptimized){var e=this.$.scrollMath;e.setScrollX(-t),e.stabilize()}else this.inherited(arguments)},setScrollTop:function(t){if(this.stop(),this.translateOptimized){var e=this.$.scrollMath;e.setScrollY(-t),e.stabilize()}else this.inherited(arguments)},getScrollLeft:function(){return this.translateOptimized?this.scrollLeft:this.inherited(arguments)},getScrollTop:function(){return this.translateOptimized?this.scrollTop:this.inherited(arguments)},scrollMathStart:function(){this.inherited(arguments),this.scrollStarting=!0,this.startX=0,this.startY=0,!this.translateOptimized&&this.scrollNode&&(this.startX=this.getScrollLeft(),this.startY=this.getScrollTop())},scrollMathScroll:function(t){this.overscroll?(this.scrollLeft=-t.x,this.scrollTop=-t.y):(this.scrollLeft=-Math.min(t.leftBoundary,Math.max(t.rightBoundary,t.x)),this.scrollTop=-Math.min(t.topBoundary,Math.max(t.bottomBoundary,t.y))),this.isScrolling()&&(this.$.scrollMath.isScrolling()&&this.effectScroll(this.startX-this.scrollLeft,this.startY-this.scrollTop),this.thumb&&this.updateThumbs())},effectScroll:function(t,e){var n=t+"px, "+e+"px"+(this.accel?",0":"");enyo.dom.transformValue(this.$.client,this.translation,n)},effectScrollStop:function(){if(!this.translateOptimized){var t="0,0"+(this.accel?",0":""),e=this.$.scrollMath,n=this._getScrollBounds(),i=Boolean(n.maxTop+e.bottomBoundary||n.maxLeft+e.rightBoundary);enyo.dom.transformValue(this.$.client,this.translation,i?null:t),this.setScrollLeft(this.scrollLeft),this.setScrollTop(this.scrollTop),i&&enyo.dom.transformValue(this.$.client,this.translation,t)}},twiddle:function(){this.translateOptimized&&this.scrollNode&&(this.scrollNode.scrollTop=1,this.scrollNode.scrollTop=0)},down:enyo.nop});

// TransitionScrollStrategy.js
enyo.kind({name:"enyo.TransitionScrollStrategy",kind:"enyo.TouchScrollStrategy",components:[{name:"clientContainer",classes:"enyo-touch-scroller",components:[{name:"client"}]}],events:{onScrollStart:"",onScroll:"",onScrollStop:""},handlers:{ondown:"down",ondragfinish:"dragfinish",onwebkitTransitionEnd:"transitionComplete"},tools:[{name:"vthumb",kind:"ScrollThumb",axis:"v",showing:!0},{name:"hthumb",kind:"ScrollThumb",axis:"h",showing:!1}],kFlickScalar:600,topBoundary:0,rightBoundary:0,bottomBoundary:0,leftBoundary:0,scrolling:!1,listener:null,boundaryX:0,boundaryY:0,stopTimeout:null,stopTimeoutMS:80,scrollInterval:null,scrollIntervalMS:50,transitions:{none:"",scroll:"3.8s cubic-bezier(.19,1,.28,1.0) 0s",bounce:"0.5s cubic-bezier(0.06,.5,.5,.94) 0s"},setScrollLeft:function(t){var e=this.scrollLeft;this.stop(),this.scrollLeft=t,(this.isInLeftOverScroll()||this.isInRightOverScroll())&&(this.scrollLeft=e),this.effectScroll()},setScrollTop:function(t){var e=this.scrollTop;this.stop(),this.scrollTop=t,(this.isInTopOverScroll()||this.isInBottomOverScroll())&&(this.scrollTop=e),this.effectScroll()},setScrollX:function(t){this.scrollLeft=-1*t},setScrollY:function(t){this.scrollTop=-1*t},getScrollLeft:function(){return this.scrollLeft},getScrollTop:function(){return this.scrollTop},create:function(){this.inherited(arguments),enyo.dom.transformValue(this.$.client,this.translation,"0,0,0")},destroy:function(){this.clearCSSTransitionInterval(),this.inherited(arguments)},getScrollSize:function(){var t=this.$.client.hasNode();return{width:t?t.scrollWidth:0,height:t?t.scrollHeight:0}},horizontalChanged:function(){"hidden"==this.horizontal&&(this.scrollHorizontal=!1)},verticalChanged:function(){"hidden"==this.vertical&&(this.scrollVertical=!1)},calcScrollNode:function(){return this.$.clientContainer.hasNode()},calcBoundaries:function(){var t=this._getScrollBounds();this.bottomBoundary=t.clientHeight-t.height,this.rightBoundary=t.clientWidth-t.width},maxHeightChanged:function(){this.$.client.applyStyle("min-height",this.maxHeight?null:"100%"),this.$.client.applyStyle("max-height",this.maxHeight),this.$.clientContainer.addRemoveClass("enyo-scrollee-fit",!this.maxHeight)},calcAutoScrolling:function(){var t=this.getScrollBounds();this.vertical&&(this.scrollVertical=t.height>t.clientHeight),this.horizontal&&(this.scrollHorizontal=t.width>t.clientWidth)},isInOverScroll:function(){return this.isInTopOverScroll()||this.isInBottomOverScroll()||this.isInLeftOverScroll()||this.isInRightOverScroll()},isInLeftOverScroll:function(){return this.getScrollLeft()<this.leftBoundary},isInRightOverScroll:function(){return 0>=this.getScrollLeft?!1:-1*this.getScrollLeft()<this.rightBoundary},isInTopOverScroll:function(){return this.getScrollTop()<this.topBoundary},isInBottomOverScroll:function(){return 0>=this.getScrollTop()?!1:-1*this.getScrollTop()<this.bottomBoundary},calcStartInfo:function(){var t=this.getScrollBounds(),e=this.getScrollTop(),n=this.getScrollLeft();this.startEdges={top:0===e,bottom:e===t.maxTop,left:0===n,right:n===t.maxLeft}},mousewheel:function(t,e){if(!this.dragging&&this.useMouseWheel){this.calcBoundaries(),this.syncScrollMath(),this.stabilize();var n=this.vertical?e.wheelDeltaY||e.wheelDelta:0,i=parseFloat(this.getScrollTop())+-1*parseFloat(n);return i=this.bottomBoundary>-1*i?-1*this.bottomBoundary:this.topBoundary>i?this.topBoundary:i,this.setScrollTop(i),this.doScroll(),e.preventDefault(),!0}},scroll:function(){this.thumb&&this.updateThumbs(),this.calcBoundaries(),this.doScroll()},start:function(){this.startScrolling(),this.doScrollStart()},stop:function(){this.isScrolling()&&this.stopScrolling(),this.thumb&&this.delayHideThumbs(100),this.doScrollStop()},updateX:function(){var t=window.getComputedStyle(this.$.client.node,null).getPropertyValue(enyo.dom.getCssTransformProp()).split("(")[1];return t=void 0===t?0:t.split(")")[0].split(",")[4],-1*parseFloat(t)===this.scrollLeft?!1:(this.scrollLeft=-1*parseFloat(t),!0)},updateY:function(){var t=window.getComputedStyle(this.$.client.node,null).getPropertyValue(enyo.dom.getCssTransformProp()).split("(")[1];return t=void 0===t?0:t.split(")")[0].split(",")[5],-1*parseFloat(t)===this.scrollTop?!1:(this.scrollTop=-1*parseFloat(t),!0)},effectScroll:function(){var t=-1*this.scrollLeft+"px, "+-1*this.scrollTop+"px"+(this.accel?", 0":"");enyo.dom.transformValue(this.$.client,this.translation,t)},down:function(){var t=this;return this.isScrolling()&&!this.isOverscrolling()?(this.stopTimeout=setTimeout(function(){t.stop()},this.stopTimeoutMS),!0):void 0},dragstart:function(t,e){return this.stopTimeout&&clearTimeout(this.stopTimeout),!this.dragDuringGesture&&e.srcEvent.touches&&e.srcEvent.touches.length>1?!0:(this.shouldDrag(e),this.dragging=e.dragger==this||!e.dragger&&e.boundaryDragger==this,this.dragging&&(this.isScrolling()&&this.stopScrolling(),this.thumb&&this.showThumbs(),e.preventDefault(),this.prevY=e.pageY,this.prevX=e.pageX,this.preventDragPropagation)?!0:void 0)},shouldDrag:function(t){return this.calcStartInfo(),this.calcBoundaries(),this.calcAutoScrolling(),this.scrollHorizontal?this.scrollVertical?this.shouldDragVertical(t)||this.shouldDragHorizontal(t):this.shouldDragHorizontal(t):this.shouldDragVertical(t)},shouldDragVertical:function(t){var e=this.canDragVertical(t),n=this.oobVertical(t);return!t.boundaryDragger&&e&&(t.boundaryDragger=this),!n&&e?(t.dragger=this,!0):void 0},shouldDragHorizontal:function(t){var e=this.canDragHorizontal(t),n=this.oobHorizontal(t);return!t.boundaryDragger&&e&&(t.boundaryDragger=this),!n&&e?(t.dragger=this,!0):void 0},canDragVertical:function(t){return this.scrollVertical&&t.vertical},canDragHorizontal:function(t){return this.scrollHorizontal&&!t.vertical},oobVertical:function(t){var e=0>t.dy;return!e&&this.startEdges.top||e&&this.startEdges.bottom},oobHorizontal:function(t){var e=0>t.dx;return!e&&this.startEdges.left||e&&this.startEdges.right},drag:function(t,e){return this.listReordering?!1:(this.dragging&&(e.preventDefault(),this.scrollLeft=this.scrollHorizontal?this.calculateDragDistance(parseInt(this.getScrollLeft(),10),-1*(e.pageX-this.prevX),this.leftBoundary,this.rightBoundary):this.getScrollLeft(),this.scrollTop=this.scrollVertical?this.calculateDragDistance(this.getScrollTop(),-1*(e.pageY-this.prevY),this.topBoundary,this.bottomBoundary):this.getScrollTop(),this.effectScroll(),this.scroll(),this.prevY=e.pageY,this.prevX=e.pageX,this.resetBoundaryX(),this.resetBoundaryY()),void 0)},calculateDragDistance:function(t,e,n,i){var o=t+e;return this.overscrollDragDamping(t,o,e,n,i)},overscrollDragDamping:function(t,e,n,i,o){return(i>e||o>-1*e)&&(n/=2,e=t+n),e},resetBoundaryX:function(){this.boundaryX=0},resetBoundaryY:function(){this.boundaryY=0},dragfinish:function(t,e){this.dragging&&(e.preventTap(),this.dragging=!1,this.isScrolling()||this.correctOverflow(),this.scrim&&this.$.scrim.hide())},correctOverflow:function(){if(this.isInOverScroll()){var t=this.scrollHorizontal?this.correctOverflowX():!1,e=this.scrollVertical?this.correctOverflowY():!1;t!==!1&&e!==!1?(this.scrollLeft=t!==!1?t:this.getScrollLeft(),this.scrollTop=e!==!1?e:this.getScrollTop(),this.startOverflowScrolling()):t!==!1?(this.scrollLeft=t,this.scrollTop=this.targetScrollTop||this.scrollTop,this.targetScrollLeft=this.getScrollLeft(),this.vertical?this.startScrolling():this.startOverflowScrolling()):e!==!1&&(this.scrollTop=e,this.scrollLeft=this.targetScrollLeft||this.scrollLeft,this.targetScrollTop=this.getScrollTop(),this.scrollHorizontal?this.startScrolling():this.startOverflowScrolling())}},correctOverflowX:function(){if(this.isInLeftOverScroll()){if(this.beyondBoundary(this.getScrollLeft(),this.leftBoundary,this.boundaryX))return this.leftBoundary}else if(this.isInRightOverScroll()&&this.beyondBoundary(this.getScrollLeft(),this.rightBoundary,this.boundaryX))return-1*this.rightBoundary;return!1},correctOverflowY:function(){if(this.isInTopOverScroll()){if(this.beyondBoundary(this.getScrollTop(),this.topBoundary,this.boundaryY))return this.topBoundary}else if(this.isInBottomOverScroll()&&this.beyondBoundary(this.getScrollTop(),this.bottomBoundary,this.boundaryY))return-1*this.bottomBoundary;return!1},beyondBoundary:function(t,e,n){return Math.abs(Math.abs(e)-Math.abs(t))>Math.abs(n)},flick:function(t,e){return this.dragging&&this.flickOnEnabledAxis(e)?(this.scrollLeft=this.scrollHorizontal?this.calculateFlickDistance(this.scrollLeft,-1*e.xVelocity):this.getScrollLeft(),this.scrollTop=this.scrollVertical?this.calculateFlickDistance(this.scrollTop,-1*e.yVelocity):this.getScrollTop(),this.targetScrollLeft=this.scrollLeft,this.targetScrollTop=this.scrollTop,this.boundaryX=null,this.boundaryY=null,this.isInLeftOverScroll()?this.boundaryX=this.figureBoundary(this.getScrollLeft()):this.isInRightOverScroll()&&(this.boundaryX=this.figureBoundary(-1*this.bottomBoundary-this.getScrollLeft())),this.isInTopOverScroll()?this.boundaryY=this.figureBoundary(this.getScrollTop()):this.isInBottomOverScroll()&&(this.boundaryY=this.figureBoundary(-1*this.bottomBoundary-this.getScrollTop())),this.startScrolling(),this.preventDragPropagation):void 0},flickOnEnabledAxis:function(t){return Math.abs(t.xVelocity)>Math.abs(t.yVelocity)?this.scrollHorizontal:this.scrollVertical},calculateFlickDistance:function(t,e){return t+e*this.kFlickScalar},startScrolling:function(){this.applyTransition("scroll"),this.effectScroll(),this.setCSSTransitionInterval(),this.scrolling=!0},startOverflowScrolling:function(){this.applyTransition("bounce"),this.effectScroll(),this.setOverflowTransitionInterval(),this.scrolling=!0},applyTransition:function(t){this.$.client.applyStyle("-webkit-transition",this.transitions[t])},stopScrolling:function(){this.resetCSSTranslationVals(),this.clearCSSTransitionInterval(),this.scrolling=!1},setCSSTransitionInterval:function(){this.clearCSSTransitionInterval(),this.scrollInterval=setInterval(this.bindSafely(function(){this.updateScrollPosition(),this.correctOverflow()}),this.scrollIntervalMS)},setOverflowTransitionInterval:function(){this.clearCSSTransitionInterval(),this.scrollInterval=setInterval(this.bindSafely(function(){this.updateScrollPosition()}),this.scrollIntervalMS)},updateScrollPosition:function(){var t=this.updateY(),e=this.updateX();this.scroll(),t||e||this.stop()},clearCSSTransitionInterval:function(){this.scrollInterval&&(clearInterval(this.scrollInterval),this.scrollInterval=null)},resetCSSTranslationVals:function(){var t=enyo.dom.getCssTransformProp(),e=window.getComputedStyle(this.$.client.node,null).getPropertyValue(t).split("(")[1].split(")")[0].split(",");this.applyTransition("none"),this.scrollLeft=-1*e[4],this.scrollTop=-1*e[5],this.effectScroll()},figureBoundary:function(t){var e=Math.abs(t),n=e-e/Math.pow(e,.02);return n=0>t?-1*n:n},transitionComplete:function(t,e){if(e.originator===this.$.client){var n=!1;this.isInTopOverScroll()?(n=!0,this.scrollTop=this.topBoundary):this.isInBottomOverScroll()&&(n=!0,this.scrollTop=-1*this.bottomBoundary),this.isInLeftOverScroll()?(n=!0,this.scrollLeft=this.leftBoundary):this.isInRightOverScroll()&&(n=!0,this.scrollLeft=-1*this.rightBoundary),n?this.startOverflowScrolling():this.stop()}},scrollTo:function(t,e){this.setScrollTop(e),this.setScrollLeft(t),this.start()},getOverScrollBounds:function(){return{overleft:Math.min(this.leftBoundary+this.scrollLeft,0)||Math.max(this.rightBoundary+this.scrollLeft,0),overtop:Math.min(this.topBoundary+this.scrollTop,0)||Math.max(this.bottomBoundary+this.scrollTop,0)}}});

// Scroller.js
enyo.kind({name:"enyo.Scroller",published:{horizontal:"default",vertical:"default",scrollTop:0,scrollLeft:0,maxHeight:null,touch:!1,strategyKind:"ScrollStrategy",thumb:!0,useMouseWheel:!0},events:{onScrollStart:"",onScroll:"",onScrollStop:""},touchOverscroll:!0,preventDragPropagation:!0,preventScrollPropagation:!0,handlers:{onscroll:"domScroll",onScrollStart:"scrollStart",onScroll:"scroll",onScrollStop:"scrollStop"},classes:"enyo-scroller",statics:{osInfo:[{os:"android",version:3},{os:"androidChrome",version:18},{os:"androidFirefox",version:16},{os:"firefoxOS",version:16},{os:"ios",version:5},{os:"webos",version:1e9},{os:"blackberry",version:1e9}],hasTouchScrolling:function(){for(var t,e=0;t=this.osInfo[e];e++)if(enyo.platform[t.os])return!0;return(enyo.platform.ie>=10||enyo.platform.windowsPhone>=8)&&enyo.platform.touch?!0:void 0},hasNativeScrolling:function(){for(var t,e=0;t=this.osInfo[e];e++)if(enyo.platform[t.os]<t.version)return!1;return!0},getTouchStrategy:function(){return enyo.platform.android>=3||8===enyo.platform.windowsPhone?"TranslateScrollStrategy":"TouchScrollStrategy"}},controlParentName:"strategy",create:function(){this.inherited(arguments),this.horizontalChanged(),this.verticalChanged(),this.useMouseWheelChanged()},importProps:function(t){this.inherited(arguments),t&&void 0===t.strategyKind&&(enyo.Scroller.touchScrolling||this.touch)&&(this.strategyKind=enyo.Scroller.getTouchStrategy())},initComponents:function(){this.strategyKindChanged(),this.inherited(arguments)},teardownChildren:function(){this.cacheScrollPosition(),this.inherited(arguments)},rendered:function(){this.inherited(arguments),this.restoreScrollPosition()},strategyKindChanged:function(){this.$.strategy&&(this.$.strategy.destroy(),this.controlParent=null),this.createStrategy(),this.hasNode()&&this.render()},createStrategy:function(){this.createComponents([{name:"strategy",maxHeight:this.maxHeight,kind:this.strategyKind,thumb:this.thumb,preventDragPropagation:this.preventDragPropagation,overscroll:this.touchOverscroll,isChrome:!0}])},getStrategy:function(){return this.$.strategy},maxHeightChanged:function(){this.$.strategy.setMaxHeight(this.maxHeight)},showingChanged:function(){this.showing||(this.cacheScrollPosition(),this.setScrollLeft(0),this.setScrollTop(0)),this.inherited(arguments),this.showing&&this.restoreScrollPosition()},thumbChanged:function(){this.$.strategy.setThumb(this.thumb)},cacheScrollPosition:function(){this.cachedPosition={left:this.getScrollLeft(),top:this.getScrollTop()}},restoreScrollPosition:function(){this.cachedPosition&&(this.setScrollLeft(this.cachedPosition.left),this.setScrollTop(this.cachedPosition.top),this.cachedPosition=null)},horizontalChanged:function(){this.$.strategy.setHorizontal(this.horizontal)},verticalChanged:function(){this.$.strategy.setVertical(this.vertical)},setScrollLeft:function(t){this.scrollLeft=t,this.$.strategy.setScrollLeft(this.scrollLeft)},setScrollTop:function(t){this.scrollTop=t,this.$.strategy.setScrollTop(t)},getScrollLeft:function(){return this.$.strategy.getScrollLeft()},getScrollTop:function(){return this.$.strategy.getScrollTop()},getScrollBounds:function(){return this.$.strategy.getScrollBounds()},scrollIntoView:function(t,e){this.$.strategy.scrollIntoView(t,e)},scrollTo:function(t,e){this.$.strategy.scrollTo(t,e)},scrollToControl:function(t,e){this.scrollToNode(t.hasNode(),e)},scrollToNode:function(t,e){this.$.strategy.scrollToNode(t,e)},domScroll:function(t,e){return this.$.strategy.domScroll&&e.originator==this&&this.$.strategy.scroll(t,e),this.doScroll(e),!0},shouldStopScrollEvent:function(t){return this.preventScrollPropagation&&t.originator.owner!=this.$.strategy},scrollStart:function(t,e){return this.shouldStopScrollEvent(e)},scroll:function(t,e){return e.dispatchTarget?this.preventScrollPropagation&&!(e.originator==this||e.originator.owner==this.$.strategy):this.shouldStopScrollEvent(e)},scrollStop:function(t,e){return this.shouldStopScrollEvent(e)},scrollToTop:function(){this.setScrollTop(0)},scrollToBottom:function(){this.setScrollTop(this.getScrollBounds().maxTop)},scrollToRight:function(){this.setScrollLeft(this.getScrollBounds().maxLeft)},scrollToLeft:function(){this.setScrollLeft(0)},stabilize:function(){var t=this.getStrategy();t.stabilize&&t.stabilize()},useMouseWheelChanged:function(){this.$.strategy.setUseMouseWheel(this.useMouseWheel)}}),enyo.Scroller.hasTouchScrolling()&&(enyo.Scroller.prototype.strategyKind=enyo.Scroller.getTouchStrategy());

// Animator.js
enyo.kind({name:"enyo.Animator",kind:"Component",published:{duration:350,startValue:0,endValue:1,node:null,easingFunction:enyo.easing.cubicOut},events:{onStep:"",onEnd:"",onStop:""},constructed:function(){this.inherited(arguments),this._next=this.bindSafely("next")},destroy:function(){this.stop(),this.inherited(arguments)},play:function(t){return this.stop(),this.reversed=!1,t&&enyo.mixin(this,t),this.t0=this.t1=enyo.now(),this.value=this.startValue,this.job=!0,this.next(),this},stop:function(){return this.isAnimating()?(this.cancel(),this.fire("onStop"),this):void 0},reverse:function(){if(this.isAnimating()){this.reversed=!this.reversed;var t=this.t1=enyo.now(),e=t-this.t0;this.t0=t+e-this.duration;var n=this.startValue;return this.startValue=this.endValue,this.endValue=n,this}},isAnimating:function(){return Boolean(this.job)},requestNext:function(){this.job=enyo.requestAnimationFrame(this._next,this.node)},cancel:function(){enyo.cancelRequestAnimationFrame(this.job),this.node=null,this.job=null},shouldEnd:function(){return this.dt>=this.duration},next:function(){this.t1=enyo.now(),this.dt=this.t1-this.t0;var t=this.fraction=enyo.easedLerp(this.t0,this.duration,this.easingFunction,this.reversed);this.value=this.startValue+t*(this.endValue-this.startValue),t>=1||this.shouldEnd()?(this.value=this.endValue,this.fraction=1,this.fire("onStep"),this.fire("onEnd"),this.cancel()):(this.fire("onStep"),this.requestNext())},fire:function(t){var e=this[t];enyo.isString(e)?this.bubble(t):e&&e.call(this.context||window,this)}});

// BaseLayout.js
enyo.kind({name:"enyo.BaseLayout",kind:enyo.Layout,layoutClass:"enyo-positioned",reflow:function(){enyo.forEach(this.container.children,function(t){null!==t.fit&&t.addRemoveClass("enyo-fit",t.fit)},this)}});

// Image.js
enyo.kind({name:"enyo.Image",noEvents:!1,tag:"img",attributes:{draggable:"false"},create:function(){this.noEvents&&(delete this.attributes.onload,delete this.attributes.onerror),this.inherited(arguments)},rendered:function(){this.inherited(arguments),enyo.makeBubble(this,"load","error")}});

// Input.js
enyo.kind({name:"enyo.Input",published:{value:"",placeholder:"",type:"",disabled:!1,selectOnFocus:!1},events:{onDisabledChange:""},defaultFocus:!1,tag:"input",classes:"enyo-input",handlers:{onfocus:"focused",oninput:"input",onclear:"clear",ondragstart:"dragstart"},create:function(){enyo.platform.ie&&(this.handlers.onkeyup="iekeyup"),enyo.platform.windowsPhone&&(this.handlers.onkeydown="iekeydown"),this.inherited(arguments),this.placeholderChanged(),this.type&&this.typeChanged(),this.valueChanged()},rendered:function(){this.inherited(arguments),enyo.makeBubble(this,"focus","blur"),8==enyo.platform.ie&&this.setAttribute("onchange",enyo.bubbler),this.disabledChanged(),this.defaultFocus&&this.focus()},typeChanged:function(){this.setAttribute("type",this.type)},placeholderChanged:function(){this.setAttribute("placeholder",this.placeholder)},disabledChanged:function(){this.setAttribute("disabled",this.disabled),this.bubble("onDisabledChange")},valueChanged:function(){this.setAttribute("value",this.value),this.getNodeProperty("value",this.value)!==this.value&&this.setNodeProperty("value",this.value)},iekeyup:function(t,e){var n=enyo.platform.ie,i=e.keyCode;(8>=n||9==n&&(8==i||46==i))&&this.bubble("oninput",e)},iekeydown:function(t,e){var n=enyo.platform.windowsPhone,i=e.keyCode,o=e.dispatchTarget;8>=n&&13==i&&"input"==this.tag&&o.hasNode()&&o.node.blur()},clear:function(){this.setValue("")},dragstart:function(){return this.hasFocus()},focused:function(){this.selectOnFocus&&enyo.asyncMethod(this,"selectContents")},selectContents:function(){var t=this.hasNode();if(t&&t.setSelectionRange)t.setSelectionRange(0,t.value.length);else if(t&&t.createTextRange){var e=t.createTextRange();e.expand("textedit"),e.select()}},input:function(){var t=this.getNodeProperty("value");this.setValue(t)}});

// RichText.js
enyo.kind({name:"enyo.RichText",classes:"enyo-richtext enyo-selectable",published:{allowHtml:!0,disabled:!1,value:""},defaultFocus:!1,statics:{osInfo:[{os:"android",version:3},{os:"ios",version:5}],hasContentEditable:function(){for(var t,e=0;t=enyo.RichText.osInfo[e];e++)if(enyo.platform[t.os]<t.version)return!1;return!0}},kind:enyo.Input,attributes:{contenteditable:!0},handlers:{onfocus:"focusHandler",onblur:"blurHandler"},create:function(){this.setTag(enyo.RichText.hasContentEditable()?"div":"textarea"),this.inherited(arguments)},focusHandler:function(){this._value=this.getValue()},blurHandler:function(){this._value!==this.getValue()&&this.bubble("onchange")},valueChanged:function(){this.hasFocus()?(this.selectAll(),this.insertAtCursor(this.value)):this.set("content",this.get("value"))},getValue:function(){return this.hasNode()?this.node.innerHTML:void 0},hasFocus:function(){return this.hasNode()?document.activeElement===this.node:void 0},getSelection:function(){return this.hasFocus()?window.getSelection():void 0},removeSelection:function(t){var e=this.getSelection();e&&e[t?"collapseToStart":"collapseToEnd"]()},modifySelection:function(t,e,n){var i=this.getSelection();i&&i.modify(t||"move",e,n)},moveCursor:function(t,e){this.modifySelection("move",t,e)},moveCursorToEnd:function(){this.moveCursor("forward","documentboundary")},moveCursorToStart:function(){this.moveCursor("backward","documentboundary")},selectAll:function(){this.hasFocus()&&document.execCommand("selectAll")},insertAtCursor:function(t){if(this.hasFocus()){var e=this.allowHtml?t:enyo.Control.escapeHtml(t).replace(/\n/g,"<br/>");document.execCommand("insertHTML",!1,e)}}});

// TextArea.js
enyo.kind({name:"enyo.TextArea",kind:enyo.Input,tag:"textarea",classes:"enyo-textarea",rendered:function(){this.inherited(arguments),this.valueChanged()}});

// Select.js
enyo.kind({name:"enyo.Select",published:{selected:0},handlers:{onchange:"change"},tag:"select",defaultKind:"enyo.Option",rendered:function(){this.inherited(arguments),8==enyo.platform.ie&&this.setAttribute("onchange",enyo.bubbler),this.selectedChanged()},getSelected:function(){return Number(this.getNodeProperty("selectedIndex",this.selected))},selectedChanged:function(){this.setNodeProperty("selectedIndex",this.selected)},change:function(){this.selected=this.getSelected()},render:function(){enyo.platform.ie?this.parent.render():this.inherited(arguments)},getValue:function(){return this.hasNode()?this.node.value:void 0}}),enyo.kind({name:"enyo.Option",published:{value:""},tag:"option",create:function(){this.inherited(arguments),this.valueChanged()},valueChanged:function(){this.setAttribute("value",this.value)}}),enyo.kind({name:"enyo.OptionGroup",published:{label:""},tag:"optgroup",defaultKind:"enyo.Option",create:function(){this.inherited(arguments),this.labelChanged()},labelChanged:function(){this.setAttribute("label",this.label)}});

// Group.js
enyo.kind({name:"enyo.Group",published:{highlander:!0,active:null},handlers:{onActivate:"activate"},activate:function(t,e){this.highlander&&(e.originator.active?this.setActive(e.originator):e.originator==this.active&&this.active.setActive(!0))},activeChanged:function(t){t&&(t.setActive(!1),t.removeClass("active")),this.active&&this.active.addClass("active")}});

// GroupItem.js
enyo.kind({name:"enyo.GroupItem",published:{active:!1},rendered:function(){this.inherited(arguments),this.activeChanged()},activeChanged:function(){this.bubble("onActivate")}});

// ToolDecorator.js
enyo.kind({name:"enyo.ToolDecorator",kind:enyo.GroupItem,classes:"enyo-tool-decorator"});

// Button.js
enyo.kind({name:"enyo.Button",kind:enyo.ToolDecorator,tag:"button",attributes:{type:"button"},published:{disabled:!1},create:function(){this.inherited(arguments),this.disabledChanged()},disabledChanged:function(){this.setAttribute("disabled",this.disabled)},tap:function(){return this.disabled?!0:(this.setActive(!0),void 0)}});

// Checkbox.js
enyo.kind({name:"enyo.Checkbox",kind:enyo.Input,classes:"enyo-checkbox",events:{onActivate:""},published:{checked:!1,active:!1,type:"checkbox"},kindClasses:"",handlers:{onchange:"change",onclick:"click"},create:function(){this.inherited(arguments)},rendered:function(){this.inherited(arguments),this.active&&this.activeChanged(),this.checkedChanged()},checkedChanged:function(){this.setNodeProperty("checked",this.checked),this.setAttribute("checked",this.checked?"checked":""),this.setActive(this.checked)},activeChanged:function(){this.active=enyo.isTrue(this.active),this.setChecked(this.active),this.bubble("onActivate")},setValue:function(t){this.setChecked(enyo.isTrue(t))},getValue:function(){return this.getChecked()},valueChanged:function(){},change:function(){var t=enyo.isTrue(this.getNodeProperty("checked"));this.setActive(t)},click:function(t,e){8>=enyo.platform.ie&&this.bubble("onchange",e)}});

// Repeater.js
enyo.kind({name:"enyo.Repeater",published:{count:0},events:{onSetupItem:""},create:function(){this.inherited(arguments),this.countChanged()},initComponents:function(){this.itemComponents=this.components||this.kindComponents,this.components=this.kindComponents=null,this.inherited(arguments)},countChanged:function(){this.build()},itemAtIndex:function(t){return this.controlAtIndex(t)},build:function(){this.destroyClientControls();for(var t,e=0;this.count>e;e++)t=this.createComponent({kind:"enyo.OwnerProxy",index:e}),t.createComponents(this.itemComponents),this.doSetupItem({index:e,item:t});this.render()},renderRow:function(t){var e=this.itemAtIndex(t);this.doSetupItem({index:t,item:e})}}),enyo.kind({name:"enyo.OwnerProxy",tag:null,decorateEvent:function(t,e){e&&(e.index=this.index,e.delegate&&e.delegate.owner===this&&(e.delegate=this.owner)),this.inherited(arguments)},delegateEvent:function(t,e,n,i,o){return t==this&&(t=this.owner.owner),this.inherited(arguments,[t,e,n,i,o])}});

// DragAvatar.js
enyo.kind({name:"enyo._DragAvatar",style:"position: absolute; z-index: 10; pointer-events: none; cursor: move;",showing:!1,showingChanged:function(){this.inherited(arguments),document.body.style.cursor=this.showing?"move":null}}),enyo.kind({name:"enyo.DragAvatar",kind:enyo.Component,published:{showing:!1,offsetX:20,offsetY:30},initComponents:function(){this.avatarComponents=this.components,this.components=null,this.inherited(arguments)},requireAvatar:function(){this.avatar||(this.avatar=this.createComponent({kind:enyo._DragAvatar,parentNode:document.body,showing:!1,components:this.avatarComponents}).render())},showingChanged:function(){this.avatar.setShowing(this.showing),document.body.style.cursor=this.showing?"move":null},drag:function(t){this.requireAvatar(),this.avatar.setBounds({top:t.pageY-this.offsetY,left:t.pageX+this.offsetX}),this.show()},show:function(){this.setShowing(!0)},hide:function(){this.setShowing(!1)}});

// FloatingLayer.js
enyo.kind({name:"enyo.FloatingLayer",create:function(){this.inherited(arguments),this.setParent(null)},hasNode:function(){return this.inherited(arguments),this.node&&!this.node.parentNode&&this.teardownRender(),this.node},render:function(){return this.parentNode=document.body,this.inherited(arguments)},generateInnerHtml:function(){return""},beforeChildRender:function(){this.hasNode()||this.render()},teardownChildren:function(){}}),enyo.floatingLayer=new enyo.FloatingLayer;

// Popup.js
enyo.kind({name:"enyo.Popup",classes:"enyo-popup enyo-no-touch-action",published:{modal:!1,autoDismiss:!0,floating:!1,centered:!1},showing:!1,handlers:{ondown:"down",onkeydown:"keydown",ondragstart:"dragstart",onfocus:"focus",onblur:"blur",onRequestShow:"requestShow",onRequestHide:"requestHide"},captureEvents:!0,events:{onShow:"",onHide:""},tools:[{kind:"Signals",onKeydown:"keydown"}],create:function(){this.inherited(arguments),this.canGenerate=!this.floating},render:function(){this.floating&&(enyo.floatingLayer.hasNode()||enyo.floatingLayer.render(),this.parentNode=enyo.floatingLayer.hasNode()),this.inherited(arguments)},destroy:function(){this.showing&&this.release(),this.inherited(arguments)},reflow:function(){this.updatePosition(),this.inherited(arguments)},calcViewportSize:function(){if(window.innerWidth)return{width:window.innerWidth,height:window.innerHeight};var t=document.documentElement;return{width:t.offsetWidth,height:t.offsetHeight}},updatePosition:function(){var t=this.calcViewportSize(),e=this.getBounds();if(this.targetPosition){var n=this.targetPosition;"number"==typeof n.left?n.left+e.width>t.width?(n.right=n.left-e.width>=0?t.width-n.left:0,n.left=null):n.right=null:"number"==typeof n.right&&(n.right+e.width>t.width?(n.left=n.right-e.width>=0?t.width-n.right:0,n.right=null):n.left=null),"number"==typeof n.top?n.top+e.height>t.height?(n.bottom=n.top-e.height>=0?t.height-n.top:0,n.top=null):n.bottom=null:"number"==typeof n.bottom&&(n.bottom+e.height>t.height?(n.top=n.bottom-e.height>=0?t.height-n.bottom:0,n.bottom=null):n.top=null),this.addStyles("left: "+(null!==n.left?n.left+"px":"initial")+"; right: "+(null!==n.right?n.right+"px":"initial")+"; top: "+(null!==n.top?n.top+"px":"initial")+"; bottom: "+(null!==n.bottom?n.bottom+"px":"initial")+";")}else this.centered&&this.addStyles("top: "+Math.max((t.height-e.height)/2,0)+"px; left: "+Math.max((t.width-e.width)/2,0)+"px;")},showingChanged:function(){this.floating&&this.showing&&!this.hasNode()&&this.render(),(this.centered||this.targetPosition)&&(this.applyStyle("visibility","hidden"),this.addStyles("top: 0px; left: 0px; right: initial; bottom: initial;")),this.inherited(arguments),this.showing?(this.resized(),this.captureEvents&&this.capture()):this.captureEvents&&this.release(),(this.centered||this.targetPosition)&&this.applyStyle("visibility",null),this.hasNode()&&this[this.showing?"doShow":"doHide"]()},capture:function(){enyo.dispatcher.capture(this,!this.modal)},release:function(){enyo.dispatcher.release()},down:function(t,e){this.downEvent=e,this.modal&&!e.dispatchTarget.isDescendantOf(this)&&e.preventDefault()},tap:function(t,e){return this.autoDismiss&&!e.dispatchTarget.isDescendantOf(this)&&this.downEvent&&!this.downEvent.dispatchTarget.isDescendantOf(this)?(this.downEvent=null,this.hide(),!0):void 0},dragstart:function(t,e){var n=e.dispatchTarget===this||e.dispatchTarget.isDescendantOf(this);return t.autoDismiss&&!n&&t.setShowing(!1),!0},keydown:function(t,e){this.showing&&this.autoDismiss&&27==e.keyCode&&this.hide()},blur:function(t,e){e.dispatchTarget.isDescendantOf(this)&&(this.lastFocus=e.originator)},focus:function(t,e){var n=e.dispatchTarget;if(this.modal&&!n.isDescendantOf(this)){n.hasNode()&&n.node.blur();var i=this.lastFocus&&this.lastFocus.hasNode()||this.hasNode();i&&i.focus()}},requestShow:function(){return this.show(),!0},requestHide:function(){return this.hide(),!0},showAtEvent:function(t,e){var n={left:t.centerX||t.clientX||t.pageX,top:t.centerY||t.clientY||t.pageY};e&&(n.left+=e.left||0,n.top+=e.top||0),this.showAtPosition(n)},showAtPosition:function(t){this.targetPosition=t,this.show()}});

// Selection.js
enyo.kind({name:"enyo.Selection",kind:enyo.Component,published:{multi:!1},events:{onSelect:"",onDeselect:"",onChange:""},create:function(){this.clear(),this.inherited(arguments)},multiChanged:function(){this.multi||this.clear(),this.doChange()},highlander:function(){this.multi||this.deselect(this.lastSelected)},clear:function(){this.selected={}},isSelected:function(t){return this.selected[t]},setByKey:function(t,e,n){if(e)this.selected[t]=n||!0,this.lastSelected=t,this.doSelect({key:t,data:this.selected[t]});else{var i=this.isSelected(t);delete this.selected[t],this.doDeselect({key:t,data:i})}this.doChange()},deselect:function(t){this.isSelected(t)&&this.setByKey(t,!1)},select:function(t,e){this.multi?this.setByKey(t,!this.isSelected(t),e):this.isSelected(t)||(this.highlander(),this.setByKey(t,!0,e))},toggle:function(t,e){this.multi||this.lastSelected==t||this.deselect(this.lastSelected),this.setByKey(t,!this.isSelected(t),e)},getSelected:function(){return this.selected},remove:function(t){var e={};for(var n in this.selected)t>n?e[n]=this.selected[n]:n>t&&(e[n-1]=this.selected[n]);this.selected=e}});

// Drawer.js
enyo.kind({name:"enyo.Drawer",published:{open:!0,orient:"v",animated:!0},style:"overflow: hidden; position: relative;",tools:[{kind:"Animator",onStep:"animatorStep",onEnd:"animatorEnd"},{name:"client",style:"position: relative;",classes:"enyo-border-box"}],create:function(){this.inherited(arguments),this.animatedChanged(),this.openChanged()},initComponents:function(){this.createChrome(this.tools),this.inherited(arguments)},animatedChanged:function(){!this.animated&&this.hasNode()&&this.$.animator.isAnimating()&&(this.$.animator.stop(),this.animatorEnd())},openChanged:function(){if(this.$.client.show(),this.hasNode())if(this.$.animator.isAnimating())this.$.animator.reverse();else{var t="v"==this.orient,e=t?"height":"width",n=t?"top":"left";this.applyStyle(e,null);var i=this.hasNode()[t?"scrollHeight":"scrollWidth"];this.animated?this.$.animator.play({startValue:this.open?0:i,endValue:this.open?i:0,dimension:e,position:n}):this.animatorEnd()}else this.$.client.setShowing(this.open)},animatorStep:function(t){if(this.hasNode()){var e=t.dimension;this.node.style[e]=this.domStyles[e]=t.value+"px"}var n=this.$.client.hasNode();if(n){var i=t.position,o=this.open?t.endValue:t.startValue;n.style[i]=this.$.client.domStyles[i]=t.value-o+"px"}this.container&&this.container.resized()},animatorEnd:function(){if(this.open){this.$.client.domCssText=enyo.Control.domStylesToCssText(this.$.client.domStyles);var t="v"==this.orient,e=t?"height":"width",n=t?"top":"left",i=this.$.client.hasNode();i&&(i.style[n]=this.$.client.domStyles[n]=null),this.node&&(this.node.style[e]=this.domStyles[e]=null)}else this.$.client.hide();this.container&&this.container.resized()}});

// wip.js
enyo.kind({name:"wip.Repeater",kind:"enyo.View",defaultChildController:"enyo.ObjectController",childMixins:["enyo.AutoBindingSupport"],concat:["childMixins"],handlers:{didadd:"repeaterDidAdd",didremove:"repeaterDidRemove",didreset:"repeaterDidReset",didchange:"repeaterDidChange"},bindings:[{from:".controller.data",to:".data"}],length:enyo.computed(function(){return(this.get("data")||[]).length},"data"),prune:function(){for(var t=this.getClientControls(),e=this.get("length"),n=0,i=t.slice(e),o=i.length;o>n;++n)i[n].destroy()},sync:function(t,e){for(var n=t||0,i=e||this.get("length")-1,o=this.get("data");i>=n;++n)this.update(n,o)},update:function(t,e){t=parseInt(t);var n=this.getClientControls(),e=e?e.length?e[t]:e:this.get("data")[t],i=n[t],o=this.get("length");0>t||t>=o||(!e&&i?this.remove(t):e&&!i?this.add(t,e):e&&i&&i.controller.set("data",e))},remove:function(t){this.log(t)},add:function(t,e){var n,i=this.getClientControls(),o=i.length,e=e||this.get("data")[t],s=this.child;if(o!==t)throw"add was called for index other than the end";n=this.createComponent({kind:s}),n.controller.set("data",e),n.render()},create:function(){this.inherited(arguments),this.sync()},initComponents:function(){var t=this.kindComponents||this.components||[],e=function(t){return t.length>1?{components:t}:enyo.clone(t[0])}(t),n=e.mixins||[];e.mixins=enyo.merge(n,this.childMixins),this.kindComponents=this.components=null,this.inherited(arguments),delete e.name,e.kind=e.kind||"enyo.View",this.child=enyo.kind(e),this.child.prototype.controller||(this.child.prototype.controller=this.defaultChildController)},repeaterDidAdd:function(t,e){for(var n,i=e.values,o=enyo.keys(i),s=0,r=o.length;r>s;++s)n=o[s],this.update(n,i[n])},repeaterDidRemove:function(t,e){for(var n,i=e.values,o=enyo.keys(i),s=o.length,r=0,a=this.get("data");s>r;++r)n=o[r],this.update(n,a[n]);this.prune()},repeaterDidChange:function(t,e){for(var n,i,o=e.values,s=enyo.keys(o),r=s.length,a=this.getClientControls(),h=0;r>h;++h)n=s[h],i=a[n],i&&i.controller.set("data",o[n])},repeaterDidReset:function(){this.sync(),this.prune()}});
