";
	case "object":
		if(o instanceof Array) {
			if(o.__enum__) {
				if(o.length == 2) {
					return o[0];
				}
				var str = o[0] + "(";
				s += "\t";
				var _g1 = 2;
				var _g = o.length;
				while(_g1 < _g) {
					var i = _g1++;
					if(i != 2) {
						str += "," + Boot.__string_rec(o[i],s);
					} else {
						str += Boot.__string_rec(o[i],s);
					}
				}
				return str + ")";
			}
			var l = o.length;
			var i1;
			var str1 = "[";
			s += "\t";
			var _g11 = 0;
			var _g2 = l;
			while(_g11 < _g2) {
				var i2 = _g11++;
				str1 += (i2 > 0 ? "," : "") + Boot.__string_rec(o[i2],s);
			}
			str1 += "]";
			return str1;
		}
		var tostr;
		try {
			tostr = o.toString;
		} catch( e ) {
			return "???";
		}
		if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
			var s2 = o.toString();
			if(s2 != "[object Object]") {
				return s2;
			}
		}
		var k = null;
		var str2 = "{\n";
		s += "\t";
		var hasp = o.hasOwnProperty != null;
		for( var k in o ) {
		if(hasp && !o.hasOwnProperty(k)) {
			continue;
		}
		if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
			continue;
		}
		if(str2.length != 2) {
			str2 += ", \n";
		}
		str2 += s + k + " : " + Boot.__string_rec(o[k],s);
		}
		s = s.substring(1);
		str2 += "\n" + s + "}";
		return str2;
	case "string":
		return o;
	default:
		return String(o);
	}
}
Boot.__interfLoop = function(cc,cl) {
	if(cc == null) {
		return false;
	}
	if(cc == cl) {
		return true;
	}
	var intf = cc.__interfaces__;
	if(intf != null) {
		var _g1 = 0;
		var _g = intf.length;
		while(_g1 < _g) {
			var i = _g1++;
			var i1 = intf[i];
			if(i1 == cl || Boot.__interfLoop(i1,cl)) {
				return true;
			}
		}
	}
	return Boot.__interfLoop(cc.__super__,cl);
}
Boot.__instanceof = function(o,cl) {
	if(cl == null) {
		return false;
	}
	switch(cl) {
	case Array:
		if((o instanceof Array)) {
			return o.__enum__ == null;
		} else {
			return false;
		}
		break;
	case $hxClasses["Bool"]:
		return typeof(o) == "boolean";
	case $hxClasses["Dynamic"]:
		return true;
	case $hxClasses["Float"]:
		return typeof(o) == "number";
	case $hxClasses["Int"]:
		if(typeof(o) == "number") {
			return (o|0) === o;
		} else {
			return false;
		}
		break;
	case String:
		return typeof(o) == "string";
	default:
		if(o != null) {
			if(typeof(cl) == "function") {
				if(o instanceof cl) {
					return true;
				}
				if(Boot.__interfLoop(Boot.getClass(o),cl)) {
					return true;
				}
			} else if(typeof(cl) == "object" && Boot.__isNativeObj(cl)) {
				if(o instanceof cl) {
					return true;
				}
			}
		} else {
			return false;
		}
		if(cl == $hxClasses["Class"] ? o.__name__ != null : false) {
			return true;
		}
		if(cl == $hxClasses["Enum"] ? o.__ename__ != null : false) {
			return true;
		}
		return o.__enum__ == cl;
	}
}
Boot.__cast = function(o,t) {
	if(Boot.__instanceof(o,t)) {
		return o;
	} else {
		throw new (js__$Boot_HaxeError().default)("Cannot cast " + (Std().default).string(o) + " to " + (Std().default).string(t));
	}
}
Boot.__nativeClassName = function(o) {
	var name = Boot.__toStr.call(o).slice(8,-1);
	if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") {
		return null;
	}
	return name;
}
Boot.__isNativeObj = function(o) {
	return Boot.__nativeClassName(o) != null;
}
Boot.__resolveNativeClass = function(name) {
	return $global[name];
}
Boot.__toStr = ({ }).toString
// Export
exports.default = Boot;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._Vector.Vector_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_VectorData() {return __webpack_require__(90);}
// Constructor
var Vector_Impl_ = function(){}
// Meta
Vector_Impl_.__name__ = ["openfl","_Vector","Vector_Impl_"];
Vector_Impl_.prototype = {
	
};
Vector_Impl_.prototype.__class__ = $hxClasses["openfl._Vector.Vector_Impl_"] = Vector_Impl_;
// Init
// Statics
Vector_Impl_._new = function(length,fixed,array) {
	var this1;
	if(array != null) {
		this1 = (openfl_VectorData().default).ofArray(array);
	} else {
		this1 = new (openfl_VectorData().default)(length,fixed);
	}
	return this1;
}
Vector_Impl_.concat = function(this1,a) {
	return this1.concat(a);
}
Vector_Impl_.copy = function(this1) {
	return this1.copy();
}
Vector_Impl_.get = function(this1,index) {
	return this1.get(index);
}
Vector_Impl_.indexOf = function(this1,x,from) {
	if(from == null) {
		from = 0;
	}
	return this1.indexOf(x,from);
}
Vector_Impl_.insertAt = function(this1,index,element) {
	this1.insertAt(index,element);
}
Vector_Impl_.iterator = function(this1) {
	return this1.iterator();
}
Vector_Impl_.join = function(this1,sep) {
	if(sep == null) {
		sep = ",";
	}
	return this1.join(sep);
}
Vector_Impl_.lastIndexOf = function(this1,x,from) {
	return this1.lastIndexOf(x,from);
}
Vector_Impl_.pop = function(this1) {
	return this1.pop();
}
Vector_Impl_.push = function(this1,x) {
	return this1.push(x);
}
Vector_Impl_.removeAt = function(this1,index) {
	return this1.removeAt(index);
}
Vector_Impl_.reverse = function(this1) {
	return this1.reverse();
}
Vector_Impl_.set = function(this1,index,value) {
	return this1.set(index,value);
}
Vector_Impl_.shift = function(this1) {
	return this1.shift();
}
Vector_Impl_.slice = function(this1,pos,end) {
	return this1.slice(pos,end);
}
Vector_Impl_.sort = function(this1,f) {
	this1.sort(f);
}
Vector_Impl_.splice = function(this1,pos,len) {
	return this1.splice(pos,len);
}
Vector_Impl_.toString = function(this1) {
	if(this1 != null) {
		return this1.toString();
	} else {
		return null;
	}
}
Vector_Impl_.unshift = function(this1,x) {
	this1.unshift(x);
}
Vector_Impl_.ofArray = function(a) {
	return (openfl_VectorData().default).ofArray(a);
}
Vector_Impl_.convert = function(v) {
	return v;
}
Vector_Impl_.get_fixed = function(this1) {
	return this1.fixed;
}
Vector_Impl_.set_fixed = function(this1,value) {
	return this1.fixed = value;
}
Vector_Impl_.get_length = function(this1) {
	return this1.get_length();
}
Vector_Impl_.set_length = function(this1,value) {
	return this1.set_length(value);
}
// Export
exports.default = Vector_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.ds.IntMap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_IMap() {return __webpack_require__(107);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var IntMap = function() {
	this.h = { };
}
// Meta
IntMap.__name__ = ["haxe","ds","IntMap"];
IntMap.__interfaces__ = [(haxe_IMap().default)];
IntMap.prototype = {
	set: function(key,value) {
		this.h[key] = value;
	},
	get: function(key) {
		return this.h[key];
	},
	exists: function(key) {
		return this.h.hasOwnProperty(key);
	},
	remove: function(key) {
		if(!this.h.hasOwnProperty(key)) {
			return false;
		}
		delete(this.h[key]);
		return true;
	},
	keys: function() {
		var a = [];
		for( var key in this.h ) if(this.h.hasOwnProperty(key)) {
			a.push(key | 0);
		}
		return (HxOverrides().default).iter(a);
	},
	iterator: function() {
		return { ref : this.h, it : this.keys(), hasNext : function() {
			return this.it.hasNext();
		}, next : function() {
			var i = this.it.next();
			return this.ref[i];
		}};
	}
};
IntMap.prototype.__class__ = $hxClasses["haxe.ds.IntMap"] = IntMap;
// Init
// Statics
// Export
exports.default = IntMap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.Log
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js__$Boot_HaxeError() {return __webpack_require__(6);}
// Constructor
var Log = function(){}
// Meta
Log.__name__ = ["lime","utils","Log"];
Log.prototype = {
	
};
Log.prototype.__class__ = $hxClasses["lime.utils.Log"] = Log;
// Init
{
	Log.level = 3;
	if(typeof console == "undefined") {
		console = {}
	}
	if(console.log == null) {
		console.log = function() {
		};
	}
};
// Statics
Log.debug = function(message,info) {
	if(Log.level >= 4) {
		console.debug("[" + info.className + "] " + message);
	}
}
Log.error = function(message,info) {
	if(Log.level >= 1) {
		var message1 = "[" + info.className + "] ERROR: " + message;
		if(Log.throwErrors) {
			throw new (js__$Boot_HaxeError().default)(message1);
		} else {
			console.error(message1);
		}
	}
}
Log.info = function(message,info) {
	if(Log.level >= 3) {
		console.info("[" + info.className + "] " + message);
	}
}
Log.print = function(message) {
	console.log(message);
}
Log.println = function(message) {
	console.log(message);
}
Log.verbose = function(message,info) {
	if(Log.level >= 5) {
		Log.println("[" + info.className + "] " + message);
	}
}
Log.warn = function(message,info) {
	if(Log.level >= 2) {
		console.warn("[" + info.className + "] WARNING: " + message);
	}
}
Log.throwErrors = true
// Export
exports.default = Log;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app.Future
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function lime_utils_Log() {return __webpack_require__(23);}
function lime_app_Promise() {return __webpack_require__(39);}
function lime_app__$Future_FutureWork() {return __webpack_require__(274);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
// Constructor
var Future = function(work,async) {
	if(async == null) {
		async = false;
	}
	if(work != null) {
		if(async) {
			var promise = new (lime_app_Promise().default)();
			promise.future = this;
			(lime_app__$Future_FutureWork().default).queue({ promise : promise, work : work});
		} else {
			try {
				this.value = work();
				this.isComplete = true;
			} catch( e ) {
				if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
				this.error = e;
				this.isError = true;
			}
		}
	}
}
// Meta
Future.__name__ = ["lime","app","Future"];
Future.prototype = {
	onComplete: function(listener) {
		if(listener != null) {
			if(this.isComplete) {
				listener(this.value);
			} else if(!this.isError) {
				if(this.__completeListeners == null) {
					this.__completeListeners = [];
				}
				this.__completeListeners.push(listener);
			}
		}
		return this;
	},
	onError: function(listener) {
		if(listener != null) {
			if(this.isError) {
				listener(this.error);
			} else if(!this.isComplete) {
				if(this.__errorListeners == null) {
					this.__errorListeners = [];
				}
				this.__errorListeners.push(listener);
			}
		}
		return this;
	},
	onProgress: function(listener) {
		if(listener != null) {
			if(this.__progressListeners == null) {
				this.__progressListeners = [];
			}
			this.__progressListeners.push(listener);
		}
		return this;
	},
	ready: function(waitTime) {
		if(waitTime == null) {
			waitTime = -1;
		}
		if(this.isComplete || this.isError) {
			return this;
		} else {
			(lime_utils_Log().default).warn("Cannot block thread in JavaScript",{ fileName : "Future.hx", lineNumber : 157, className : "lime.app.Future", methodName : "ready"});
			return this;
		}
	},
	result: function(waitTime) {
		if(waitTime == null) {
			waitTime = -1;
		}
		this.ready(waitTime);
		if(this.isComplete) {
			return this.value;
		} else {
			return null;
		}
	},
	then: function(next) {
		if(this.isComplete) {
			return next(this.value);
		} else if(this.isError) {
			var future = new Future();
			future.onError(this.error);
			return future;
		} else {
			var promise = new (lime_app_Promise().default)();
			this.onError($bind(promise,promise.error));
			this.onProgress($bind(promise,promise.progress));
			this.onComplete(function(val) {
				var future1 = next(val);
				future1.onError($bind(promise,promise.error));
				future1.onComplete($bind(promise,promise.complete));
			});
			return promise.future;
		}
	}
};
Future.prototype.__class__ = $hxClasses["lime.app.Future"] = Future;
// Init
// Statics
Future.ofEvents = function(onComplete,onError,onProgress) {
	var promise = new (lime_app_Promise().default)();
	onComplete.add(function(data) {
		promise.complete(data);
	},true);
	if(onError != null) {
		onError.add(function(error) {
			promise.error(error);
		},true);
	}
	if(onProgress != null) {
		onProgress.add(function(progress,total) {
			promise.progress(progress,total);
		},true);
	}
	return promise.future;
}
Future.withError = function(error) {
	var future = new Future();
	future.isError = true;
	future.error = error;
	return future;
}
Future.withValue = function(value) {
	var future = new Future();
	future.isComplete = true;
	future.value = value;
	return future;
}
// Export
exports.default = Future;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.Lib
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_StringMap() {return __webpack_require__(18);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
function Std() {return __webpack_require__(4);}
function openfl_display_MovieClip() {return __webpack_require__(187);}
function Type() {return __webpack_require__(10);}
function lime_system_System() {return __webpack_require__(46);}
function openfl_net_URLVariables() {return __webpack_require__(134);}
function Reflect() {return __webpack_require__(5);}
function StringTools() {return __webpack_require__(12);}
function lime_utils_Log() {return __webpack_require__(23);}
function js_Browser() {return __webpack_require__(11);}
function openfl_net_URLLoader() {return __webpack_require__(79);}
function haxe_Timer() {return __webpack_require__(26);}
function haxe_Log() {return __webpack_require__(47);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
// Constructor
var Lib = function(){}
// Meta
Lib.__name__ = ["openfl","Lib"];
Lib.prototype = {
	
};
Lib.prototype.__class__ = $hxClasses["openfl.Lib"] = Lib;
// Init
Object.defineProperties(Lib,{ "application" : { get : function() {
	return Lib.get_application();
}}, "current" : { get : function() {
	return Lib.get_current();
}}});
// Statics
Lib.as = function(v,c) {
	if((Std().default)["is"](v,c)) {
		return v;
	} else {
		return null;
	}
}
Lib.attach = function(name) {
	return new (openfl_display_MovieClip().default)();
}
Lib.clearInterval = function(id) {
	if(Lib.__timers.exists(id)) {
		var timer = Lib.__timers.get(id);
		timer.stop();
		Lib.__timers.remove(id);
	}
}
Lib.clearTimeout = function(id) {
	if(Lib.__timers.exists(id)) {
		var timer = Lib.__timers.get(id);
		timer.stop();
		Lib.__timers.remove(id);
	}
}
Lib.getDefinitionByName = function(name) {
	return (Type().default).resolveClass(name);
}
Lib.getQualifiedClassName = function(value) {
	return (Type().default).getClassName((Type().default).getClass(value));
}
Lib.getQualifiedSuperclassName = function(value) {
	var ref = (Type().default).getSuperClass((Type().default).getClass(value));
	if(ref != null) {
		return (Type().default).getClassName(ref);
	} else {
		return null;
	}
}
Lib.getTimer = function() {
	return (lime_system_System().default).getTimer();
}
Lib.getURL = function(request,target) {
	Lib.navigateToURL(request,target);
}
Lib.navigateToURL = function(request,window) {
	if(window == null) {
		window = "_blank";
	}
	var uri = request.url;
	if((Std().default)["is"](request.data,(openfl_net_URLVariables().default))) {
		var query = "";
		var fields = (Reflect().default).fields(request.data);
		var _g = 0;
		while(_g < fields.length) {
			var field = fields[_g];
			++_g;
			if(query.length > 0) {
				query += "&";
			}
			query += (StringTools().default).urlEncode(field) + "=" + (StringTools().default).urlEncode((Std().default).string((Reflect().default).field(request.data,field)));
		}
		if(uri.indexOf("?") > -1) {
			uri += "&" + query;
		} else {
			uri += "?" + query;
		}
	}
	(lime_system_System().default).openURL(uri,window);
}
Lib.notImplemented = function(posInfo) {
	var api = posInfo.className + "." + posInfo.methodName;
	if(!Lib.__sentWarnings.exists(api)) {
		Lib.__sentWarnings.set(api,true);
		(lime_utils_Log().default).warn(posInfo.methodName + " is not implemented",posInfo);
	}
}
Lib.preventDefaultTouchMove = function() {
	(js_Browser().default).get_document().addEventListener("touchmove",function(evt) {
		evt.preventDefault();
	},false);
}
Lib.sendToURL = function(request) {
	var urlLoader = new (openfl_net_URLLoader().default)();
	urlLoader.load(request);
}
Lib.setInterval = function(closure,delay,args) {
	var id = ++Lib.__lastTimerID;
	var timer = new (haxe_Timer().default)(delay);
	Lib.__timers.set(id,timer);
	timer.run = function() {
		(Reflect().default).callMethod(closure,closure,args);
	};
	return id;
}
Lib.setTimeout = function(closure,delay,args) {
	var id = ++Lib.__lastTimerID;
	var this1 = Lib.__timers;
	var v = (haxe_Timer().default).delay(function() {
		(Reflect().default).callMethod(closure,closure,args);
	},delay);
	this1.set(id,v);
	return id;
}
Lib.trace = function(arg) {
	(haxe_Log().default).trace(arg,{ fileName : "Lib.hx", lineNumber : 282, className : "openfl.Lib", methodName : "trace"});
}
Lib.get_application = function() {
	return (openfl__$internal_Lib().default).application;
}
Lib.get_current = function() {
	if((openfl__$internal_Lib().default).current == null) {
		(openfl__$internal_Lib().default).current = new (openfl_display_MovieClip().default)();
	}
	return (openfl__$internal_Lib().default).current;
}
Lib.__lastTimerID = 0
Lib.__sentWarnings = new (haxe_ds_StringMap().default)()
Lib.__timers = new (haxe_ds_IntMap().default)()
// Export
exports.default = Lib;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.Timer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_Log() {return __webpack_require__(47);}
function js_Browser() {return __webpack_require__(11);}
// Constructor
var Timer = function(time_ms) {
	var me = this;
	this.id = setInterval(function() {
		me.run();
	},time_ms);
}
// Meta
Timer.__name__ = ["haxe","Timer"];
Timer.prototype = {
	stop: function() {
		if(this.id == null) {
			return;
		}
		clearInterval(this.id);
		this.id = null;
	},
	run: function() {
	}
};
Timer.prototype.__class__ = $hxClasses["haxe.Timer"] = Timer;
// Init
// Statics
Timer.delay = function(f,time_ms) {
	var t = new Timer(time_ms);
	t.run = function() {
		t.stop();
		f();
	};
	return t;
}
Timer.measure = function(f,pos) {
	var t0 = Timer.stamp();
	var r = f();
	(haxe_Log().default).trace(Timer.stamp() - t0 + "s",pos);
	return r;
}
Timer.stamp = function() {
	return (js_Browser().default).get_window().performance.now() / 1000;
}
// Export
exports.default = Timer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: EReg
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function HxOverrides() {return __webpack_require__(7);}
function StringBuf() {return __webpack_require__(31);}
// Constructor
var EReg = function(r,opt) {
	this.r = new RegExp(r,opt.split("u").join(""));
}
// Meta
EReg.__name__ = ["EReg"];
EReg.prototype = {
	match: function(s) {
		if(this.r.global) {
			this.r.lastIndex = 0;
		}
		this.r.m = this.r.exec(s);
		this.r.s = s;
		return this.r.m != null;
	},
	matched: function(n) {
		if(this.r.m != null && n >= 0 && n < this.r.m.length) {
			return this.r.m[n];
		} else {
			throw new (js__$Boot_HaxeError().default)("EReg::matched");
		}
	},
	matchedRight: function() {
		if(this.r.m == null) {
			throw new (js__$Boot_HaxeError().default)("No string matched");
		}
		var sz = this.r.m.index + this.r.m[0].length;
		return (HxOverrides().default).substr(this.r.s,sz,this.r.s.length - sz);
	},
	matchedPos: function() {
		if(this.r.m == null) {
			throw new (js__$Boot_HaxeError().default)("No string matched");
		}
		return { pos : this.r.m.index, len : this.r.m[0].length};
	},
	matchSub: function(s,pos,len) {
		if(len == null) {
			len = -1;
		}
		if(this.r.global) {
			this.r.lastIndex = pos;
			var tmp = this.r;
			var tmp1 = len < 0 ? s : (HxOverrides().default).substr(s,0,pos + len);
			this.r.m = tmp.exec(tmp1);
			var b = this.r.m != null;
			if(b) {
				this.r.s = s;
			}
			return b;
		} else {
			var b1 = this.match(len < 0 ? (HxOverrides().default).substr(s,pos,null) : (HxOverrides().default).substr(s,pos,len));
			if(b1) {
				this.r.s = s;
				this.r.m.index += pos;
			}
			return b1;
		}
	},
	split: function(s) {
		var d = "#__delim__#";
		return s.replace(this.r,d).split(d);
	},
	replace: function(s,by) {
		return s.replace(this.r,by);
	},
	map: function(s,f) {
		var offset = 0;
		var buf = new (StringBuf().default)();
		while(true) {
			if(offset >= s.length) {
				break;
			} else if(!this.matchSub(s,offset)) {
				buf.add((HxOverrides().default).substr(s,offset,null));
				break;
			}
			var p = this.matchedPos();
			buf.add((HxOverrides().default).substr(s,offset,p.pos - offset));
			buf.add(f(this));
			if(p.len == 0) {
				buf.add((HxOverrides().default).substr(s,p.pos,1));
				offset = p.pos + 1;
			} else {
				offset = p.pos + p.len;
			}
			if(!this.r.global) {
				break;
			}
		}
		if(!this.r.global && offset > 0 && offset < s.length) {
			buf.add((HxOverrides().default).substr(s,offset,null));
		}
		return buf.toString();
	}
};
EReg.prototype.__class__ = $hxClasses["EReg"] = EReg;
// Init
// Statics
// Export
exports.default = EReg;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 28 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.geom.Matrix
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_geom_Point() {return __webpack_require__(29);}
function Std() {return __webpack_require__(4);}
function lime_math_Matrix3() {return __webpack_require__(290);}
function lime_utils_ObjectPool() {return __webpack_require__(67);}
// Constructor
var Matrix = function(a,b,c,d,tx,ty) {
	if(ty == null) {
		ty = 0;
	}
	if(tx == null) {
		tx = 0;
	}
	if(d == null) {
		d = 1;
	}
	if(c == null) {
		c = 0;
	}
	if(b == null) {
		b = 0;
	}
	if(a == null) {
		a = 1;
	}
	this.a = a;
	this.b = b;
	this.c = c;
	this.d = d;
	this.tx = tx;
	this.ty = ty;
}
// Meta
Matrix.__name__ = ["openfl","geom","Matrix"];
Matrix.prototype = {
	clone: function() {
		return new Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty);
	},
	concat: function(m) {
		var a1 = this.a * m.a + this.b * m.c;
		this.b = this.a * m.b + this.b * m.d;
		this.a = a1;
		var c1 = this.c * m.a + this.d * m.c;
		this.d = this.c * m.b + this.d * m.d;
		this.c = c1;
		var tx1 = this.tx * m.a + this.ty * m.c + m.tx;
		this.ty = this.tx * m.b + this.ty * m.d + m.ty;
		this.tx = tx1;
	},
	copyColumnFrom: function(column,vector3D) {
		if(column > 2) {
			throw new (js__$Boot_HaxeError().default)("Column " + column + " out of bounds (2)");
		} else if(column == 0) {
			this.a = vector3D.x;
			this.c = vector3D.y;
		} else if(column == 1) {
			this.b = vector3D.x;
			this.d = vector3D.y;
		} else {
			this.tx = vector3D.x;
			this.ty = vector3D.y;
		}
	},
	copyColumnTo: function(column,vector3D) {
		if(column > 2) {
			throw new (js__$Boot_HaxeError().default)("Column " + column + " out of bounds (2)");
		} else if(column == 0) {
			vector3D.x = this.a;
			vector3D.y = this.c;
			vector3D.z = 0;
		} else if(column == 1) {
			vector3D.x = this.b;
			vector3D.y = this.d;
			vector3D.z = 0;
		} else {
			vector3D.x = this.tx;
			vector3D.y = this.ty;
			vector3D.z = 1;
		}
	},
	copyFrom: function(sourceMatrix) {
		this.a = sourceMatrix.a;
		this.b = sourceMatrix.b;
		this.c = sourceMatrix.c;
		this.d = sourceMatrix.d;
		this.tx = sourceMatrix.tx;
		this.ty = sourceMatrix.ty;
	},
	copyRowFrom: function(row,vector3D) {
		if(row > 2) {
			throw new (js__$Boot_HaxeError().default)("Row " + row + " out of bounds (2)");
		} else if(row == 0) {
			this.a = vector3D.x;
			this.c = vector3D.y;
		} else if(row == 1) {
			this.b = vector3D.x;
			this.d = vector3D.y;
		} else {
			this.tx = vector3D.x;
			this.ty = vector3D.y;
		}
	},
	copyRowTo: function(row,vector3D) {
		if(row > 2) {
			throw new (js__$Boot_HaxeError().default)("Row " + row + " out of bounds (2)");
		} else if(row == 0) {
			vector3D.x = this.a;
			vector3D.y = this.b;
			vector3D.z = this.tx;
		} else if(row == 1) {
			vector3D.x = this.c;
			vector3D.y = this.d;
			vector3D.z = this.ty;
		} else {
			vector3D.setTo(0,0,1);
		}
	},
	createBox: function(scaleX,scaleY,rotation,tx,ty) {
		if(ty == null) {
			ty = 0;
		}
		if(tx == null) {
			tx = 0;
		}
		if(rotation == null) {
			rotation = 0;
		}
		if(rotation != 0) {
			var cos = Math.cos(rotation);
			var sin = Math.sin(rotation);
			this.a = cos * scaleX;
			this.b = sin * scaleY;
			this.c = -sin * scaleX;
			this.d = cos * scaleY;
		} else {
			this.a = scaleX;
			this.b = 0;
			this.c = 0;
			this.d = scaleY;
		}
		this.tx = tx;
		this.ty = ty;
	},
	createGradientBox: function(width,height,rotation,tx,ty) {
		if(ty == null) {
			ty = 0;
		}
		if(tx == null) {
			tx = 0;
		}
		if(rotation == null) {
			rotation = 0;
		}
		this.a = width / 1638.4;
		this.d = height / 1638.4;
		if(rotation != 0) {
			var cos = Math.cos(rotation);
			var sin = Math.sin(rotation);
			this.b = sin * this.d;
			this.c = -sin * this.a;
			this.a *= cos;
			this.d *= cos;
		} else {
			this.b = 0;
			this.c = 0;
		}
		this.tx = tx + width / 2;
		this.ty = ty + height / 2;
	},
	deltaTransformPoint: function(point) {
		return new (openfl_geom_Point().default)(point.x * this.a + point.y * this.c,point.x * this.b + point.y * this.d);
	},
	equals: function(matrix) {
		if(matrix != null && this.tx == matrix.tx && this.ty == matrix.ty && this.a == matrix.a && this.b == matrix.b && this.c == matrix.c) {
			return this.d == matrix.d;
		} else {
			return false;
		}
	},
	identity: function() {
		this.a = 1;
		this.b = 0;
		this.c = 0;
		this.d = 1;
		this.tx = 0;
		this.ty = 0;
	},
	invert: function() {
		var norm = this.a * this.d - this.b * this.c;
		if(norm == 0) {
			this.a = this.b = this.c = this.d = 0;
			this.tx = -this.tx;
			this.ty = -this.ty;
		} else {
			norm = 1.0 / norm;
			var a1 = this.d * norm;
			this.d = this.a * norm;
			this.a = a1;
			this.b *= -norm;
			this.c *= -norm;
			var tx1 = -this.a * this.tx - this.c * this.ty;
			this.ty = -this.b * this.tx - this.d * this.ty;
			this.tx = tx1;
		}
		return this;
	},
	rotate: function(theta) {
		var cos = Math.cos(theta);
		var sin = Math.sin(theta);
		var a1 = this.a * cos - this.b * sin;
		this.b = this.a * sin + this.b * cos;
		this.a = a1;
		var c1 = this.c * cos - this.d * sin;
		this.d = this.c * sin + this.d * cos;
		this.c = c1;
		var tx1 = this.tx * cos - this.ty * sin;
		this.ty = this.tx * sin + this.ty * cos;
		this.tx = tx1;
	},
	scale: function(sx,sy) {
		this.a *= sx;
		this.b *= sy;
		this.c *= sx;
		this.d *= sy;
		this.tx *= sx;
		this.ty *= sy;
	},
	setRotation: function(theta,scale) {
		if(scale == null) {
			scale = 1;
		}
		this.a = Math.cos(theta) * scale;
		this.c = Math.sin(theta) * scale;
		this.b = -this.c;
		this.d = this.a;
	},
	setTo: function(a,b,c,d,tx,ty) {
		this.a = a;
		this.b = b;
		this.c = c;
		this.d = d;
		this.tx = tx;
		this.ty = ty;
	},
	to3DString: function(roundPixels) {
		if(roundPixels == null) {
			roundPixels = false;
		}
		if(roundPixels) {
			return "matrix3d(" + this.a + ", " + this.b + ", 0, 0, " + this.c + ", " + this.d + ", 0, 0, 0, 0, 1, 0, " + (Std().default)["int"](this.tx) + ", " + (Std().default)["int"](this.ty) + ", 0, 1)";
		} else {
			return "matrix3d(" + this.a + ", " + this.b + ", 0, 0, " + this.c + ", " + this.d + ", 0, 0, 0, 0, 1, 0, " + this.tx + ", " + this.ty + ", 0, 1)";
		}
	},
	toMozString: function() {
		return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + "px, " + this.ty + "px)";
	},
	toString: function() {
		return "matrix(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")";
	},
	transformPoint: function(pos) {
		return new (openfl_geom_Point().default)(this.__transformX(pos.x,pos.y),this.__transformY(pos.x,pos.y));
	},
	translate: function(dx,dy) {
		this.tx += dx;
		this.ty += dy;
	},
	toArray: function(transpose) {
		if(transpose == null) {
			transpose = false;
		}
		if(this.__array == null) {
			var this1 = new Float32Array(9);
			this.__array = this1;
		}
		if(transpose) {
			this.__array[0] = this.a;
			this.__array[1] = this.b;
			this.__array[2] = 0;
			this.__array[3] = this.c;
			this.__array[4] = this.d;
			this.__array[5] = 0;
			this.__array[6] = this.tx;
			this.__array[7] = this.ty;
			this.__array[8] = 1;
		} else {
			this.__array[0] = this.a;
			this.__array[1] = this.c;
			this.__array[2] = this.tx;
			this.__array[3] = this.b;
			this.__array[4] = this.d;
			this.__array[5] = this.ty;
			this.__array[6] = 0;
			this.__array[7] = 0;
			this.__array[8] = 1;
		}
		return this.__array;
	},
	__cleanValues: function() {
		this.a = Math.round(this.a * 1000) / 1000;
		this.b = Math.round(this.b * 1000) / 1000;
		this.c = Math.round(this.c * 1000) / 1000;
		this.d = Math.round(this.d * 1000) / 1000;
		this.tx = Math.round(this.tx * 10) / 10;
		this.ty = Math.round(this.ty * 10) / 10;
	},
	__toMatrix3: function() {
		Matrix.__matrix3.setTo(this.a,this.b,this.c,this.d,this.tx,this.ty);
		return Matrix.__matrix3;
	},
	__transformInversePoint: function(point) {
		var norm = this.a * this.d - this.b * this.c;
		if(norm == 0) {
			point.x = -this.tx;
			point.y = -this.ty;
		} else {
			var px = 1.0 / norm * (this.c * (this.ty - point.y) + this.d * (point.x - this.tx));
			point.y = 1.0 / norm * (this.a * (point.y - this.ty) + this.b * (this.tx - point.x));
			point.x = px;
		}
	},
	__transformInverseX: function(px,py) {
		var norm = this.a * this.d - this.b * this.c;
		if(norm == 0) {
			return -this.tx;
		} else {
			return 1.0 / norm * (this.c * (this.ty - py) + this.d * (px - this.tx));
		}
	},
	__transformInverseY: function(px,py) {
		var norm = this.a * this.d - this.b * this.c;
		if(norm == 0) {
			return -this.ty;
		} else {
			return 1.0 / norm * (this.a * (py - this.ty) + this.b * (this.tx - px));
		}
	},
	__transformPoint: function(point) {
		var px = point.x;
		var py = point.y;
		point.x = this.__transformX(px,py);
		point.y = this.__transformY(px,py);
	},
	__transformX: function(px,py) {
		return px * this.a + py * this.c + this.tx;
	},
	__transformY: function(px,py) {
		return px * this.b + py * this.d + this.ty;
	},
	__translateTransformed: function(px,py) {
		this.tx = this.__transformX(px,py);
		this.ty = this.__transformY(px,py);
	}
};
Matrix.prototype.__class__ = $hxClasses["openfl.geom.Matrix"] = Matrix;
// Init
// Statics
Matrix.__identity = new Matrix()
Matrix.__matrix3 = new (lime_math_Matrix3().default)()
Matrix.__pool = new (lime_utils_ObjectPool().default)(function() {
	return new Matrix();
},function(m) {
	m.identity();
})
// Export
exports.default = Matrix;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 29 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.geom.Point
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_math_Vector2() {return __webpack_require__(42);}
function lime_utils_ObjectPool() {return __webpack_require__(67);}
// Constructor
var Point = function(x,y) {
	if(y == null) {
		y = 0;
	}
	if(x == null) {
		x = 0;
	}
	this.x = x;
	this.y = y;
}
// Meta
Point.__name__ = ["openfl","geom","Point"];
Point.prototype = {
	add: function(v) {
		return new Point(v.x + this.x,v.y + this.y);
	},
	clone: function() {
		return new Point(this.x,this.y);
	},
	copyFrom: function(sourcePoint) {
		this.x = sourcePoint.x;
		this.y = sourcePoint.y;
	},
	equals: function(toCompare) {
		if(toCompare != null && toCompare.x == this.x) {
			return toCompare.y == this.y;
		} else {
			return false;
		}
	},
	normalize: function(thickness) {
		if(this.x == 0 && this.y == 0) {
			return;
		} else {
			var norm = thickness / Math.sqrt(this.x * this.x + this.y * this.y);
			this.x *= norm;
			this.y *= norm;
		}
	},
	offset: function(dx,dy) {
		this.x += dx;
		this.y += dy;
	},
	setTo: function(xa,ya) {
		this.x = xa;
		this.y = ya;
	},
	subtract: function(v) {
		return new Point(this.x - v.x,this.y - v.y);
	},
	toString: function() {
		return "(x=" + this.x + ", y=" + this.y + ")";
	},
	__toLimeVector2: function() {
		if(Point.__limeVector2 == null) {
			Point.__limeVector2 = new (lime_math_Vector2().default)();
		}
		Point.__limeVector2.setTo(this.x,this.y);
		return Point.__limeVector2;
	},
	get_length: function() {
		return Math.sqrt(this.x * this.x + this.y * this.y);
	}
};
Point.prototype.__class__ = $hxClasses["openfl.geom.Point"] = Point;
// Init
Object.defineProperty(Point.prototype,"length",{ get : function () { return this.get_length (); }});
// Statics
Point.distance = function(pt1,pt2) {
	var dx = pt1.x - pt2.x;
	var dy = pt1.y - pt2.y;
	return Math.sqrt(dx * dx + dy * dy);
}
Point.interpolate = function(pt1,pt2,f) {
	return new Point(pt2.x + f * (pt1.x - pt2.x),pt2.y + f * (pt1.y - pt2.y));
}
Point.polar = function(len,angle) {
	return new Point(len * Math.cos(angle),len * Math.sin(angle));
}
Point.__pool = new (lime_utils_ObjectPool().default)(function() {
	return new Point();
},function(p) {
	p.setTo(0,0);
})
// Export
exports.default = Point;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.errors.Error
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_CallStack() {return __webpack_require__(121);}
// Constructor
var Error = function(message,id) {
	if(id == null) {
		id = 0;
	}
	if(message == null) {
		message = "";
	}
	this.message = message;
	this.errorID = id;
	this.name = "Error";
}
// Meta
Error.__name__ = ["openfl","errors","Error"];
Error.prototype = {
	getStackTrace: function() {
		return (haxe_CallStack().default).toString((haxe_CallStack().default).exceptionStack());
	},
	toString: function() {
		if(this.message != null) {
			return this.message;
		} else {
			return "Error";
		}
	}
};
Error.prototype.__class__ = $hxClasses["openfl.errors.Error"] = Error;
// Init
// Statics
Error.DEFAULT_TO_STRING = "Error"
// Export
exports.default = Error;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: StringBuf
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
// Constructor
var StringBuf = function() {
	this.b = "";
}
// Meta
StringBuf.__name__ = ["StringBuf"];
StringBuf.prototype = {
	add: function(x) {
		this.b += (Std().default).string(x);
	},
	addChar: function(c) {
		this.b += String.fromCharCode(c);
	},
	toString: function() {
		return this.b;
	}
};
StringBuf.prototype.__class__ = $hxClasses["StringBuf"] = StringBuf;
// Init
// Statics
// Export
exports.default = StringBuf;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 32 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.utils.ImageCanvasUtil
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_utils_ImageDataUtil() {return __webpack_require__(65);}
function lime_graphics_ImageType() {return __webpack_require__(55);}
function lime_math_Vector2() {return __webpack_require__(42);}
function lime_math_Rectangle() {return __webpack_require__(41);}
function lime_graphics_ImageChannel() {return __webpack_require__(111);}
function Std() {return __webpack_require__(4);}
function js_Browser() {return __webpack_require__(11);}
// Constructor
var ImageCanvasUtil = function(){}
// Meta
ImageCanvasUtil.__name__ = ["lime","graphics","utils","ImageCanvasUtil"];
ImageCanvasUtil.prototype = {
	
};
ImageCanvasUtil.prototype.__class__ = $hxClasses["lime.graphics.utils.ImageCanvasUtil"] = ImageCanvasUtil;
// Init
// Statics
ImageCanvasUtil.colorTransform = function(image,rect,colorMatrix) {
	ImageCanvasUtil.convertToData(image);
	(lime_graphics_utils_ImageDataUtil().default).colorTransform(image,rect,colorMatrix);
}
ImageCanvasUtil.convertToCanvas = function(image,clear) {
	if(clear == null) {
		clear = false;
	}
	var buffer = image.buffer;
	if(buffer.__srcImage != null) {
		if(buffer.__srcCanvas == null) {
			ImageCanvasUtil.createCanvas(image,buffer.__srcImage.width,buffer.__srcImage.height);
			buffer.__srcContext.drawImage(buffer.__srcImage,0,0);
		}
		buffer.__srcImage = null;
	} else if(buffer.__srcCanvas == null && buffer.data != null) {
		image.set_transparent(true);
		ImageCanvasUtil.createCanvas(image,buffer.width,buffer.height);
		ImageCanvasUtil.createImageData(image);
		buffer.__srcContext.putImageData(buffer.__srcImageData,0,0);
	} else if(image.type == (lime_graphics_ImageType().default).DATA && buffer.__srcImageData != null && image.dirty) {
		buffer.__srcContext.putImageData(buffer.__srcImageData,0,0);
		image.dirty = false;
	}
	if(clear) {
		buffer.data = null;
		buffer.__srcImageData = null;
	} else if(buffer.data == null && buffer.__srcImageData != null) {
		buffer.data = buffer.__srcImageData.data;
	}
	image.type = (lime_graphics_ImageType().default).CANVAS;
}
ImageCanvasUtil.convertToData = function(image,clear) {
	if(clear == null) {
		clear = false;
	}
	var buffer = image.buffer;
	if(buffer.__srcImage != null) {
		ImageCanvasUtil.convertToCanvas(image);
	}
	if(buffer.__srcCanvas != null && buffer.data == null) {
		ImageCanvasUtil.createImageData(image);
		if(image.type == (lime_graphics_ImageType().default).CANVAS) {
			image.dirty = false;
		}
	} else if(image.type == (lime_graphics_ImageType().default).CANVAS && buffer.__srcCanvas != null && image.dirty) {
		if(buffer.__srcImageData == null) {
			ImageCanvasUtil.createImageData(image);
		} else {
			buffer.__srcImageData = buffer.__srcContext.getImageData(0,0,buffer.width,buffer.height);
			var elements = buffer.__srcImageData.data.buffer;
			var this1;
			if(elements != null) {
				this1 = new Uint8Array(elements);
			} else {
				this1 = null;
			}
			buffer.data = this1;
		}
		image.dirty = false;
	}
	if(clear) {
		image.buffer.__srcCanvas = null;
		image.buffer.__srcContext = null;
	}
	image.type = (lime_graphics_ImageType().default).DATA;
}
ImageCanvasUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) {
	ImageCanvasUtil.convertToData(sourceImage);
	ImageCanvasUtil.convertToData(image);
	(lime_graphics_utils_ImageDataUtil().default).copyChannel(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
}
ImageCanvasUtil.copyPixels = function(image,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) {
	if(mergeAlpha == null) {
		mergeAlpha = false;
	}
	if(destPoint == null || destPoint.x >= image.width || destPoint.y >= image.height || sourceRect == null || sourceRect.width < 1 || sourceRect.height < 1) {
		return;
	}
	if(alphaImage != null && alphaImage.get_transparent()) {
		if(alphaPoint == null) {
			alphaPoint = new (lime_math_Vector2().default)();
		}
		var tempData = image.clone();
		tempData.copyChannel(alphaImage,new (lime_math_Rectangle().default)(alphaPoint.x,alphaPoint.y,sourceRect.width,sourceRect.height),new (lime_math_Vector2().default)(sourceRect.x,sourceRect.y),(lime_graphics_ImageChannel().default).ALPHA,(lime_graphics_ImageChannel().default).ALPHA);
		sourceImage = tempData;
	}
	ImageCanvasUtil.convertToCanvas(image,true);
	if(!mergeAlpha) {
		if(image.get_transparent() && sourceImage.get_transparent()) {
			image.buffer.__srcContext.clearRect(destPoint.x + image.offsetX,destPoint.y + image.offsetY,sourceRect.width + image.offsetX,sourceRect.height + image.offsetY);
		}
	}
	ImageCanvasUtil.convertToCanvas(sourceImage);
	if(sourceImage.buffer.get_src() != null) {
		image.buffer.__srcContext.globalCompositeOperation = "source-over";
		image.buffer.__srcContext.drawImage(sourceImage.buffer.get_src(),(Std().default)["int"](sourceRect.x + sourceImage.offsetX),(Std().default)["int"](sourceRect.y + sourceImage.offsetY),(Std().default)["int"](sourceRect.width),(Std().default)["int"](sourceRect.height),(Std().default)["int"](destPoint.x + image.offsetX),(Std().default)["int"](destPoint.y + image.offsetY),(Std().default)["int"](sourceRect.width),(Std().default)["int"](sourceRect.height));
	}
	image.dirty = true;
	image.version++;
}
ImageCanvasUtil.createCanvas = function(image,width,height) {
	var buffer = image.buffer;
	if(buffer.__srcCanvas == null) {
		buffer.__srcCanvas = (js_Browser().default).get_document().createElement("canvas");
		buffer.__srcCanvas.width = width;
		buffer.__srcCanvas.height = height;
		if(!image.get_transparent()) {
			if(!image.get_transparent()) {
				buffer.__srcCanvas.setAttribute("moz-opaque","true");
			}
			buffer.__srcContext = buffer.__srcCanvas.getContext ("2d", { alpha: false });
		} else {
			buffer.__srcContext = buffer.__srcCanvas.getContext("2d");
		}
		buffer.__srcContext.mozImageSmoothingEnabled = false;
		buffer.__srcContext.msImageSmoothingEnabled = false;
		buffer.__srcContext.imageSmoothingEnabled = false;
	}
}
ImageCanvasUtil.createImageData = function(image) {
	var buffer = image.buffer;
	if(buffer.__srcImageData == null) {
		if(buffer.data == null) {
			buffer.__srcImageData = buffer.__srcContext.getImageData(0,0,buffer.width,buffer.height);
		} else {
			buffer.__srcImageData = buffer.__srcContext.createImageData(buffer.width,buffer.height);
			buffer.__srcImageData.data.set(buffer.data);
		}
		var elements = buffer.__srcImageData.data.buffer;
		var this1;
		if(elements != null) {
			this1 = new Uint8Array(elements);
		} else {
			this1 = null;
		}
		buffer.data = this1;
	}
}
ImageCanvasUtil.fillRect = function(image,rect,color,format) {
	ImageCanvasUtil.convertToCanvas(image);
	var r;
	var g;
	var b;
	var a;
	if(format == 1) {
		r = color >> 16 & 255;
		g = color >> 8 & 255;
		b = color & 255;
		if(image.get_transparent()) {
			a = color >> 24 & 255;
		} else {
			a = 255;
		}
	} else {
		r = color >> 24 & 255;
		g = color >> 16 & 255;
		b = color >> 8 & 255;
		if(image.get_transparent()) {
			a = color & 255;
		} else {
			a = 255;
		}
	}
	if(rect.x == 0 && rect.y == 0 && rect.width == image.width && rect.height == image.height) {
		if(image.get_transparent() && a == 0) {
			image.buffer.__srcCanvas.width = image.buffer.width;
			return;
		}
	}
	if(a < 255) {
		image.buffer.__srcContext.clearRect(rect.x + image.offsetX,rect.y + image.offsetY,rect.width + image.offsetX,rect.height + image.offsetY);
	}
	if(a > 0) {
		image.buffer.__srcContext.fillStyle = "rgba(" + r + ", " + g + ", " + b + ", " + a / 255 + ")";
		image.buffer.__srcContext.fillRect(rect.x + image.offsetX,rect.y + image.offsetY,rect.width + image.offsetX,rect.height + image.offsetY);
	}
	image.dirty = true;
	image.version++;
}
ImageCanvasUtil.floodFill = function(image,x,y,color,format) {
	ImageCanvasUtil.convertToData(image);
	(lime_graphics_utils_ImageDataUtil().default).floodFill(image,x,y,color,format);
}
ImageCanvasUtil.getPixel = function(image,x,y,format) {
	ImageCanvasUtil.convertToData(image);
	return (lime_graphics_utils_ImageDataUtil().default).getPixel(image,x,y,format);
}
ImageCanvasUtil.getPixel32 = function(image,x,y,format) {
	ImageCanvasUtil.convertToData(image);
	return (lime_graphics_utils_ImageDataUtil().default).getPixel32(image,x,y,format);
}
ImageCanvasUtil.getPixels = function(image,rect,format) {
	ImageCanvasUtil.convertToData(image);
	return (lime_graphics_utils_ImageDataUtil().default).getPixels(image,rect,format);
}
ImageCanvasUtil.merge = function(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
	ImageCanvasUtil.convertToData(sourceImage);
	ImageCanvasUtil.convertToData(image);
	(lime_graphics_utils_ImageDataUtil().default).merge(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
}
ImageCanvasUtil.resize = function(image,newWidth,newHeight) {
	var buffer = image.buffer;
	if(buffer.__srcCanvas == null) {
		ImageCanvasUtil.createCanvas(image,newWidth,newHeight);
		buffer.__srcContext.drawImage(buffer.get_src(),0,0,newWidth,newHeight);
	} else {
		ImageCanvasUtil.convertToCanvas(image,true);
		var sourceCanvas = buffer.__srcCanvas;
		buffer.__srcCanvas = null;
		ImageCanvasUtil.createCanvas(image,newWidth,newHeight);
		buffer.__srcContext.drawImage(sourceCanvas,0,0,newWidth,newHeight);
	}
	buffer.__srcImageData = null;
	buffer.data = null;
	image.dirty = true;
	image.version++;
}
ImageCanvasUtil.scroll = function(image,x,y) {
	if(x % image.width == 0 && y % image.height == 0) {
		return;
	}
	var copy = image.clone();
	ImageCanvasUtil.convertToCanvas(image,true);
	image.buffer.__srcContext.clearRect(x,y,image.width,image.height);
	image.buffer.__srcContext.drawImage(copy.get_src(),x,y);
	image.dirty = true;
	image.version++;
}
ImageCanvasUtil.setPixel = function(image,x,y,color,format) {
	ImageCanvasUtil.convertToData(image);
	(lime_graphics_utils_ImageDataUtil().default).setPixel(image,x,y,color,format);
}
ImageCanvasUtil.setPixel32 = function(image,x,y,color,format) {
	ImageCanvasUtil.convertToData(image);
	(lime_graphics_utils_ImageDataUtil().default).setPixel32(image,x,y,color,format);
}
ImageCanvasUtil.setPixels = function(image,rect,bytePointer,format,endian) {
	ImageCanvasUtil.convertToData(image);
	(lime_graphics_utils_ImageDataUtil().default).setPixels(image,rect,bytePointer,format,endian);
}
ImageCanvasUtil.sync = function(image,clear) {
	if(image == null) {
		return;
	}
	if(image.type == (lime_graphics_ImageType().default).CANVAS) {
		ImageCanvasUtil.convertToCanvas(image,clear);
	} else {
		ImageCanvasUtil.convertToData(image,clear);
	}
}
// Export
exports.default = ImageCanvasUtil;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 33 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.graphics.RendererType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var RendererType = $hxClasses["lime.graphics.RendererType"] = { __ename__: ["lime","graphics","RendererType"], __constructs__: ["OPENGL","CANVAS","DOM","FLASH","CAIRO","CONSOLE","CUSTOM"] }
RendererType.OPENGL = ["OPENGL",0];
RendererType.OPENGL.toString = $estr;
RendererType.OPENGL.__enum__ = RendererType;
RendererType.CANVAS = ["CANVAS",1];
RendererType.CANVAS.toString = $estr;
RendererType.CANVAS.__enum__ = RendererType;
RendererType.DOM = ["DOM",2];
RendererType.DOM.toString = $estr;
RendererType.DOM.__enum__ = RendererType;
RendererType.FLASH = ["FLASH",3];
RendererType.FLASH.toString = $estr;
RendererType.FLASH.__enum__ = RendererType;
RendererType.CONSOLE = ["CONSOLE",5];
RendererType.CONSOLE.toString = $estr;
RendererType.CONSOLE.__enum__ = RendererType;
RendererType.CAIRO = ["CAIRO",4];
RendererType.CAIRO.toString = $estr;
RendererType.CAIRO.__enum__ = RendererType;
RendererType.CUSTOM = ["CUSTOM",6];
RendererType.CUSTOM.toString = $estr;
RendererType.CUSTOM.__enum__ = RendererType;
exports.default = RendererType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.Lib
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_StringMap() {return __webpack_require__(18);}
function lime_utils_Log() {return __webpack_require__(23);}
// Constructor
var Lib = function(){}
// Meta
Lib.__name__ = ["openfl","_internal","Lib"];
Lib.prototype = {
	
};
Lib.prototype.__class__ = $hxClasses["openfl._internal.Lib"] = Lib;
// Init
// Statics
Lib.notImplemented = function(posInfo) {
	var api = posInfo.className + "." + posInfo.methodName;
	if(!Lib.__sentWarnings.exists(api)) {
		Lib.__sentWarnings.set(api,true);
		(lime_utils_Log().default).warn(posInfo.methodName + " is not implemented",posInfo);
	}
}
Lib.__sentWarnings = new (haxe_ds_StringMap().default)()
// Export
exports.default = Lib;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Void_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Void_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Void_Void.__name__ = ["lime","app","_Event_Void_Void"];
_Event_Void_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function() {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i]();
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Void_Void.prototype.__class__ = $hxClasses["lime.app._Event_Void_Void"] = _Event_Void_Void;
// Init
// Statics
// Export
exports.default = _Event_Void_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 36 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.DisplayObject
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_IBitmapDrawable() {return __webpack_require__(112);}
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function Std() {return __webpack_require__(4);}
function openfl_events_MouseEvent() {return __webpack_require__(113);}
function openfl_events_TouchEvent() {return __webpack_require__(114);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl_geom_Point() {return __webpack_require__(29);}
function HxOverrides() {return __webpack_require__(7);}
function openfl__$internal_renderer_canvas_CanvasBitmap() {return __webpack_require__(115);}
function openfl__$internal_renderer_canvas_CanvasDisplayObject() {return __webpack_require__(158);}
function openfl__$internal_renderer_canvas_CanvasGraphics() {return __webpack_require__(58);}
function openfl__$internal_renderer_dom_DOMBitmap() {return __webpack_require__(95);}
function openfl__$internal_renderer_dom_DOMDisplayObject() {return __webpack_require__(179);}
function openfl__$internal_renderer_opengl_GLBitmap() {return __webpack_require__(126);}
function openfl__$internal_renderer_opengl_GLDisplayObject() {return __webpack_require__(180);}
function openfl_display_BitmapData() {return __webpack_require__(44);}
function openfl_display_Bitmap() {return __webpack_require__(89);}
function openfl_geom_ColorTransform() {return __webpack_require__(40);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
function openfl_geom_Transform() {return __webpack_require__(181);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_TypeError() {return __webpack_require__(129);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function lime_utils_ObjectPool() {return __webpack_require__(67);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
// Constructor
var DisplayObject = function() {
	(openfl_events_EventDispatcher().default).call(this);
	if(DisplayObject.__initStage != null) {
		this.stage = DisplayObject.__initStage;
		DisplayObject.__initStage = null;
	}
	this.__alpha = 1;
	this.__blendMode = "normal";
	this.__cacheAsBitmap = false;
	this.__transform = new (openfl_geom_Matrix().default)();
	this.__visible = true;
	this.__rotation = 0;
	this.__rotationSine = 0;
	this.__rotationCosine = 1;
	this.__scaleX = 1;
	this.__scaleY = 1;
	this.__worldAlpha = 1;
	this.__worldBlendMode = "normal";
	this.__worldTransform = new (openfl_geom_Matrix().default)();
	this.__worldColorTransform = new (openfl_geom_ColorTransform().default)();
	this.__renderTransform = new (openfl_geom_Matrix().default)();
	this.__worldVisible = true;
	this.set_name("instance" + ++DisplayObject.__instanceCount);
}
// Meta
DisplayObject.__name__ = ["openfl","display","DisplayObject"];
DisplayObject.__interfaces__ = [(openfl_display_IBitmapDrawable().default)];
DisplayObject.__super__ = (openfl_events_EventDispatcher().default);
DisplayObject.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	addEventListener: function(type,listener,useCapture,priority,useWeakReference) {
		if(useWeakReference == null) {
			useWeakReference = false;
		}
		if(priority == null) {
			priority = 0;
		}
		if(useCapture == null) {
			useCapture = false;
		}
		switch(type) {
		case "activate":case "deactivate":case "enterFrame":case "exitFrame":case "frameConstructed":case "render":
			if(!DisplayObject.__broadcastEvents.exists(type)) {
				DisplayObject.__broadcastEvents.set(type,[]);
			}
			var dispatchers = DisplayObject.__broadcastEvents.get(type);
			if(dispatchers.indexOf(this) == -1) {
				dispatchers.push(this);
			}
			break;
		default:
		}
		(openfl_events_EventDispatcher().default).prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference);
	},
	dispatchEvent: function(event) {
		if((Std().default)["is"](event,(openfl_events_MouseEvent().default))) {
			var mouseEvent = event;
			mouseEvent.stageX = this.__getRenderTransform().__transformX(mouseEvent.localX,mouseEvent.localY);
			mouseEvent.stageY = this.__getRenderTransform().__transformY(mouseEvent.localX,mouseEvent.localY);
		} else if((Std().default)["is"](event,(openfl_events_TouchEvent().default))) {
			var touchEvent = event;
			touchEvent.stageX = this.__getRenderTransform().__transformX(touchEvent.localX,touchEvent.localY);
			touchEvent.stageY = this.__getRenderTransform().__transformY(touchEvent.localX,touchEvent.localY);
		}
		return this.__dispatchWithCapture(event);
	},
	getBounds: function(targetCoordinateSpace) {
		var matrix;
		var usingTemp = false;
		if(targetCoordinateSpace != null) {
			matrix = this.__getWorldTransform().clone();
			matrix.concat(targetCoordinateSpace.__getWorldTransform().clone().invert());
		} else {
			usingTemp = true;
			matrix = (openfl_geom_Matrix().default).__pool.get();
			matrix.identity();
		}
		var bounds = new (openfl_geom_Rectangle().default)();
		this.__getBounds(bounds,matrix);
		if(usingTemp) {
			(openfl_geom_Matrix().default).__pool.release(matrix);
		}
		return bounds;
	},
	getRect: function(targetCoordinateSpace) {
		return this.getBounds(targetCoordinateSpace);
	},
	globalToLocal: function(pos) {
		return this.__globalToLocal(pos,new (openfl_geom_Point().default)());
	},
	hitTestObject: function(obj) {
		if(obj != null && obj.parent != null && this.parent != null) {
			var currentBounds = this.getBounds(this);
			var targetBounds = obj.getBounds(this);
			return currentBounds.intersects(targetBounds);
		}
		return false;
	},
	hitTestPoint: function(x,y,shapeFlag) {
		if(shapeFlag == null) {
			shapeFlag = false;
		}
		if(this.stage != null) {
			return this.__hitTest(x,y,shapeFlag,null,true,this);
		} else {
			return false;
		}
	},
	localToGlobal: function(point) {
		return this.__getRenderTransform().transformPoint(point);
	},
	removeEventListener: function(type,listener,useCapture) {
		if(useCapture == null) {
			useCapture = false;
		}
		(openfl_events_EventDispatcher().default).prototype.removeEventListener.call(this,type,listener,useCapture);
		switch(type) {
		case "activate":case "deactivate":case "enterFrame":case "exitFrame":case "frameConstructed":case "render":
			if(!this.hasEventListener(type)) {
				if(DisplayObject.__broadcastEvents.exists(type)) {
					(HxOverrides().default).remove(DisplayObject.__broadcastEvents.get(type),this);
				}
			}
			break;
		default:
		}
	},
	__cleanup: function() {
		this.__cairo = null;
		this.__canvas = null;
		this.__context = null;
		if(this.__graphics != null) {
			this.__graphics.__cleanup();
		}
	},
	__dispatch: function(event) {
		if(this.__eventMap != null && this.hasEventListener(event.type)) {
			var result = (openfl_events_EventDispatcher().default).prototype.__dispatchEvent.call(this,event);
			if(event.__isCanceled) {
				return true;
			}
			return result;
		}
		return true;
	},
	__dispatchChildren: function(event) {
	},
	__dispatchEvent: function(event) {
		var result = (openfl_events_EventDispatcher().default).prototype.__dispatchEvent.call(this,event);
		if(event.__isCanceled) {
			return true;
		}
		if(event.bubbles && this.parent != null && this.parent != this) {
			event.eventPhase = 3;
			if(event.target == null) {
				event.target = this;
			}
			this.parent.__dispatchEvent(event);
		}
		return result;
	},
	__dispatchWithCapture: function(event) {
		if(event.target == null) {
			event.target = this;
		}
		if(this.parent != null) {
			event.eventPhase = 1;
			if(this.parent == this.stage) {
				this.parent.__dispatch(event);
			} else {
				var stack = DisplayObject.__tempStack.get();
				var parent = this.parent;
				var i = 0;
				while(parent != null) {
					stack.set(i,parent);
					parent = parent.parent;
					++i;
				}
				var _g1 = 0;
				var _g = i;
				while(_g1 < _g) {
					var j = _g1++;
					stack.get(i - j - 1).__dispatch(event);
				}
				DisplayObject.__tempStack.release(stack);
			}
		}
		event.eventPhase = 2;
		return this.__dispatchEvent(event);
	},
	__enterFrame: function(deltaTime) {
	},
	__getBounds: function(rect,matrix) {
		if(this.__graphics != null) {
			this.__graphics.__getBounds(rect,matrix);
		}
	},
	__getCursor: function() {
		return null;
	},
	__getFilterBounds: function(rect,matrix) {
		this.__getBounds(rect,matrix);
		if(this.__filters != null && this.__filters.length > 0) {
			var extension = (openfl_geom_Rectangle().default).__pool.get();
			var _g = 0;
			var _g1 = this.__filters;
			while(_g < _g1.length) {
				var filter = _g1[_g];
				++_g;
				extension.__expand(-filter.__leftExtension,-filter.__topExtension,filter.__leftExtension + filter.__rightExtension,filter.__topExtension + filter.__bottomExtension);
			}
			rect.width += extension.width;
			rect.height += extension.height;
			rect.x += extension.x;
			rect.y += extension.y;
			(openfl_geom_Rectangle().default).__pool.release(extension);
		}
	},
	__getInteractive: function(stack) {
		return false;
	},
	__getLocalBounds: function(rect) {
		this.__getBounds(rect,this.__transform);
		rect.x -= this.__transform.tx;
		rect.y -= this.__transform.ty;
	},
	__getRenderBounds: function(rect,matrix) {
		if(this.__scrollRect == null) {
			this.__getBounds(rect,matrix);
		} else {
			var r = (openfl_geom_Rectangle().default).__pool.get();
			r.copyFrom(this.__scrollRect);
			r.__transform(r,matrix);
			rect.__expand(matrix.tx,matrix.ty,r.width,r.height);
			(openfl_geom_Rectangle().default).__pool.release(r);
		}
	},
	__getRenderTransform: function() {
		this.__getWorldTransform();
		return this.__renderTransform;
	},
	__getWorldTransform: function() {
		var transformDirty = this.__transformDirty || this.__worldTransformInvalid;
		if(transformDirty) {
			var list = [];
			var current = this;
			if(this.parent == null) {
				this.__update(true,false);
			} else {
				while(current != this.stage) {
					list.push(current);
					current = current.parent;
					if(current == null) {
						break;
					}
				}
			}
			var i = list.length;
			while(--i >= 0) {
				current = list[i];
				current.__update(true,false);
				current.__worldTransformInvalid = false;
			}
		}
		return this.__worldTransform;
	},
	__globalToLocal: function(global,local) {
		this.__getRenderTransform();
		if(global == local) {
			this.__renderTransform.__transformInversePoint(global);
		} else {
			local.x = this.__renderTransform.__transformInverseX(global.x,global.y);
			local.y = this.__renderTransform.__transformInverseY(global.x,global.y);
		}
		return local;
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(this.__graphics != null) {
			if(!hitObject.get_visible() || this.__isMask) {
				return false;
			}
			if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
				return false;
			}
			if(this.__graphics.__hitTest(x,y,shapeFlag,this.__getRenderTransform())) {
				if(stack != null && !interactiveOnly) {
					stack.push(hitObject);
				}
				return true;
			}
		}
		return false;
	},
	__hitTestMask: function(x,y) {
		if(this.__graphics != null) {
			if(this.__graphics.__hitTest(x,y,true,this.__getRenderTransform())) {
				return true;
			}
		}
		return false;
	},
	__readGraphicsData: function(graphicsData,recurse) {
		if(this.__graphics != null) {
			this.__graphics.__readGraphicsData(graphicsData);
		}
	},
	__renderCairo: function(renderSession) {
	},
	__renderCairoMask: function(renderSession) {
	},
	__renderCanvas: function(renderSession) {
		if(this.get_mask() == null || this.get_mask().get_width() > 0 && this.get_mask().get_height() > 0) {
			this.__updateCacheBitmap(renderSession,!this.__worldColorTransform.__isDefault());
			if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
				(openfl__$internal_renderer_canvas_CanvasBitmap().default).render(this.__cacheBitmap,renderSession);
			} else {
				(openfl__$internal_renderer_canvas_CanvasDisplayObject().default).render(this,renderSession);
			}
		}
	},
	__renderCanvasMask: function(renderSession) {
		if(this.__graphics != null) {
			(openfl__$internal_renderer_canvas_CanvasGraphics().default).renderMask(this.__graphics,renderSession);
		}
	},
	__renderDOM: function(renderSession) {
		this.__updateCacheBitmap(renderSession,!this.__worldColorTransform.__isDefault());
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			this.__renderDOMClear(renderSession);
			this.__cacheBitmap.stage = this.stage;
			(openfl__$internal_renderer_dom_DOMBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_dom_DOMDisplayObject().default).render(this,renderSession);
		}
	},
	__renderDOMClear: function(renderSession) {
		(openfl__$internal_renderer_dom_DOMDisplayObject().default).clear(this,renderSession);
	},
	__renderGL: function(renderSession) {
		this.__updateCacheBitmap(renderSession,false);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			(openfl__$internal_renderer_opengl_GLBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_opengl_GLDisplayObject().default).render(this,renderSession);
		}
	},
	__renderGLMask: function(renderSession) {
		this.__updateCacheBitmap(renderSession,false);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			(openfl__$internal_renderer_opengl_GLBitmap().default).renderMask(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_opengl_GLDisplayObject().default).renderMask(this,renderSession);
		}
	},
	__setParentRenderDirty: function() {
		var renderParent = this.__renderParent != null ? this.__renderParent : this.parent;
		if(renderParent != null && !renderParent.__renderDirty) {
			renderParent.__renderDirty = true;
			renderParent.__setParentRenderDirty();
		}
	},
	__setRenderDirty: function() {
		if(!this.__renderDirty) {
			this.__renderDirty = true;
			this.__setParentRenderDirty();
		}
	},
	__setStageReference: function(stage) {
		this.stage = stage;
	},
	__setTransformDirty: function() {
		if(!this.__transformDirty) {
			this.__transformDirty = true;
			this.__setWorldTransformInvalid();
			this.__setParentRenderDirty();
		}
	},
	__setWorldTransformInvalid: function() {
		this.__worldTransformInvalid = true;
	},
	__stopAllMovieClips: function() {
	},
	__update: function(transformOnly,updateChildren,maskGraphics) {
		var renderParent = this.__renderParent != null ? this.__renderParent : this.parent;
		if(this.__isMask && renderParent == null) {
			renderParent = this.__maskTarget;
		}
		this.__renderable = this.get_visible() && this.__scaleX != 0 && this.__scaleY != 0 && !this.__isMask && (renderParent == null || !renderParent.__isMask);
		this.__updateTransforms();
		this.__transformDirty = false;
		if(maskGraphics != null) {
			this.__updateMask(maskGraphics);
		}
		if(!transformOnly) {
			if(DisplayObject.__supportDOM) {
				this.__renderTransformChanged = !this.__renderTransform.equals(this.__renderTransformCache);
				if(this.__renderTransformCache == null) {
					this.__renderTransformCache = this.__renderTransform.clone();
				} else {
					this.__renderTransformCache.copyFrom(this.__renderTransform);
				}
			}
			if(!this.__worldColorTransform.__equals(this.get_transform().get_colorTransform())) {
				this.__worldColorTransform = this.get_transform().get_colorTransform().__clone();
			}
			if(renderParent != null) {
				if(DisplayObject.__supportDOM) {
					var worldVisible = renderParent.__worldVisible && this.get_visible();
					this.__worldVisibleChanged = this.__worldVisible != worldVisible;
					this.__worldVisible = worldVisible;
					var worldAlpha = this.get_alpha() * renderParent.__worldAlpha;
					this.__worldAlphaChanged = this.__worldAlpha != worldAlpha;
					this.__worldAlpha = worldAlpha;
				} else {
					this.__worldAlpha = this.get_alpha() * renderParent.__worldAlpha;
				}
				this.__worldColorTransform.__combine(renderParent.__worldColorTransform);
				if(this.__blendMode == null || this.__blendMode == "normal") {
					this.__worldBlendMode = renderParent.__blendMode;
				} else {
					this.__worldBlendMode = this.__blendMode;
				}
			} else {
				this.__worldAlpha = this.get_alpha();
				if(DisplayObject.__supportDOM) {
					this.__worldVisibleChanged = this.__worldVisible != this.get_visible();
					this.__worldVisible = this.get_visible();
					this.__worldAlphaChanged = this.__worldAlpha != this.get_alpha();
				}
			}
		}
		if(updateChildren && this.get_mask() != null) {
			this.get_mask().__update(transformOnly,true,maskGraphics);
		}
	},
	__updateCacheBitmap: function(renderSession,force) {
		if(this.__cacheBitmapRender) {
			return false;
		}
		if(this.get_cacheAsBitmap()) {
			var matrix = null;
			var rect = null;
			this.__update(false,true);
			var needRender = this.__cacheBitmap == null || this.__renderDirty && (force || this.__children != null && this.__children.length > 0 || this.__graphics != null && this.__graphics.__dirty) || this.opaqueBackground != this.__cacheBitmapBackground || !this.__cacheBitmapColorTransform.__equals(this.__worldColorTransform);
			var updateTransform = needRender || !this.__cacheBitmap.__worldTransform.equals(this.__worldTransform);
			var hasFilters = this.__filters != null && this.__filters.length > 0;
			if(hasFilters && !needRender) {
				var _g = 0;
				var _g1 = this.__filters;
				while(_g < _g1.length) {
					var filter = _g1[_g];
					++_g;
					if(filter.__renderDirty) {
						needRender = true;
						break;
					}
				}
			}
			var bitmapWidth = 0;
			var bitmapHeight = 0;
			if(updateTransform || needRender) {
				matrix = (openfl_geom_Matrix().default).__pool.get();
				rect = (openfl_geom_Rectangle().default).__pool.get();
				matrix.identity();
				this.__getFilterBounds(rect,this.__renderTransform);
				bitmapWidth = Math.ceil(rect.width);
				bitmapHeight = Math.ceil(rect.height);
				if(!needRender && this.__cacheBitmap != null && (bitmapWidth != this.__cacheBitmap.get_width() || bitmapHeight != this.__cacheBitmap.get_height())) {
					needRender = true;
				}
			}
			if(needRender) {
				this.__cacheBitmapBackground = this.opaqueBackground;
				var color = this.opaqueBackground != null ? -16777216 | this.opaqueBackground : 0;
				if(rect.width >= 0.5 && rect.height >= 0.5) {
					if(this.__cacheBitmap == null || bitmapWidth != this.__cacheBitmap.get_width() || bitmapHeight != this.__cacheBitmap.get_height()) {
						this.__cacheBitmapData = new (openfl_display_BitmapData().default)(bitmapWidth,bitmapHeight,true,color);
						if(this.__cacheBitmap == null) {
							this.__cacheBitmap = new (openfl_display_Bitmap().default)();
						}
						this.__cacheBitmap.__bitmapData = this.__cacheBitmapData;
					} else {
						this.__cacheBitmapData.fillRect(this.__cacheBitmapData.rect,color);
					}
				} else {
					this.__cacheBitmap = null;
					this.__cacheBitmapData = null;
					return true;
				}
			}
			if(updateTransform || needRender) {
				this.__cacheBitmap.__worldTransform.copyFrom(this.__worldTransform);
				this.__cacheBitmap.__renderTransform.identity();
				this.__cacheBitmap.__renderTransform.tx = rect.x;
				this.__cacheBitmap.__renderTransform.ty = rect.y;
				matrix.concat(this.__renderTransform);
				matrix.tx -= Math.round(rect.x);
				matrix.ty -= Math.round(rect.y);
			}
			this.__cacheBitmap.smoothing = renderSession.allowSmoothing;
			this.__cacheBitmap.__renderable = this.__renderable;
			this.__cacheBitmap.__worldAlpha = this.__worldAlpha;
			this.__cacheBitmap.__worldBlendMode = this.__worldBlendMode;
			this.__cacheBitmap.__scrollRect = this.__scrollRect;
			this.__cacheBitmap.set_mask(this.__mask);
			if(needRender) {
				this.__cacheBitmapRender = true;
				this.__cacheBitmapData.__draw(this,matrix,null,null,null,renderSession.allowSmoothing);
				if(hasFilters) {
					var needSecondBitmapData = false;
					var needCopyOfOriginal = false;
					var _g2 = 0;
					var _g11 = this.__filters;
					while(_g2 < _g11.length) {
						var filter1 = _g11[_g2];
						++_g2;
						if(filter1.__needSecondBitmapData) {
							needSecondBitmapData = true;
						}
						if(filter1.__preserveObject) {
							needCopyOfOriginal = true;
						}
					}
					var bitmapData = this.__cacheBitmapData;
					var bitmapData2 = null;
					var bitmapData3 = null;
					if(needSecondBitmapData) {
						bitmapData2 = new (openfl_display_BitmapData().default)(bitmapData.width,bitmapData.height,true,0);
					} else {
						bitmapData2 = bitmapData;
					}
					if(needCopyOfOriginal) {
						bitmapData3 = new (openfl_display_BitmapData().default)(bitmapData.width,bitmapData.height,true,0);
					}
					var sourceRect = bitmapData.rect;
					var destPoint = new (openfl_geom_Point().default)();
					var cacheBitmap;
					var lastBitmap;
					var _g3 = 0;
					var _g12 = this.__filters;
					while(_g3 < _g12.length) {
						var filter2 = _g12[_g3];
						++_g3;
						if(filter2.__preserveObject) {
							bitmapData3.copyPixels(bitmapData,bitmapData.rect,destPoint);
						}
						lastBitmap = filter2.__applyFilter(bitmapData2,bitmapData,sourceRect,destPoint);
						if(filter2.__preserveObject) {
							lastBitmap.draw(bitmapData3,null,this.get_transform().get_colorTransform());
						}
						filter2.__renderDirty = false;
						if(needSecondBitmapData && lastBitmap == bitmapData2) {
							cacheBitmap = bitmapData;
							bitmapData = bitmapData2;
							bitmapData2 = cacheBitmap;
						}
					}
					this.__cacheBitmap.set_bitmapData(bitmapData);
				}
				this.__cacheBitmapRender = false;
				if(this.__cacheBitmapColorTransform == null) {
					this.__cacheBitmapColorTransform = new (openfl_geom_ColorTransform().default)();
				}
				this.__cacheBitmapColorTransform.__copyFrom(this.__worldColorTransform);
				if(!this.__cacheBitmapColorTransform.__isDefault()) {
					this.__cacheBitmapData.colorTransform(this.__cacheBitmapData.rect,this.__cacheBitmapColorTransform);
				}
			}
			if(updateTransform) {
				this.__update(false,true);
				(openfl_geom_Matrix().default).__pool.release(matrix);
				(openfl_geom_Rectangle().default).__pool.release(rect);
				return true;
			} else {
				return false;
			}
		} else if(this.__cacheBitmap != null) {
			if(renderSession.renderType == (lime_graphics_RendererType().default).DOM) {
				this.__cacheBitmap.__renderDOMClear(renderSession);
			}
			this.__cacheBitmap = null;
			this.__cacheBitmapData = null;
			this.__cacheBitmapColorTransform = null;
			return true;
		}
		return false;
	},
	__updateChildren: function(transformOnly) {
		var renderParent = this.__renderParent != null ? this.__renderParent : this.parent;
		this.__renderable = this.get_visible() && this.__scaleX != 0 && this.__scaleY != 0 && !this.__isMask && (renderParent == null || !renderParent.__isMask);
		this.__worldAlpha = this.get_alpha();
		this.__worldBlendMode = this.get_blendMode();
		if(this.__transformDirty) {
			this.__transformDirty = false;
		}
	},
	__updateMask: function(maskGraphics) {
		if(this.__graphics != null) {
			maskGraphics.__commands.overrideMatrix(this.__worldTransform);
			maskGraphics.__commands.append(this.__graphics.__commands);
			maskGraphics.set___dirty(true);
			maskGraphics.__visible = true;
			if(maskGraphics.__bounds == null) {
				maskGraphics.__bounds = new (openfl_geom_Rectangle().default)();
			}
			this.__graphics.__getBounds(maskGraphics.__bounds,(openfl_geom_Matrix().default).__identity);
		}
	},
	__updateTransforms: function(overrideTransform) {
		var overrided = overrideTransform != null;
		var local = overrided ? overrideTransform : this.__transform;
		if(this.__worldTransform == null) {
			this.__worldTransform = new (openfl_geom_Matrix().default)();
		}
		if(this.__renderTransform == null) {
			this.__renderTransform = new (openfl_geom_Matrix().default)();
		}
		var renderParent = this.__renderParent != null ? this.__renderParent : this.parent;
		var parentTransform;
		if(!overrided && this.parent != null) {
			parentTransform = this.parent.__worldTransform;
			this.__worldTransform.a = local.a * parentTransform.a + local.b * parentTransform.c;
			this.__worldTransform.b = local.a * parentTransform.b + local.b * parentTransform.d;
			this.__worldTransform.c = local.c * parentTransform.a + local.d * parentTransform.c;
			this.__worldTransform.d = local.c * parentTransform.b + local.d * parentTransform.d;
			this.__worldTransform.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx;
			this.__worldTransform.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty;
		} else {
			this.__worldTransform.copyFrom(local);
		}
		if(!overrided && renderParent != null) {
			parentTransform = renderParent.__renderTransform;
			this.__renderTransform.a = local.a * parentTransform.a + local.b * parentTransform.c;
			this.__renderTransform.b = local.a * parentTransform.b + local.b * parentTransform.d;
			this.__renderTransform.c = local.c * parentTransform.a + local.d * parentTransform.c;
			this.__renderTransform.d = local.c * parentTransform.b + local.d * parentTransform.d;
			this.__renderTransform.tx = local.tx * parentTransform.a + local.ty * parentTransform.c + parentTransform.tx;
			this.__renderTransform.ty = local.tx * parentTransform.b + local.ty * parentTransform.d + parentTransform.ty;
		} else {
			this.__renderTransform.copyFrom(local);
		}
		if(this.__scrollRect != null) {
			this.__renderTransform.__translateTransformed(-this.__scrollRect.x,-this.__scrollRect.y);
		}
	},
	get_alpha: function() {
		return this.__alpha;
	},
	set_alpha: function(value) {
		if(value > 1.0) {
			value = 1.0;
		}
		if(value != this.__alpha) {
			this.__setRenderDirty();
		}
		return this.__alpha = value;
	},
	get_blendMode: function() {
		return this.__blendMode;
	},
	set_blendMode: function(value) {
		if(value == null) {
			value = "normal";
		}
		if(value != this.__blendMode) {
			this.__setRenderDirty();
		}
		return this.__blendMode = value;
	},
	get_cacheAsBitmap: function() {
		if(this.__filters == null) {
			return this.__cacheAsBitmap;
		} else {
			return true;
		}
	},
	set_cacheAsBitmap: function(value) {
		this.__setRenderDirty();
		return this.__cacheAsBitmap = value;
	},
	get_cacheAsBitmapMatrix: function() {
		return this.__cacheAsBitmapMatrix;
	},
	set_cacheAsBitmapMatrix: function(value) {
		this.__setRenderDirty();
		return this.__cacheAsBitmapMatrix = value.clone();
	},
	get_filters: function() {
		if(this.__filters == null) {
			return [];
		} else {
			return this.__filters.slice();
		}
	},
	set_filters: function(value) {
		if(value != null && value.length > 0) {
			this.__filters = value;
		} else {
			this.__filters = null;
		}
		this.__setRenderDirty();
		return value;
	},
	get_height: function() {
		var rect = (openfl_geom_Rectangle().default).__pool.get();
		this.__getLocalBounds(rect);
		var height = rect.height;
		(openfl_geom_Rectangle().default).__pool.release(rect);
		return height;
	},
	set_height: function(value) {
		var rect = (openfl_geom_Rectangle().default).__pool.get();
		var matrix = (openfl_geom_Matrix().default).__pool.get();
		matrix.identity();
		this.__getBounds(rect,matrix);
		if(value != rect.height) {
			this.set_scaleY(value / rect.height);
		} else {
			this.set_scaleY(1);
		}
		(openfl_geom_Rectangle().default).__pool.release(rect);
		(openfl_geom_Matrix().default).__pool.release(matrix);
		return value;
	},
	get_loaderInfo: function() {
		if(this.stage != null) {
			return (openfl__$internal_Lib().default).current.__loaderInfo;
		}
		return null;
	},
	get_mask: function() {
		return this.__mask;
	},
	set_mask: function(value) {
		if(value == this.__mask) {
			return value;
		}
		if(value != this.__mask) {
			this.__setTransformDirty();
			this.__setRenderDirty();
		}
		if(this.__mask != null) {
			this.__mask.__isMask = false;
			this.__mask.__maskTarget = null;
			this.__mask.__setTransformDirty();
			this.__mask.__setRenderDirty();
		}
		if(value != null) {
			value.__isMask = true;
			value.__maskTarget = this;
			value.__setWorldTransformInvalid();
		}
		if(this.__cacheBitmap != null && this.__cacheBitmap.get_mask() != value) {
			this.__cacheBitmap.set_mask(value);
		}
		return this.__mask = value;
	},
	get_mouseX: function() {
		var mouseX = this.stage != null ? this.stage.__mouseX : (openfl__$internal_Lib().default).current.stage.__mouseX;
		var mouseY = this.stage != null ? this.stage.__mouseY : (openfl__$internal_Lib().default).current.stage.__mouseY;
		return this.__getRenderTransform().__transformInverseX(mouseX,mouseY);
	},
	get_mouseY: function() {
		var mouseX = this.stage != null ? this.stage.__mouseX : (openfl__$internal_Lib().default).current.stage.__mouseX;
		var mouseY = this.stage != null ? this.stage.__mouseY : (openfl__$internal_Lib().default).current.stage.__mouseY;
		return this.__getRenderTransform().__transformInverseY(mouseX,mouseY);
	},
	get_name: function() {
		return this.__name;
	},
	set_name: function(value) {
		return this.__name = value;
	},
	get_root: function() {
		if(this.stage != null) {
			return (openfl__$internal_Lib().default).current;
		}
		return null;
	},
	get_rotation: function() {
		return this.__rotation;
	},
	set_rotation: function(value) {
		if(value != this.__rotation) {
			this.__rotation = value;
			var radians = this.__rotation * (Math.PI / 180);
			this.__rotationSine = Math.sin(radians);
			this.__rotationCosine = Math.cos(radians);
			this.__transform.a = this.__rotationCosine * this.__scaleX;
			this.__transform.b = this.__rotationSine * this.__scaleX;
			this.__transform.c = -this.__rotationSine * this.__scaleY;
			this.__transform.d = this.__rotationCosine * this.__scaleY;
			this.__setTransformDirty();
		}
		return value;
	},
	get_scaleX: function() {
		return this.__scaleX;
	},
	set_scaleX: function(value) {
		if(value != this.__scaleX) {
			this.__scaleX = value;
			if(this.__transform.b == 0) {
				if(value != this.__transform.a) {
					this.__setTransformDirty();
				}
				this.__transform.a = value;
			} else {
				var a = this.__rotationCosine * value;
				var b = this.__rotationSine * value;
				if(this.__transform.a != a || this.__transform.b != b) {
					this.__setTransformDirty();
				}
				this.__transform.a = a;
				this.__transform.b = b;
			}
		}
		return value;
	},
	get_scaleY: function() {
		return this.__scaleY;
	},
	set_scaleY: function(value) {
		if(value != this.__scaleY) {
			this.__scaleY = value;
			if(this.__transform.c == 0) {
				if(value != this.__transform.d) {
					this.__setTransformDirty();
				}
				this.__transform.d = value;
			} else {
				var c = -this.__rotationSine * value;
				var d = this.__rotationCosine * value;
				if(this.__transform.d != d || this.__transform.c != c) {
					this.__setTransformDirty();
				}
				this.__transform.c = c;
				this.__transform.d = d;
			}
		}
		return value;
	},
	get_scrollRect: function() {
		if(this.__scrollRect == null) {
			return null;
		}
		return this.__scrollRect.clone();
	},
	set_scrollRect: function(value) {
		if(value != this.__scrollRect) {
			this.__setTransformDirty();
			if(DisplayObject.__supportDOM) {
				this.__setRenderDirty();
			}
		}
		return this.__scrollRect = value;
	},
	get_transform: function() {
		if(this.__objectTransform == null) {
			this.__objectTransform = new (openfl_geom_Transform().default)(this);
		}
		return this.__objectTransform;
	},
	set_transform: function(value) {
		if(value == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_TypeError().default)("Parameter transform must be non-null."));
		}
		if(this.__objectTransform == null) {
			this.__objectTransform = new (openfl_geom_Transform().default)(this);
		}
		this.__setTransformDirty();
		this.__objectTransform.set_matrix(value.get_matrix());
		this.__objectTransform.set_colorTransform(value.get_colorTransform().__clone());
		return this.__objectTransform;
	},
	get_visible: function() {
		return this.__visible;
	},
	set_visible: function(value) {
		if(value != this.__visible) {
			this.__setRenderDirty();
		}
		return this.__visible = value;
	},
	get_width: function() {
		var rect = (openfl_geom_Rectangle().default).__pool.get();
		this.__getLocalBounds(rect);
		var width = rect.width;
		(openfl_geom_Rectangle().default).__pool.release(rect);
		return width;
	},
	set_width: function(value) {
		var rect = (openfl_geom_Rectangle().default).__pool.get();
		var matrix = (openfl_geom_Matrix().default).__pool.get();
		matrix.identity();
		this.__getBounds(rect,matrix);
		if(value != rect.width) {
			this.set_scaleX(value / rect.width);
		} else {
			this.set_scaleX(1);
		}
		(openfl_geom_Rectangle().default).__pool.release(rect);
		(openfl_geom_Matrix().default).__pool.release(matrix);
		return value;
	},
	get_x: function() {
		return this.__transform.tx;
	},
	set_x: function(value) {
		if(value != this.__transform.tx) {
			this.__setTransformDirty();
		}
		return this.__transform.tx = value;
	},
	get_y: function() {
		return this.__transform.ty;
	},
	set_y: function(value) {
		if(value != this.__transform.ty) {
			this.__setTransformDirty();
		}
		return this.__transform.ty = value;
	}
});
DisplayObject.prototype.__class__ = $hxClasses["openfl.display.DisplayObject"] = DisplayObject;
// Init
Object.defineProperties(DisplayObject.prototype,{ "alpha" : { get : function () { return this.get_alpha (); }, set : function (v) { return this.set_alpha (v); }}, "blendMode" : { get : function () { return this.get_blendMode (); }, set : function (v) { return this.set_blendMode (v); }}, "cacheAsBitmap" : { get : function () { return this.get_cacheAsBitmap (); }, set : function (v) { return this.set_cacheAsBitmap (v); }}, "cacheAsBitmapMatrix" : { get : function () { return this.get_cacheAsBitmapMatrix (); }, set : function (v) { return this.set_cacheAsBitmapMatrix (v); }}, "filters" : { get : function () { return this.get_filters (); }, set : function (v) { return this.set_filters (v); }}, "height" : { get : function () { return this.get_height (); }, set : function (v) { return this.set_height (v); }}, "loaderInfo" : { get : function () { return this.get_loaderInfo (); }}, "mask" : { get : function () { return this.get_mask (); }, set : function (v) { return this.set_mask (v); }}, "mouseX" : { get : function () { return this.get_mouseX (); }}, "mouseY" : { get : function () { return this.get_mouseY (); }}, "name" : { get : function () { return this.get_name (); }, set : function (v) { return this.set_name (v); }}, "root" : { get : function () { return this.get_root (); }}, "rotation" : { get : function () { return this.get_rotation (); }, set : function (v) { return this.set_rotation (v); }}, "scaleX" : { get : function () { return this.get_scaleX (); }, set : function (v) { return this.set_scaleX (v); }}, "scaleY" : { get : function () { return this.get_scaleY (); }, set : function (v) { return this.set_scaleY (v); }}, "scrollRect" : { get : function () { return this.get_scrollRect (); }, set : function (v) { return this.set_scrollRect (v); }}, "transform" : { get : function () { return this.get_transform (); }, set : function (v) { return this.set_transform (v); }}, "visible" : { get : function () { return this.get_visible (); }, set : function (v) { return this.set_visible (v); }}, "width" : { get : function () { return this.get_width (); }, set : function (v) { return this.set_width (v); }}, "x" : { get : function () { return this.get_x (); }, set : function (v) { return this.set_x (v); }}, "y" : { get : function () { return this.get_y (); }, set : function (v) { return this.set_y (v); }}});
// Statics
DisplayObject.__broadcastEvents = new (haxe_ds_StringMap().default)()
DisplayObject.__instanceCount = 0
DisplayObject.__tempStack = new (lime_utils_ObjectPool().default)(function() {
	return (openfl__$Vector_Vector_$Impl_$().default)._new();
},function(stack) {
	stack.set_length(0);
})
// Export
exports.default = DisplayObject;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 37 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.GLUtils
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_opengl_GL() {return __webpack_require__(49);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
// Constructor
var GLUtils = function(){}
// Meta
GLUtils.__name__ = ["openfl","_internal","stage3D","GLUtils"];
GLUtils.prototype = {
	
};
GLUtils.prototype.__class__ = $hxClasses["openfl._internal.stage3D.GLUtils"] = GLUtils;
// Init
// Statics
GLUtils.CheckGLError = function() {
	if(!GLUtils.debug) {
		return;
	}
	var error = (lime_graphics_opengl_GL().default).getError();
	if(error != 0) {
		var errorText;
		switch(error) {
		case 0:
			errorText = "GL_NO_ERROR";
			break;
		case 1280:
			errorText = "GL_INVALID_ENUM";
			break;
		case 1281:
			errorText = "GL_INVALID_VALUE";
			break;
		case 1282:
			errorText = "GL_INVALID_OPERATION";
			break;
		case 1285:
			errorText = "GL_OUT_OF_MEMORY";
			break;
		case 1286:
			errorText = "GL_INVALID_FRAMEBUFFER_OPERATION";
			break;
		default:
			if(error == null) {
				errorText = "null";
			} else {
				errorText = "" + error;
			}
		}
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Error calling openGL api. Error: " + errorText + "\n"));
	}
}
GLUtils.debug = false
// Export
exports.default = GLUtils;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 38 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.errors.IllegalOperationError
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_errors_Error() {return __webpack_require__(30);}
// Constructor
var IllegalOperationError = function(message) {
	if(message == null) {
		message = "";
	}
	(openfl_errors_Error().default).call(this,message,0);
	this.name = "IllegalOperationError";
}
// Meta
IllegalOperationError.__name__ = ["openfl","errors","IllegalOperationError"];
IllegalOperationError.__super__ = (openfl_errors_Error().default);
IllegalOperationError.prototype = $extend((openfl_errors_Error().default).prototype, {
	
});
IllegalOperationError.prototype.__class__ = $hxClasses["openfl.errors.IllegalOperationError"] = IllegalOperationError;
// Init
// Statics
// Export
exports.default = IllegalOperationError;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 39 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app.Promise
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $bind = __webpack_require__(8).default;
var $import = __webpack_require__(2).default;
function lime_app_Future() {return __webpack_require__(24);}
// Constructor
var Promise = function() {
	this.future = new (lime_app_Future().default)();
}
// Meta
Promise.__name__ = ["lime","app","Promise"];
Promise.prototype = {
	complete: function(data) {
		if(!this.future.isError) {
			this.future.isComplete = true;
			this.future.value = data;
			if(this.future.__completeListeners != null) {
				var _g = 0;
				var _g1 = this.future.__completeListeners;
				while(_g < _g1.length) {
					var listener = _g1[_g];
					++_g;
					listener(data);
				}
				this.future.__completeListeners = null;
			}
		}
		return this;
	},
	completeWith: function(future) {
		future.onComplete($bind(this,this.complete));
		future.onError($bind(this,this.error));
		future.onProgress($bind(this,this.progress));
		return this;
	},
	error: function(msg) {
		if(!this.future.isComplete) {
			this.future.isError = true;
			this.future.error = msg;
			if(this.future.__errorListeners != null) {
				var _g = 0;
				var _g1 = this.future.__errorListeners;
				while(_g < _g1.length) {
					var listener = _g1[_g];
					++_g;
					listener(msg);
				}
				this.future.__errorListeners = null;
			}
		}
		return this;
	},
	progress: function(progress,total) {
		if(!this.future.isError && !this.future.isComplete) {
			if(this.future.__progressListeners != null) {
				var _g = 0;
				var _g1 = this.future.__progressListeners;
				while(_g < _g1.length) {
					var listener = _g1[_g];
					++_g;
					listener(progress,total);
				}
			}
		}
		return this;
	},
	get_isComplete: function() {
		return this.future.isComplete;
	},
	get_isError: function() {
		return this.future.isError;
	}
};
Promise.prototype.__class__ = $hxClasses["lime.app.Promise"] = Promise;
// Init
{
	var p = Promise.prototype;
	Object.defineProperties(p,{ "isComplete" : { get : p.get_isComplete}, "isError" : { get : p.get_isError}});
};
// Statics
// Export
exports.default = Promise;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 40 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.geom.ColorTransform
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
// Constructor
var ColorTransform = function(redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier,redOffset,greenOffset,blueOffset,alphaOffset) {
	if(alphaOffset == null) {
		alphaOffset = 0;
	}
	if(blueOffset == null) {
		blueOffset = 0;
	}
	if(greenOffset == null) {
		greenOffset = 0;
	}
	if(redOffset == null) {
		redOffset = 0;
	}
	if(alphaMultiplier == null) {
		alphaMultiplier = 1;
	}
	if(blueMultiplier == null) {
		blueMultiplier = 1;
	}
	if(greenMultiplier == null) {
		greenMultiplier = 1;
	}
	if(redMultiplier == null) {
		redMultiplier = 1;
	}
	this.redMultiplier = redMultiplier;
	this.greenMultiplier = greenMultiplier;
	this.blueMultiplier = blueMultiplier;
	this.alphaMultiplier = alphaMultiplier;
	this.redOffset = redOffset;
	this.greenOffset = greenOffset;
	this.blueOffset = blueOffset;
	this.alphaOffset = alphaOffset;
}
// Meta
ColorTransform.__name__ = ["openfl","geom","ColorTransform"];
ColorTransform.prototype = {
	concat: function(second) {
		this.redMultiplier *= second.redMultiplier;
		this.greenMultiplier *= second.greenMultiplier;
		this.blueMultiplier *= second.blueMultiplier;
		this.alphaMultiplier *= second.alphaMultiplier;
		this.redOffset = second.redMultiplier * this.redOffset + second.redOffset;
		this.greenOffset = second.greenMultiplier * this.greenOffset + second.greenOffset;
		this.blueOffset = second.blueMultiplier * this.blueOffset + second.blueOffset;
		this.alphaOffset = second.alphaMultiplier * this.alphaOffset + second.alphaOffset;
	},
	toString: function() {
		return "(redMultiplier=" + this.redMultiplier + ", greenMultiplier=" + this.greenMultiplier + ", blueMultiplier=" + this.blueMultiplier + ", alphaMultiplier=" + this.alphaMultiplier + ", redOffset=" + this.redOffset + ", greenOffset=" + this.greenOffset + ", blueOffset=" + this.blueOffset + ", alphaOffset=" + this.alphaOffset + ")";
	},
	__clone: function() {
		return new ColorTransform(this.redMultiplier,this.greenMultiplier,this.blueMultiplier,this.alphaMultiplier,this.redOffset,this.greenOffset,this.blueOffset,this.alphaOffset);
	},
	__copyFrom: function(ct) {
		this.redMultiplier = ct.redMultiplier;
		this.greenMultiplier = ct.greenMultiplier;
		this.blueMultiplier = ct.blueMultiplier;
		this.alphaMultiplier = ct.alphaMultiplier;
		this.redOffset = ct.redOffset;
		this.greenOffset = ct.greenOffset;
		this.blueOffset = ct.blueOffset;
		this.alphaOffset = ct.alphaOffset;
	},
	__combine: function(ct) {
		this.redMultiplier *= ct.redMultiplier;
		this.greenMultiplier *= ct.greenMultiplier;
		this.blueMultiplier *= ct.blueMultiplier;
		this.alphaMultiplier *= ct.alphaMultiplier;
		this.redOffset += ct.redOffset;
		this.greenOffset += ct.greenOffset;
		this.blueOffset += ct.blueOffset;
		this.alphaOffset += ct.alphaOffset;
	},
	__identity: function() {
		this.redMultiplier = 1;
		this.greenMultiplier = 1;
		this.blueMultiplier = 1;
		this.alphaMultiplier = 1;
		this.redOffset = 0;
		this.greenOffset = 0;
		this.blueOffset = 0;
		this.alphaOffset = 0;
	},
	__equals: function(ct,skipAlphaMultiplier) {
		if(skipAlphaMultiplier == null) {
			skipAlphaMultiplier = false;
		}
		if(ct != null && this.redMultiplier == ct.redMultiplier && this.greenMultiplier == ct.greenMultiplier && this.blueMultiplier == ct.blueMultiplier && (skipAlphaMultiplier || this.alphaMultiplier == ct.alphaMultiplier) && this.redOffset == ct.redOffset && this.greenOffset == ct.greenOffset && this.blueOffset == ct.blueOffset) {
			return this.alphaOffset == ct.alphaOffset;
		} else {
			return false;
		}
	},
	__isDefault: function() {
		if(this.redMultiplier == 1 && this.greenMultiplier == 1 && this.blueMultiplier == 1 && this.alphaMultiplier == 1 && this.redOffset == 0 && this.greenOffset == 0 && this.blueOffset == 0) {
			return this.alphaOffset == 0;
		} else {
			return false;
		}
	},
	get_color: function() {
		return (Std().default)["int"](this.redOffset) << 16 | (Std().default)["int"](this.greenOffset) << 8 | (Std().default)["int"](this.blueOffset);
	},
	set_color: function(value) {
		this.redOffset = value >> 16 & 255;
		this.greenOffset = value >> 8 & 255;
		this.blueOffset = value & 255;
		this.redMultiplier = 0;
		this.greenMultiplier = 0;
		this.blueMultiplier = 0;
		return this.get_color();
	},
	__toLimeColorMatrix: function() {
		if(ColorTransform.__limeColorMatrix == null) {
			var this1 = new Float32Array(20);
			ColorTransform.__limeColorMatrix = this1;
		}
		ColorTransform.__limeColorMatrix[0] = this.redMultiplier;
		ColorTransform.__limeColorMatrix[4] = this.redOffset / 255;
		ColorTransform.__limeColorMatrix[6] = this.greenMultiplier;
		ColorTransform.__limeColorMatrix[9] = this.greenOffset / 255;
		ColorTransform.__limeColorMatrix[12] = this.blueMultiplier;
		ColorTransform.__limeColorMatrix[14] = this.blueOffset / 255;
		ColorTransform.__limeColorMatrix[18] = this.alphaMultiplier;
		ColorTransform.__limeColorMatrix[19] = this.alphaOffset / 255;
		return ColorTransform.__limeColorMatrix;
	}
};
ColorTransform.prototype.__class__ = $hxClasses["openfl.geom.ColorTransform"] = ColorTransform;
// Init
Object.defineProperty(ColorTransform.prototype,"color",{ get : function () { return this.get_color (); }, set : function (v) { return this.set_color (v); }});
// Statics
// Export
exports.default = ColorTransform;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 41 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.math.Rectangle
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_math_Vector2() {return __webpack_require__(42);}
// Constructor
var Rectangle = function(x,y,width,height) {
	if(height == null) {
		height = 0;
	}
	if(width == null) {
		width = 0;
	}
	if(y == null) {
		y = 0;
	}
	if(x == null) {
		x = 0;
	}
	this.x = x;
	this.y = y;
	this.width = width;
	this.height = height;
}
// Meta
Rectangle.__name__ = ["lime","math","Rectangle"];
Rectangle.prototype = {
	clone: function() {
		return new Rectangle(this.x,this.y,this.width,this.height);
	},
	contains: function(x,y) {
		if(x >= this.x && y >= this.y && x < this.get_right()) {
			return y < this.get_bottom();
		} else {
			return false;
		}
	},
	containsPoint: function(point) {
		return this.contains(point.x,point.y);
	},
	containsRect: function(rect) {
		if(rect.width <= 0 || rect.height <= 0) {
			if(rect.x > this.x && rect.y > this.y && rect.get_right() < this.get_right()) {
				return rect.get_bottom() < this.get_bottom();
			} else {
				return false;
			}
		} else if(rect.x >= this.x && rect.y >= this.y && rect.get_right() <= this.get_right()) {
			return rect.get_bottom() <= this.get_bottom();
		} else {
			return false;
		}
	},
	copyFrom: function(sourceRect) {
		this.x = sourceRect.x;
		this.y = sourceRect.y;
		this.width = sourceRect.width;
		this.height = sourceRect.height;
	},
	equals: function(toCompare) {
		if(toCompare != null && this.x == toCompare.x && this.y == toCompare.y && this.width == toCompare.width) {
			return this.height == toCompare.height;
		} else {
			return false;
		}
	},
	inflate: function(dx,dy) {
		this.x -= dx;
		this.width += dx * 2;
		this.y -= dy;
		this.height += dy * 2;
	},
	inflatePoint: function(point) {
		this.inflate(point.x,point.y);
	},
	intersection: function(toIntersect) {
		var x0 = this.x < toIntersect.x ? toIntersect.x : this.x;
		var x1 = this.get_right() > toIntersect.get_right() ? toIntersect.get_right() : this.get_right();
		if(x1 <= x0) {
			return new Rectangle();
		}
		var y0 = this.y < toIntersect.y ? toIntersect.y : this.y;
		var y1 = this.get_bottom() > toIntersect.get_bottom() ? toIntersect.get_bottom() : this.get_bottom();
		if(y1 <= y0) {
			return new Rectangle();
		}
		return new Rectangle(x0,y0,x1 - x0,y1 - y0);
	},
	intersects: function(toIntersect) {
		var x0 = this.x < toIntersect.x ? toIntersect.x : this.x;
		var x1 = this.get_right() > toIntersect.get_right() ? toIntersect.get_right() : this.get_right();
		if(x1 <= x0) {
			return false;
		}
		var y0 = this.y < toIntersect.y ? toIntersect.y : this.y;
		var y1 = this.get_bottom() > toIntersect.get_bottom() ? toIntersect.get_bottom() : this.get_bottom();
		return y1 > y0;
	},
	isEmpty: function() {
		if(!(this.width <= 0)) {
			return this.height <= 0;
		} else {
			return true;
		}
	},
	offset: function(dx,dy) {
		this.x += dx;
		this.y += dy;
	},
	offsetPoint: function(point) {
		this.x += point.x;
		this.y += point.y;
	},
	setEmpty: function() {
		this.x = this.y = this.width = this.height = 0;
	},
	setTo: function(xa,ya,widtha,heighta) {
		this.x = xa;
		this.y = ya;
		this.width = widtha;
		this.height = heighta;
	},
	transform: function(m) {
		var tx0 = m.a * this.x + m.c * this.y;
		var tx1 = tx0;
		var ty0 = m.b * this.x + m.d * this.y;
		var ty1 = ty0;
		var tx = m.a * (this.x + this.width) + m.c * this.y;
		var ty = m.b * (this.x + this.width) + m.d * this.y;
		if(tx < tx0) {
			tx0 = tx;
		}
		if(ty < ty0) {
			ty0 = ty;
		}
		if(tx > tx1) {
			tx1 = tx;
		}
		if(ty > ty1) {
			ty1 = ty;
		}
		tx = m.a * (this.x + this.width) + m.c * (this.y + this.height);
		ty = m.b * (this.x + this.width) + m.d * (this.y + this.height);
		if(tx < tx0) {
			tx0 = tx;
		}
		if(ty < ty0) {
			ty0 = ty;
		}
		if(tx > tx1) {
			tx1 = tx;
		}
		if(ty > ty1) {
			ty1 = ty;
		}
		tx = m.a * this.x + m.c * (this.y + this.height);
		ty = m.b * this.x + m.d * (this.y + this.height);
		if(tx < tx0) {
			tx0 = tx;
		}
		if(ty < ty0) {
			ty0 = ty;
		}
		if(tx > tx1) {
			tx1 = tx;
		}
		if(ty > ty1) {
			ty1 = ty;
		}
		return new Rectangle(tx0 + m.tx,ty0 + m.ty,tx1 - tx0,ty1 - ty0);
	},
	union: function(toUnion) {
		if(this.width == 0 || this.height == 0) {
			return toUnion.clone();
		} else if(toUnion.width == 0 || toUnion.height == 0) {
			return this.clone();
		}
		var x0 = this.x > toUnion.x ? toUnion.x : this.x;
		var x1 = this.get_right() < toUnion.get_right() ? toUnion.get_right() : this.get_right();
		var y0 = this.y > toUnion.y ? toUnion.y : this.y;
		var y1 = this.get_bottom() < toUnion.get_bottom() ? toUnion.get_bottom() : this.get_bottom();
		return new Rectangle(x0,y0,x1 - x0,y1 - y0);
	},
	__contract: function(x,y,width,height) {
		if(this.width == 0 && this.height == 0) {
			return;
		}
		if(this.x < x) {
			this.x = x;
		}
		if(this.y < y) {
			this.y = y;
		}
		if(this.get_right() > x + width) {
			this.width = x + width - this.x;
		}
		if(this.get_bottom() > y + height) {
			this.height = y + height - this.y;
		}
	},
	__expand: function(x,y,width,height) {
		if(this.width == 0 && this.height == 0) {
			this.x = x;
			this.y = y;
			this.width = width;
			this.height = height;
			return;
		}
		var cacheRight = this.get_right();
		var cacheBottom = this.get_bottom();
		if(this.x > x) {
			this.x = x;
		}
		if(this.y > y) {
			this.y = y;
		}
		if(cacheRight < x + width) {
			this.width = x + width - this.x;
		}
		if(cacheBottom < y + height) {
			this.height = y + height - this.y;
		}
	},
	__toFlashRectangle: function() {
		return null;
	},
	get_bottom: function() {
		return this.y + this.height;
	},
	set_bottom: function(b) {
		this.height = b - this.y;
		return b;
	},
	get_bottomRight: function() {
		return new (lime_math_Vector2().default)(this.x + this.width,this.y + this.height);
	},
	set_bottomRight: function(p) {
		this.width = p.x - this.x;
		this.height = p.y - this.y;
		return p.clone();
	},
	get_left: function() {
		return this.x;
	},
	set_left: function(l) {
		this.width -= l - this.x;
		this.x = l;
		return l;
	},
	get_right: function() {
		return this.x + this.width;
	},
	set_right: function(r) {
		this.width = r - this.x;
		return r;
	},
	get_size: function() {
		return new (lime_math_Vector2().default)(this.width,this.height);
	},
	set_size: function(p) {
		this.width = p.x;
		this.height = p.y;
		return p.clone();
	},
	get_top: function() {
		return this.y;
	},
	set_top: function(t) {
		this.height -= t - this.y;
		this.y = t;
		return t;
	},
	get_topLeft: function() {
		return new (lime_math_Vector2().default)(this.x,this.y);
	},
	set_topLeft: function(p) {
		this.x = p.x;
		this.y = p.y;
		return p.clone();
	}
};
Rectangle.prototype.__class__ = $hxClasses["lime.math.Rectangle"] = Rectangle;
// Init
// Statics
// Export
exports.default = Rectangle;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 42 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.math.Vector2
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var Vector2 = function(x,y) {
	if(y == null) {
		y = 0;
	}
	if(x == null) {
		x = 0;
	}
	this.x = x;
	this.y = y;
}
// Meta
Vector2.__name__ = ["lime","math","Vector2"];
Vector2.prototype = {
	add: function(v) {
		return new Vector2(v.x + this.x,v.y + this.y);
	},
	clone: function() {
		return new Vector2(this.x,this.y);
	},
	equals: function(toCompare) {
		if(toCompare != null && toCompare.x == this.x) {
			return toCompare.y == this.y;
		} else {
			return false;
		}
	},
	normalize: function(thickness) {
		if(this.x == 0 && this.y == 0) {
			return;
		} else {
			var norm = thickness / Math.sqrt(this.x * this.x + this.y * this.y);
			this.x *= norm;
			this.y *= norm;
		}
	},
	offset: function(dx,dy) {
		this.x += dx;
		this.y += dy;
	},
	setTo: function(xa,ya) {
		this.x = xa;
		this.y = ya;
	},
	subtract: function(v) {
		return new Vector2(this.x - v.x,this.y - v.y);
	},
	__toFlashPoint: function() {
		return null;
	},
	get_length: function() {
		return Math.sqrt(this.x * this.x + this.y * this.y);
	}
};
Vector2.prototype.__class__ = $hxClasses["lime.math.Vector2"] = Vector2;
// Init
// Statics
Vector2.distance = function(pt1,pt2) {
	var dx = pt1.x - pt2.x;
	var dy = pt1.y - pt2.y;
	return Math.sqrt(dx * dx + dy * dy);
}
Vector2.interpolate = function(pt1,pt2,f) {
	return new Vector2(pt2.x + f * (pt1.x - pt2.x),pt2.y + f * (pt1.y - pt2.y));
}
Vector2.polar = function(len,angle) {
	return new Vector2(len * Math.cos(angle),len * Math.sin(angle));
}
// Export
exports.default = Vector2;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: _UInt.UInt_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var UInt_Impl_ = function(){}
// Meta
UInt_Impl_.__name__ = ["_UInt","UInt_Impl_"];
UInt_Impl_.prototype = {
	
};
UInt_Impl_.prototype.__class__ = $hxClasses["_UInt.UInt_Impl_"] = UInt_Impl_;
// Init
// Statics
UInt_Impl_.gt = function(a,b) {
	var aNeg = a < 0;
	var bNeg = b < 0;
	if(aNeg != bNeg) {
		return aNeg;
	} else {
		return a > b;
	}
}
UInt_Impl_.toFloat = function(this1) {
	var $int = this1;
	if($int < 0) {
		return 4294967296.0 + $int;
	} else {
		return $int + 0.0;
	}
}
// Export
exports.default = UInt_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 44 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.BitmapData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_IBitmapDrawable() {return __webpack_require__(112);}
function lime_graphics_ImageChannel() {return __webpack_require__(111);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
function lime_graphics_opengl_GL() {return __webpack_require__(49);}
function openfl__$internal_renderer_opengl_GLRenderer() {return __webpack_require__(162);}
function js_Boot() {return __webpack_require__(20);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function openfl__$internal_renderer_RenderSession() {return __webpack_require__(91);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function openfl__$internal_renderer_canvas_CanvasMaskManager() {return __webpack_require__(161);}
function openfl__$internal_renderer_canvas_CanvasBlendModeManager() {return __webpack_require__(160);}
function openfl_utils_ByteArrayData() {return __webpack_require__(45);}
function Std() {return __webpack_require__(4);}
function openfl_display_PNGEncoderOptions() {return __webpack_require__(177);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl_display_JPEGEncoderOptions() {return __webpack_require__(178);}
function lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$() {return __webpack_require__(94);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$() {return __webpack_require__(309);}
function lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$() {return __webpack_require__(310);}
function lime_graphics_opengl_GLContextType() {return __webpack_require__(87);}
function lime_graphics_ImageType() {return __webpack_require__(55);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
function openfl_display_Bitmap() {return __webpack_require__(89);}
function openfl_geom_Point() {return __webpack_require__(29);}
function openfl__$internal_utils_PerlinNoise() {return __webpack_require__(311);}
function _$UInt_UInt_$Impl_$() {return __webpack_require__(43);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_Error() {return __webpack_require__(30);}
function openfl_utils__$Endian_Endian_$Impl_$() {return __webpack_require__(312);}
function lime_graphics_Image() {return __webpack_require__(56);}
function lime_app_Future() {return __webpack_require__(24);}
function openfl__$internal_renderer_opengl_GLMaskManager() {return __webpack_require__(59);}
function lime_math_Vector2() {return __webpack_require__(42);}
function openfl_geom_ColorTransform() {return __webpack_require__(40);}
// Constructor
var BitmapData = function(width,height,transparent,fillColor) {
	if(fillColor == null) {
		fillColor = -1;
	}
	if(transparent == null) {
		transparent = true;
	}
	this.transparent = transparent;
	if(width == null) {
		width = 0;
	} else {
		width = width;
	}
	if(height == null) {
		height = 0;
	} else {
		height = height;
	}
	if(width < 0) {
		width = 0;
	} else {
		width = width;
	}
	if(height < 0) {
		height = 0;
	} else {
		height = height;
	}
	this.width = width;
	this.height = height;
	this.rect = new (openfl_geom_Rectangle().default)(0,0,width,height);
	if(width > 0 && height > 0) {
		if(transparent) {
			if((fillColor & -16777216) == 0) {
				fillColor = 0;
			}
		} else {
			fillColor = -16777216 | fillColor & 16777215;
		}
		fillColor = fillColor << 8 | fillColor >>> 24 & 255;
		this.image = new (lime_graphics_Image().default)(null,0,0,width,height,fillColor);
		this.image.set_transparent(transparent);
		this.__isValid = true;
		this.readable = true;
	}
	this.__worldTransform = new (openfl_geom_Matrix().default)();
	this.__worldColorTransform = new (openfl_geom_ColorTransform().default)();
	this.__renderable = true;
}
// Meta
BitmapData.__name__ = ["openfl","display","BitmapData"];
BitmapData.__interfaces__ = [(openfl_display_IBitmapDrawable().default)];
BitmapData.prototype = {
	applyFilter: function(sourceBitmapData,sourceRect,destPoint,filter) {
		if(!this.readable || sourceBitmapData == null || !sourceBitmapData.readable) {
			return;
		}
		filter.__applyFilter(this,sourceBitmapData,sourceRect,destPoint);
	},
	clone: function() {
		if(!this.__isValid) {
			return new BitmapData(this.width,this.height,this.transparent,0);
		} else if(!this.readable && this.image == null) {
			var bitmapData = new BitmapData(0,0,this.transparent,0);
			bitmapData.width = this.width;
			bitmapData.height = this.height;
			bitmapData.rect.copyFrom(this.rect);
			bitmapData.__framebuffer = this.__framebuffer;
			bitmapData.__framebufferContext = this.__framebufferContext;
			bitmapData.__texture = this.__texture;
			bitmapData.__textureContext = this.__textureContext;
			bitmapData.__isValid = true;
			return bitmapData;
		} else {
			return BitmapData.fromImage(this.image.clone(),this.transparent);
		}
	},
	colorTransform: function(rect,colorTransform) {
		if(!this.readable) {
			return;
		}
		this.image.colorTransform(rect.__toLimeRectangle(),colorTransform.__toLimeColorMatrix());
	},
	compare: function(otherBitmapData) {
		if(otherBitmapData == this) {
			return 0;
		} else if(otherBitmapData == null) {
			return -1;
		} else if(this.readable == false || otherBitmapData.readable == false) {
			return -2;
		} else if(this.width != otherBitmapData.width) {
			return -3;
		} else if(this.height != otherBitmapData.height) {
			return -4;
		}
		if(this.image != null && otherBitmapData.image != null && this.image.get_format() == otherBitmapData.image.get_format()) {
			var bytes = this.image.get_data();
			var otherBytes = otherBitmapData.image.get_data();
			var equal = true;
			var _g1 = 0;
			var _g = bytes.length;
			while(_g1 < _g) {
				var i = _g1++;
				if(bytes[i] != otherBytes[i]) {
					equal = false;
					break;
				}
			}
			if(equal) {
				return 0;
			}
		}
		var bitmapData = null;
		var foundDifference;
		var pixel;
		var otherPixel;
		var comparePixel;
		var r;
		var g;
		var b;
		var a;
		var _g11 = 0;
		var _g2 = this.height;
		while(_g11 < _g2) {
			var y = _g11++;
			var _g3 = 0;
			var _g21 = this.width;
			while(_g3 < _g21) {
				var x = _g3++;
				foundDifference = false;
				pixel = this.getPixel32(x,y);
				otherPixel = otherBitmapData.getPixel32(x,y);
				comparePixel = 0;
				if(pixel != otherPixel) {
					r = (pixel >>> 16 & 255) - (otherPixel >>> 16 & 255);
					g = (pixel >>> 8 & 255) - (otherPixel >>> 8 & 255);
					b = (pixel & 255) - (otherPixel & 255);
					if(r < 0) {
						r *= -1;
					}
					if(g < 0) {
						g *= -1;
					}
					if(b < 0) {
						b *= -1;
					}
					if(r == 0 && g == 0 && b == 0) {
						a = (pixel >>> 24 & 255) - (otherPixel >>> 24 & 255);
						if(a != 0) {
							comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | 16711680 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255;
							comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | 65280 | comparePixel & 255 & 255;
							comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | 255;
							comparePixel = (a & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255;
							foundDifference = true;
						}
					} else {
						comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (r & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255;
						comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (g & 255) << 8 | comparePixel & 255 & 255;
						comparePixel = (comparePixel >>> 24 & 255 & 255) << 24 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | b & 255;
						comparePixel = -16777216 | (comparePixel >>> 16 & 255 & 255) << 16 | (comparePixel >>> 8 & 255 & 255) << 8 | comparePixel & 255 & 255;
						foundDifference = true;
					}
				}
				if(foundDifference) {
					if(bitmapData == null) {
						bitmapData = new BitmapData(this.width,this.height,this.transparent || otherBitmapData.transparent,0);
					}
					bitmapData.setPixel32(x,y,comparePixel);
				}
			}
		}
		if(bitmapData == null) {
			return 0;
		}
		return bitmapData;
	},
	copyChannel: function(sourceBitmapData,sourceRect,destPoint,sourceChannel,destChannel) {
		if(!this.readable) {
			return;
		}
		var sourceChannel1;
		switch(sourceChannel) {
		case 1:
			sourceChannel1 = (lime_graphics_ImageChannel().default).RED;
			break;
		case 2:
			sourceChannel1 = (lime_graphics_ImageChannel().default).GREEN;
			break;
		case 4:
			sourceChannel1 = (lime_graphics_ImageChannel().default).BLUE;
			break;
		case 8:
			sourceChannel1 = (lime_graphics_ImageChannel().default).ALPHA;
			break;
		default:
			return;
		}
		var destChannel1;
		switch(destChannel) {
		case 1:
			destChannel1 = (lime_graphics_ImageChannel().default).RED;
			break;
		case 2:
			destChannel1 = (lime_graphics_ImageChannel().default).GREEN;
			break;
		case 4:
			destChannel1 = (lime_graphics_ImageChannel().default).BLUE;
			break;
		case 8:
			destChannel1 = (lime_graphics_ImageChannel().default).ALPHA;
			break;
		default:
			return;
		}
		this.image.copyChannel(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),sourceChannel1,destChannel1);
	},
	copyPixels: function(sourceBitmapData,sourceRect,destPoint,alphaBitmapData,alphaPoint,mergeAlpha) {
		if(mergeAlpha == null) {
			mergeAlpha = false;
		}
		if(!this.readable || sourceBitmapData == null) {
			return;
		}
		if(alphaPoint != null) {
			BitmapData.__tempVector.x = alphaPoint.x;
			BitmapData.__tempVector.y = alphaPoint.y;
		}
		this.image.copyPixels(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),alphaBitmapData != null ? alphaBitmapData.image : null,alphaPoint != null ? BitmapData.__tempVector : null,mergeAlpha);
	},
	dispose: function() {
		this.image = null;
		this.width = 0;
		this.height = 0;
		this.rect = null;
		this.__isValid = false;
		this.readable = false;
		this.__surface = null;
		this.__buffer = null;
		this.__framebuffer = null;
		this.__framebufferContext = null;
		this.__texture = null;
		this.__textureContext = null;
	},
	disposeImage: function() {
		this.readable = false;
	},
	draw: function(source,matrix,colorTransform,blendMode,clipRect,smoothing) {
		if(smoothing == null) {
			smoothing = false;
		}
		if(matrix == null) {
			matrix = new (openfl_geom_Matrix().default)();
			if(source.__transform != null) {
				matrix.copyFrom(source.__transform);
				matrix.tx = 0;
				matrix.ty = 0;
			}
		}
		if(!this.readable) {
			if((lime_graphics_opengl_GL().default).context != null) {
				var gl = (lime_graphics_opengl_GL().default).context;
				gl.bindFramebuffer(gl.FRAMEBUFFER,this.__getFramebuffer(gl));
				gl.viewport(0,0,this.width,this.height);
				var renderer = new (openfl__$internal_renderer_opengl_GLRenderer().default)(null,gl,this);
				var renderSession = renderer.renderSession;
				renderSession.clearRenderDirty = false;
				renderSession.shaderManager = ((js_Boot().default).__cast(null , (openfl__$internal_renderer_opengl_GLRenderer().default))).renderSession.shaderManager;
				var matrixCache = source.__worldTransform;
				source.__updateTransforms(matrix);
				source.__updateChildren(false);
				source.__renderGL(renderer.renderSession);
				source.__updateTransforms(matrixCache);
				source.__updateChildren(true);
				gl.bindFramebuffer(gl.FRAMEBUFFER,null);
			}
		} else {
			if(colorTransform != null) {
				var bounds = (openfl_geom_Rectangle().default).__pool.get();
				var boundsMatrix = (openfl_geom_Matrix().default).__pool.get();
				source.__getBounds(bounds,boundsMatrix);
				var width = Math.ceil(bounds.width);
				var height = Math.ceil(bounds.height);
				var copy = new BitmapData(width,height,true,0);
				copy.draw(source);
				copy.colorTransform(copy.rect,colorTransform);
				source = copy;
				(openfl_geom_Rectangle().default).__pool.release(bounds);
				(openfl_geom_Matrix().default).__pool.release(boundsMatrix);
			}
			(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(this.image);
			var buffer = this.image.buffer;
			var renderSession1 = new (openfl__$internal_renderer_RenderSession().default)();
			renderSession1.renderType = (lime_graphics_RendererType().default).CANVAS;
			renderSession1.clearRenderDirty = false;
			renderSession1.context = buffer.__srcContext;
			renderSession1.allowSmoothing = smoothing;
			renderSession1.maskManager = new (openfl__$internal_renderer_canvas_CanvasMaskManager().default)(renderSession1);
			renderSession1.blendModeManager = new (openfl__$internal_renderer_canvas_CanvasBlendModeManager().default)(renderSession1);
			renderSession1.blendModeManager.setBlendMode(blendMode);
			if(!smoothing) {
				buffer.__srcContext.mozImageSmoothingEnabled = false;
				buffer.__srcContext.msImageSmoothingEnabled = false;
				buffer.__srcContext.imageSmoothingEnabled = false;
			}
			if(clipRect != null) {
				renderSession1.maskManager.pushRect(clipRect,new (openfl_geom_Matrix().default)());
			}
			var matrixCache1 = source.__worldTransform;
			source.__updateTransforms(matrix);
			source.__updateChildren(false);
			source.__renderCanvas(renderSession1);
			source.__updateTransforms(matrixCache1);
			source.__updateChildren(true);
			if(!smoothing) {
				buffer.__srcContext.mozImageSmoothingEnabled = true;
				buffer.__srcContext.msImageSmoothingEnabled = true;
				buffer.__srcContext.imageSmoothingEnabled = true;
			}
			if(clipRect != null) {
				renderSession1.maskManager.popRect();
			}
			buffer.__srcContext.setTransform(1,0,0,1,0,0);
			buffer.__srcImageData = null;
			buffer.data = null;
			this.image.dirty = true;
			this.image.version++;
		}
	},
	drawWithQuality: function(source,matrix,colorTransform,blendMode,clipRect,smoothing,quality) {
		if(smoothing == null) {
			smoothing = false;
		}
		this.draw(source,matrix,colorTransform,blendMode,clipRect,quality != "low" && smoothing);
	},
	encode: function(rect,compressor,byteArray) {
		if(!this.readable || rect == null) {
			byteArray = null;
			return byteArray;
		}
		if(byteArray == null) {
			var this1 = new (openfl_utils_ByteArrayData().default)(0);
			byteArray = this1;
		}
		var image = this.image;
		if(!rect.equals(this.rect)) {
			var matrix = (openfl_geom_Matrix().default).__pool.get();
			matrix.tx = Math.round(-rect.x);
			matrix.ty = Math.round(-rect.y);
			var bitmapData = new BitmapData(Math.ceil(rect.width),Math.ceil(rect.height),true,0);
			bitmapData.draw(this,matrix);
			image = bitmapData.image;
			(openfl_geom_Matrix().default).__pool.release(matrix);
		}
		if((Std().default)["is"](compressor,(openfl_display_PNGEncoderOptions().default))) {
			byteArray.writeBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(image.encode("png")));
			return byteArray;
		} else if((Std().default)["is"](compressor,(openfl_display_JPEGEncoderOptions().default))) {
			byteArray.writeBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(image.encode("jpg",((js_Boot().default).__cast(compressor , (openfl_display_JPEGEncoderOptions().default))).quality)));
			return byteArray;
		}
		byteArray = null;
		return byteArray;
	},
	fillRect: function(rect,color) {
		if(rect == null) {
			return;
		}
		if(this.transparent && (color & -16777216) == 0) {
			color = 0;
		}
		if(this.readable) {
			this.image.fillRect(rect.__toLimeRectangle(),color,1);
		} else if(this.__framebuffer != null) {
			var gl = (lime_graphics_opengl_GL().default).context;
			var color1 = color;
			var useScissor = !this.rect.equals(rect);
			gl.bindFramebuffer(gl.FRAMEBUFFER,this.__framebuffer);
			if(useScissor) {
				gl.enable(gl.SCISSOR_TEST);
				gl.scissor(Math.round(rect.x),Math.round(rect.y),Math.round(rect.width),Math.round(rect.height));
			}
			gl.clearColor((color1 >>> 16 & 255) / 255,(color1 >>> 8 & 255) / 255,(color1 & 255) / 255,(color1 >>> 24 & 255) / 255);
			gl.clear(gl.COLOR_BUFFER_BIT);
			if(useScissor) {
				gl.disable(gl.SCISSOR_TEST);
			}
			gl.bindFramebuffer(gl.FRAMEBUFFER,null);
		}
	},
	floodFill: function(x,y,color) {
		if(!this.readable) {
			return;
		}
		this.image.floodFill(x,y,color,1);
	},
	generateFilterRect: function(sourceRect,filter) {
		return sourceRect.clone();
	},
	getBuffer: function(gl,alpha,colorTransform) {
		if(this.__buffer == null || this.__bufferContext != gl) {
			var uvWidth = 1;
			var uvHeight = 1;
			var this1 = new Float32Array(104);
			this.__bufferData = this1;
			this.__bufferData[0] = this.width;
			this.__bufferData[1] = this.height;
			this.__bufferData[3] = uvWidth;
			this.__bufferData[4] = uvHeight;
			this.__bufferData[27] = this.height;
			this.__bufferData[30] = uvHeight;
			this.__bufferData[52] = this.width;
			this.__bufferData[55] = uvWidth;
			var _g = 0;
			while(_g < 4) {
				var i = _g++;
				this.__bufferData[26 * i + 5] = alpha;
				if(colorTransform != null) {
					this.__bufferData[26 * i + 6] = colorTransform.redMultiplier;
					this.__bufferData[26 * i + 11] = colorTransform.greenMultiplier;
					this.__bufferData[26 * i + 16] = colorTransform.blueMultiplier;
					this.__bufferData[26 * i + 21] = colorTransform.alphaMultiplier;
					this.__bufferData[26 * i + 22] = colorTransform.redOffset / 255;
					this.__bufferData[26 * i + 23] = colorTransform.greenOffset / 255;
					this.__bufferData[26 * i + 24] = colorTransform.blueOffset / 255;
					this.__bufferData[26 * i + 25] = colorTransform.alphaOffset / 255;
				} else {
					this.__bufferData[26 * i + 6] = 1;
					this.__bufferData[26 * i + 11] = 1;
					this.__bufferData[26 * i + 16] = 1;
					this.__bufferData[26 * i + 21] = 1;
				}
			}
			this.__bufferAlpha = alpha;
			this.__bufferColorTransform = colorTransform != null ? colorTransform.__clone() : null;
			this.__bufferContext = gl;
			this.__buffer = gl.createBuffer();
			gl.bindBuffer(gl.ARRAY_BUFFER,this.__buffer);
			(lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$().default).bufferData(gl,gl.ARRAY_BUFFER,this.__bufferData,gl.STATIC_DRAW);
		} else {
			var dirty = false;
			if(this.__bufferAlpha != alpha) {
				dirty = true;
				var _g1 = 0;
				while(_g1 < 4) {
					var i1 = _g1++;
					this.__bufferData[26 * i1 + 5] = alpha;
				}
				this.__bufferAlpha = alpha;
			}
			if(this.__bufferColorTransform == null && colorTransform != null || this.__bufferColorTransform != null && !this.__bufferColorTransform.__equals(colorTransform)) {
				dirty = true;
				if(colorTransform != null) {
					if(this.__bufferColorTransform == null) {
						this.__bufferColorTransform = colorTransform.__clone();
					} else {
						this.__bufferColorTransform.__copyFrom(colorTransform);
					}
					var _g2 = 0;
					while(_g2 < 4) {
						var i2 = _g2++;
						this.__bufferData[26 * i2 + 6] = colorTransform.redMultiplier;
						this.__bufferData[26 * i2 + 11] = colorTransform.greenMultiplier;
						this.__bufferData[26 * i2 + 16] = colorTransform.blueMultiplier;
						this.__bufferData[26 * i2 + 21] = colorTransform.alphaMultiplier;
						this.__bufferData[26 * i2 + 22] = colorTransform.redOffset / 255;
						this.__bufferData[26 * i2 + 23] = colorTransform.greenOffset / 255;
						this.__bufferData[26 * i2 + 24] = colorTransform.blueOffset / 255;
						this.__bufferData[26 * i2 + 25] = colorTransform.alphaOffset / 255;
					}
				} else {
					var _g3 = 0;
					while(_g3 < 4) {
						var i3 = _g3++;
						this.__bufferData[26 * i3 + 6] = 1;
						this.__bufferData[26 * i3 + 11] = 1;
						this.__bufferData[26 * i3 + 16] = 1;
						this.__bufferData[26 * i3 + 21] = 1;
						this.__bufferData[26 * i3 + 22] = 0;
						this.__bufferData[26 * i3 + 23] = 0;
						this.__bufferData[26 * i3 + 24] = 0;
						this.__bufferData[26 * i3 + 25] = 0;
					}
				}
			}
			gl.bindBuffer(gl.ARRAY_BUFFER,this.__buffer);
			if(dirty) {
				gl.bufferData(gl.ARRAY_BUFFER,this.__bufferData.byteLength,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(this.__bufferData),gl.STATIC_DRAW);
			}
		}
		return this.__buffer;
	},
	getColorBoundsRect: function(mask,color,findColor) {
		if(findColor == null) {
			findColor = true;
		}
		if(!this.readable) {
			return new (openfl_geom_Rectangle().default)(0,0,this.width,this.height);
		}
		if(!this.transparent || (mask >> 24 & 255) > 0) {
			var color1 = color;
			if((color1 >>> 24 & 255) == 0) {
				color1 = 0;
			}
		}
		var rect = this.image.getColorBoundsRect(mask,color,findColor,1);
		return new (openfl_geom_Rectangle().default)(rect.x,rect.y,rect.width,rect.height);
	},
	getPixel: function(x,y) {
		if(!this.readable) {
			return 0;
		}
		return this.image.getPixel(x,y,1);
	},
	getPixel32: function(x,y) {
		if(!this.readable) {
			return 0;
		}
		return this.image.getPixel32(x,y,1);
	},
	getPixels: function(rect) {
		if(!this.readable) {
			return null;
		}
		if(rect == null) {
			rect = this.rect;
		}
		var byteArray = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(this.image.getPixels(rect.__toLimeRectangle(),1));
		byteArray.set_endian("bigEndian");
		return byteArray;
	},
	getSurface: function() {
		if(!this.readable) {
			return null;
		}
		if(this.__surface == null) {
			this.__surface = (lime_graphics_cairo__$CairoImageSurface_CairoImageSurface_$Impl_$().default).fromImage(this.image);
		}
		return this.__surface;
	},
	getTexture: function(gl) {
		if(!this.__isValid) {
			return null;
		}
		if(this.__texture == null || this.__textureContext != gl) {
			this.__textureContext = gl;
			this.__texture = gl.createTexture();
			gl.bindTexture(gl.TEXTURE_2D,this.__texture);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST);
			this.__textureVersion = -1;
		}
		(lime_graphics_utils_ImageCanvasUtil().default).sync(this.image,false);
		if(this.image != null && this.image.version != this.__textureVersion) {
			var internalFormat;
			var format;
			if(this.__surface != null) {
				(lime_graphics_cairo__$CairoSurface_CairoSurface_$Impl_$().default).flush(this.__surface);
			}
			if(this.image.buffer.bitsPerPixel == 1) {
				internalFormat = gl.ALPHA;
				format = gl.ALPHA;
			} else {
				if(BitmapData.__supportsBGRA == null) {
					BitmapData.__textureInternalFormat = gl.RGBA;
					var bgraExtension = null;
					if(bgraExtension != null) {
						BitmapData.__supportsBGRA = true;
						BitmapData.__textureFormat = bgraExtension.BGRA_EXT;
						if(gl.type == (lime_graphics_opengl_GLContextType().default).GLES) {
							BitmapData.__textureInternalFormat = bgraExtension.BGRA_EXT;
						}
					} else {
						BitmapData.__supportsBGRA = false;
						BitmapData.__textureFormat = gl.RGBA;
					}
				}
				internalFormat = BitmapData.__textureInternalFormat;
				format = BitmapData.__textureFormat;
			}
			gl.bindTexture(gl.TEXTURE_2D,this.__texture);
			var textureImage = this.image;
			if(textureImage.type != (lime_graphics_ImageType().default).DATA && !textureImage.get_premultiplied()) {
				gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1);
			} else if(!textureImage.get_premultiplied() && textureImage.get_transparent()) {
				gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1);
			}
			if(!BitmapData.__supportsBGRA && textureImage.get_format() != 0) {
				textureImage = textureImage.clone();
				textureImage.set_format(0);
			}
			if(textureImage.type == (lime_graphics_ImageType().default).DATA) {
				gl.texImage2D(gl.TEXTURE_2D,0,internalFormat,textureImage.buffer.width,textureImage.buffer.height,0,format,gl.UNSIGNED_BYTE,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(textureImage.get_data()));
			} else {
				(lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$().default).texImage2D(gl,gl.TEXTURE_2D,0,internalFormat,format,gl.UNSIGNED_BYTE,textureImage.get_src());
			}
			gl.bindTexture(gl.TEXTURE_2D,null);
			this.__textureVersion = this.image.version;
		}
		if(!this.readable && this.image != null) {
			this.__surface = null;
			this.image = null;
		}
		return this.__texture;
	},
	getVector: function(rect) {
		var pixels = this.getPixels(rect);
		var length = (Std().default)["int"]((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(pixels) / 4);
		var result = (openfl__$Vector_Vector_$Impl_$().default)._new(length,true);
		var _g1 = 0;
		var _g = length;
		while(_g1 < _g) {
			var i = _g1++;
			result.set(i,pixels.readUnsignedInt());
		}
		return result;
	},
	histogram: function(hRect) {
		var rect = hRect != null ? hRect : new (openfl_geom_Rectangle().default)(0,0,this.width,this.height);
		var pixels = this.getPixels(rect);
		var _g = [];
		var _g1 = 0;
		while(_g1 < 4) {
			var i = _g1++;
			var _g2 = [];
			var _g3 = 0;
			while(_g3 < 256) {
				var j = _g3++;
				_g2.push(0);
			}
			_g.push(_g2);
		}
		var result = _g;
		var _g21 = 0;
		var _g11 = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(pixels);
		while(_g21 < _g11) {
			var i1 = _g21++;
			++result[i1 % 4][pixels.readUnsignedByte()];
		}
		return result;
	},
	hitTest: function(firstPoint,firstAlphaThreshold,secondObject,secondBitmapDataPoint,secondAlphaThreshold) {
		if(secondAlphaThreshold == null) {
			secondAlphaThreshold = 1;
		}
		if(!this.readable) {
			return false;
		}
		if((Std().default)["is"](secondObject,(openfl_display_Bitmap().default))) {
			secondObject = ((js_Boot().default).__cast(secondObject , (openfl_display_Bitmap().default))).__bitmapData;
		}
		if((Std().default)["is"](secondObject,(openfl_geom_Point().default))) {
			var secondPoint = secondObject;
			var x = (Std().default)["int"](secondPoint.x - firstPoint.x);
			var y = (Std().default)["int"](secondPoint.y - firstPoint.y);
			if(this.rect.contains(x,y)) {
				var pixel = this.getPixel32(x,y);
				if((pixel >> 24 & 255) > firstAlphaThreshold) {
					return true;
				}
			}
		} else if((Std().default)["is"](secondObject,BitmapData)) {
			var secondBitmapData = secondObject;
			var x1;
			var y1;
			if(secondBitmapDataPoint == null) {
				x1 = 0;
				y1 = 0;
			} else {
				x1 = (Std().default)["int"](secondBitmapDataPoint.x - firstPoint.x);
				y1 = (Std().default)["int"](secondBitmapDataPoint.y - firstPoint.y);
			}
			if(this.rect.contains(x1,y1)) {
				var hitRect = (openfl_geom_Rectangle().default).__pool.get();
				hitRect.setTo(x1,y1,Math.min(secondBitmapData.width,this.width - x1),Math.min(secondBitmapData.height,this.height - y1));
				var pixels = this.getPixels(hitRect);
				hitRect.offset(-x1,-y1);
				var testPixels = secondBitmapData.getPixels(hitRect);
				var length = (Std().default)["int"](hitRect.width * hitRect.height);
				var pixel1;
				var testPixel;
				(openfl_geom_Rectangle().default).__pool.release(hitRect);
				var _g1 = 0;
				var _g = length;
				while(_g1 < _g) {
					var i = _g1++;
					pixel1 = pixels.readUnsignedInt();
					testPixel = testPixels.readUnsignedInt();
					if((pixel1 >> 24 & 255) > firstAlphaThreshold && (testPixel >> 24 & 255) > secondAlphaThreshold) {
						return true;
					}
				}
				return false;
			}
		} else if((Std().default)["is"](secondObject,(openfl_geom_Rectangle().default))) {
			var secondRectangle = (openfl_geom_Rectangle().default).__pool.get();
			secondRectangle.copyFrom(secondObject);
			secondRectangle.offset(-firstPoint.x,-firstPoint.y);
			secondRectangle.__contract(0,0,this.width,this.height);
			if(secondRectangle.width > 0 && secondRectangle.height > 0) {
				var pixels1 = this.getPixels(secondRectangle);
				var length1 = (Std().default)["int"]((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(pixels1) / 4);
				var pixel2;
				var _g11 = 0;
				var _g2 = length1;
				while(_g11 < _g2) {
					var i1 = _g11++;
					pixel2 = pixels1.readUnsignedInt();
					if((pixel2 >> 24 & 255) > firstAlphaThreshold) {
						(openfl_geom_Rectangle().default).__pool.release(secondRectangle);
						return true;
					}
				}
			}
			(openfl_geom_Rectangle().default).__pool.release(secondRectangle);
		}
		return false;
	},
	lock: function() {
	},
	merge: function(sourceBitmapData,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
		if(!this.readable || sourceBitmapData == null || !sourceBitmapData.readable || sourceRect == null || destPoint == null) {
			return;
		}
		this.image.merge(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
	},
	noise: function(randomSeed,low,high,channelOptions,grayScale) {
		if(grayScale == null) {
			grayScale = false;
		}
		if(channelOptions == null) {
			channelOptions = 7;
		}
		if(high == null) {
			high = 255;
		}
		if(low == null) {
			low = 0;
		}
		if(!this.readable) {
			return;
		}
		var func = function() {
			randomSeed = randomSeed * 1103515245 + 12345;
			return (Std().default)["int"](Math.abs(randomSeed / 65536)) % 32768;
		};
		var rand = func;
		rand();
		var range = high - low;
		var this1 = new (openfl_utils_ByteArrayData().default)(0);
		var data = this1;
		var redChannel = (channelOptions & 1) == 1;
		var greenChannel = (channelOptions & 2) >> 1 == 1;
		var blueChannel = (channelOptions & 4) >> 2 == 1;
		var alphaChannel = (channelOptions & 8) >> 3 == 1;
		var _g1 = 0;
		var _g = this.height;
		while(_g1 < _g) {
			var y = _g1++;
			var _g3 = 0;
			var _g2 = this.width;
			while(_g3 < _g2) {
				var x = _g3++;
				var red = 0;
				var blue = 0;
				var green = 0;
				var alpha = 255;
				if(grayScale) {
					blue = low + rand() % range;
					green = blue;
					red = green;
					alpha = 255;
				} else {
					if(redChannel) {
						red = low + rand() % range;
					}
					if(greenChannel) {
						green = low + rand() % range;
					}
					if(blueChannel) {
						blue = low + rand() % range;
					}
					if(alphaChannel) {
						alpha = low + rand() % range;
					}
				}
				var rgb = alpha;
				rgb = (rgb << 8) + red;
				rgb = (rgb << 8) + green;
				rgb = (rgb << 8) + blue;
				this.setPixel32(x,y,rgb);
			}
		}
	},
	paletteMap: function(sourceBitmapData,sourceRect,destPoint,redArray,greenArray,blueArray,alphaArray) {
		var sw = (Std().default)["int"](sourceRect.width);
		var sh = (Std().default)["int"](sourceRect.height);
		var pixels = sourceBitmapData.getPixels(sourceRect);
		var pixelValue;
		var r;
		var g;
		var b;
		var a;
		var color;
		var _g1 = 0;
		var _g = sh * sw;
		while(_g1 < _g) {
			var i = _g1++;
			pixelValue = pixels.readUnsignedInt();
			if(alphaArray == null) {
				a = pixelValue & -16777216;
			} else {
				a = alphaArray[pixelValue >> 24 & 255];
			}
			if(redArray == null) {
				r = pixelValue & 16711680;
			} else {
				r = redArray[pixelValue >> 16 & 255];
			}
			if(greenArray == null) {
				g = pixelValue & 65280;
			} else {
				g = greenArray[pixelValue >> 8 & 255];
			}
			if(blueArray == null) {
				b = pixelValue & 255;
			} else {
				b = blueArray[pixelValue & 255];
			}
			color = a + r + g + b;
			pixels.position = i * 4;
			pixels.writeUnsignedInt(color);
		}
		pixels.position = 0;
		var destRect = (openfl_geom_Rectangle().default).__pool.get();
		destRect.setTo(destPoint.x,destPoint.y,sw,sh);
		this.setPixels(destRect,pixels);
		(openfl_geom_Rectangle().default).__pool.release(destRect);
	},
	perlinNoise: function(baseX,baseY,numOctaves,randomSeed,stitch,fractalNoise,channelOptions,grayScale,offsets) {
		if(grayScale == null) {
			grayScale = false;
		}
		if(channelOptions == null) {
			channelOptions = 7;
		}
		if(!this.readable) {
			return;
		}
		var noise = new (openfl__$internal_utils_PerlinNoise().default)(randomSeed,numOctaves,0.01);
		noise.fill(this,baseX,baseY,0);
	},
	scroll: function(x,y) {
		if(!this.readable) {
			return;
		}
		this.image.scroll(x,y);
	},
	setPixel: function(x,y,color) {
		if(!this.readable) {
			return;
		}
		this.image.setPixel(x,y,color,1);
	},
	setPixel32: function(x,y,color) {
		if(!this.readable) {
			return;
		}
		this.image.setPixel32(x,y,color,1);
	},
	setPixels: function(rect,byteArray) {
		if(!this.readable || rect == null) {
			return;
		}
		var length = rect.width * rect.height * 4;
		if((_$UInt_UInt_$Impl_$().default).toFloat(byteArray.get_bytesAvailable()) < length) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("End of file was encountered.",2030));
		}
		this.image.setPixels(rect.__toLimeRectangle(),(openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytePointer(byteArray),1,(openfl_utils__$Endian_Endian_$Impl_$().default).toLimeEndian(byteArray.get_endian()));
	},
	setVector: function(rect,inputVector) {
		var this1 = new (openfl_utils_ByteArrayData().default)(0);
		var byteArray = this1;
		(openfl_utils__$ByteArray_ByteArray_$Impl_$().default).set_length(byteArray,inputVector.get_length() * 4);
		var _g = 0;
		while(_g < inputVector.get_length()) {
			var color = inputVector.get(_g);
			++_g;
			byteArray.writeUnsignedInt(color);
		}
		byteArray.position = 0;
		this.setPixels(rect,byteArray);
	},
	threshold: function(sourceBitmapData,sourceRect,destPoint,operation,threshold,color,mask,copySource) {
		if(copySource == null) {
			copySource = false;
		}
		if(mask == null) {
			mask = -1;
		}
		if(color == null) {
			color = 0;
		}
		if(sourceBitmapData == null || sourceRect == null || destPoint == null || sourceRect.x > sourceBitmapData.width || sourceRect.y > sourceBitmapData.height || destPoint.x > this.width || destPoint.y > this.height) {
			return 0;
		}
		return this.image.threshold(sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),operation,threshold,color,mask,copySource,1);
	},
	unlock: function(changeRect) {
	},
	__applyAlpha: function(alpha) {
		(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(this.image);
		(lime_graphics_utils_ImageCanvasUtil().default).createImageData(this.image);
		var data = this.image.buffer.data;
		var _g1 = 0;
		var _g = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(alpha);
		while(_g1 < _g) {
			var i = _g1++;
			data[i * 4 + 3] = alpha.readUnsignedByte();
		}
		this.image.version++;
	},
	__draw: function(source,matrix,colorTransform,blendMode,clipRect,smoothing) {
		if(smoothing == null) {
			smoothing = false;
		}
		if(matrix == null) {
			matrix = new (openfl_geom_Matrix().default)();
			if(source.__transform != null) {
				matrix.copyFrom(source.__transform);
				matrix.tx = 0;
				matrix.ty = 0;
			}
		}
		if(!this.readable) {
			if((lime_graphics_opengl_GL().default).context != null) {
				var gl = (lime_graphics_opengl_GL().default).context;
				gl.bindFramebuffer(gl.FRAMEBUFFER,this.__getFramebuffer(gl));
				gl.viewport(0,0,this.width,this.height);
				var renderer = new (openfl__$internal_renderer_opengl_GLRenderer().default)(null,gl,this);
				var renderSession = renderer.renderSession;
				renderSession.clearRenderDirty = true;
				renderSession.shaderManager = ((js_Boot().default).__cast(null , (openfl__$internal_renderer_opengl_GLRenderer().default))).renderSession.shaderManager;
				var matrixCache = source.__worldTransform;
				source.__updateTransforms(matrix);
				source.__updateChildren(false);
				source.__renderGL(renderer.renderSession);
				source.__updateTransforms(matrixCache);
				source.__updateChildren(true);
				gl.bindFramebuffer(gl.FRAMEBUFFER,null);
			}
		} else {
			if(colorTransform != null) {
				var bounds = (openfl_geom_Rectangle().default).__pool.get();
				var boundsMatrix = (openfl_geom_Matrix().default).__pool.get();
				source.__getBounds(bounds,boundsMatrix);
				var width = Math.ceil(bounds.width);
				var height = Math.ceil(bounds.height);
				var copy = new BitmapData(width,height,true,0);
				copy.draw(source);
				copy.colorTransform(copy.rect,colorTransform);
				source = copy;
				(openfl_geom_Rectangle().default).__pool.release(bounds);
				(openfl_geom_Matrix().default).__pool.release(boundsMatrix);
			}
			(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(this.image);
			var buffer = this.image.buffer;
			var renderSession1 = new (openfl__$internal_renderer_RenderSession().default)();
			renderSession1.renderType = (lime_graphics_RendererType().default).CANVAS;
			renderSession1.clearRenderDirty = true;
			renderSession1.context = buffer.__srcContext;
			renderSession1.allowSmoothing = smoothing;
			renderSession1.maskManager = new (openfl__$internal_renderer_canvas_CanvasMaskManager().default)(renderSession1);
			renderSession1.blendModeManager = new (openfl__$internal_renderer_canvas_CanvasBlendModeManager().default)(renderSession1);
			if(!smoothing) {
				buffer.__srcContext.mozImageSmoothingEnabled = false;
				buffer.__srcContext.msImageSmoothingEnabled = false;
				buffer.__srcContext.imageSmoothingEnabled = false;
			}
			if(clipRect != null) {
				renderSession1.maskManager.pushRect(clipRect,new (openfl_geom_Matrix().default)());
			}
			var matrixCache1 = source.__worldTransform;
			source.__updateTransforms(matrix);
			source.__updateChildren(false);
			var cacheRenderable = source.__renderable;
			if(source.__isMask) {
				source.__renderable = true;
			}
			var cacheAlpha = source.__worldAlpha;
			source.__worldAlpha = 1;
			source.__renderCanvas(renderSession1);
			source.__renderable = cacheRenderable;
			source.__worldAlpha = cacheAlpha;
			source.__updateTransforms(matrixCache1);
			source.__updateChildren(true);
			if(!smoothing) {
				buffer.__srcContext.mozImageSmoothingEnabled = true;
				buffer.__srcContext.msImageSmoothingEnabled = true;
				buffer.__srcContext.imageSmoothingEnabled = true;
			}
			if(clipRect != null) {
				renderSession1.maskManager.popRect();
			}
			buffer.__srcContext.setTransform(1,0,0,1,0,0);
			buffer.__srcImageData = null;
			buffer.data = null;
			this.image.dirty = true;
			this.image.version++;
		}
	},
	__fromBase64: function(base64,type) {
		var image = (lime_graphics_Image().default).fromBase64(base64,type);
		this.__fromImage(image);
	},
	__fromBytes: function(bytes,rawAlpha) {
		var image = (lime_graphics_Image().default).fromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes));
		this.__fromImage(image);
		if(rawAlpha != null) {
			this.__applyAlpha(rawAlpha);
		}
	},
	__fromFile: function(path) {
		var image = (lime_graphics_Image().default).fromFile(path);
		this.__fromImage(image);
	},
	__fromImage: function(image) {
		if(image != null && image.buffer != null) {
			this.image = image;
			this.width = image.width;
			this.height = image.height;
			this.rect = new (openfl_geom_Rectangle().default)(0,0,image.width,image.height);
			this.readable = true;
			this.__isValid = true;
		}
	},
	__getBounds: function(rect,matrix) {
		var bounds = (openfl_geom_Rectangle().default).__pool.get();
		this.rect.__transform(bounds,matrix);
		rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
		(openfl_geom_Rectangle().default).__pool.release(bounds);
	},
	__getFramebuffer: function(gl) {
		if(this.__framebuffer == null || this.__framebufferContext != gl) {
			this.getTexture(gl);
			this.__framebufferContext = gl;
			this.__framebuffer = gl.createFramebuffer();
			gl.bindFramebuffer(gl.FRAMEBUFFER,this.__framebuffer);
			gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,this.__texture,0);
		}
		return this.__framebuffer;
	},
	__loadFromBase64: function(base64,type) {
		var _gthis = this;
		return (lime_graphics_Image().default).loadFromBase64(base64,type).then(function(image) {
			_gthis.__fromImage(image);
			return (lime_app_Future().default).withValue(_gthis);
		});
	},
	__loadFromBytes: function(bytes,rawAlpha) {
		var _gthis = this;
		return (lime_graphics_Image().default).loadFromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes)).then(function(image) {
			_gthis.__fromImage(image);
			if(rawAlpha != null) {
				_gthis.__applyAlpha(rawAlpha);
			}
			return (lime_app_Future().default).withValue(_gthis);
		});
	},
	__loadFromFile: function(path) {
		var _gthis = this;
		return (lime_graphics_Image().default).loadFromFile(path).then(function(image) {
			_gthis.__fromImage(image);
			return (lime_app_Future().default).withValue(_gthis);
		});
	},
	__renderCairo: function(renderSession) {
	},
	__renderCairoMask: function(renderSession) {
	},
	__renderCanvas: function(renderSession) {
		if(!this.readable) {
			return;
		}
		if(this.image.type == (lime_graphics_ImageType().default).DATA) {
			(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(this.image);
		}
		var context = renderSession.context;
		if(this.__worldTransform == null) {
			this.__worldTransform = new (openfl_geom_Matrix().default)();
		}
		context.globalAlpha = 1;
		var transform = this.__worldTransform;
		if(renderSession.roundPixels) {
			context.setTransform(transform.a,transform.b,transform.c,transform.d,(Std().default)["int"](transform.tx),(Std().default)["int"](transform.ty));
		} else {
			context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
		}
		context.drawImage(this.image.get_src(),0,0);
	},
	__renderCanvasMask: function(renderSession) {
	},
	__renderGL: function(renderSession) {
		var renderer = renderSession.renderer;
		var gl = renderSession.gl;
		renderSession.blendModeManager.setBlendMode("normal");
		var shader = renderSession.shaderManager.defaultShader;
		shader.get_data().uImage0.input = this;
		var tmp = renderSession.allowSmoothing && renderSession.upscaled;
		shader.get_data().uImage0.smoothing = tmp;
		shader.get_data().uMatrix.value = renderer.getMatrix(this.__worldTransform);
		renderSession.shaderManager.setShader(shader);
		gl.bindBuffer(gl.ARRAY_BUFFER,this.getBuffer(gl,1,this.__worldColorTransform));
		gl.vertexAttribPointer(shader.get_data().aPosition.index,3,gl.FLOAT,false,24,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
		gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,24,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
		gl.vertexAttribPointer(shader.get_data().aAlpha.index,1,gl.FLOAT,false,24,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(20));
		gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
	},
	__renderGLMask: function(renderSession) {
		var renderer = renderSession.renderer;
		var gl = renderSession.gl;
		var shader = (openfl__$internal_renderer_opengl_GLMaskManager().default).maskShader;
		shader.get_data().uImage0.input = this;
		var tmp = renderSession.allowSmoothing && renderSession.upscaled;
		shader.get_data().uImage0.smoothing = tmp;
		shader.get_data().uMatrix.value = renderer.getMatrix(this.__worldTransform);
		renderSession.shaderManager.setShader(shader);
		gl.bindBuffer(gl.ARRAY_BUFFER,this.getBuffer(gl,1,this.__worldColorTransform));
		gl.vertexAttribPointer(shader.get_data().aPosition.index,3,gl.FLOAT,false,24,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
		gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,24,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
		gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
	},
	__resize: function(width,height) {
		this.width = width;
		this.height = height;
		this.rect.width = width;
		this.rect.height = height;
	},
	__sync: function() {
		(lime_graphics_utils_ImageCanvasUtil().default).sync(this.image,false);
	},
	__updateChildren: function(transformOnly) {
	},
	__updateMask: function(maskGraphics) {
	},
	__updateTransforms: function(overrideTransform) {
		if(overrideTransform == null) {
			this.__worldTransform.identity();
		} else {
			this.__worldTransform = overrideTransform;
		}
	}
};
BitmapData.prototype.__class__ = $hxClasses["openfl.display.BitmapData"] = BitmapData;
// Init
// Statics
BitmapData.fromBase64 = function(base64,type) {
	var bitmapData = new BitmapData(0,0,true,0);
	bitmapData.__fromBase64(base64,type);
	return bitmapData;
}
BitmapData.fromBytes = function(bytes,rawAlpha) {
	var bitmapData = new BitmapData(0,0,true,0);
	bitmapData.__fromBytes(bytes,rawAlpha);
	return bitmapData;
}
BitmapData.fromCanvas = function(canvas,transparent) {
	if(transparent == null) {
		transparent = true;
	}
	if(canvas == null) {
		return null;
	}
	var bitmapData = new BitmapData(0,0,transparent,0);
	bitmapData.__fromImage((lime_graphics_Image().default).fromCanvas(canvas));
	bitmapData.image.set_transparent(transparent);
	return bitmapData;
}
BitmapData.fromFile = function(path) {
	var bitmapData = new BitmapData(0,0,true,0);
	bitmapData.__fromFile(path);
	return bitmapData;
}
BitmapData.fromImage = function(image,transparent) {
	if(transparent == null) {
		transparent = true;
	}
	if(image == null || image.buffer == null) {
		return null;
	}
	var bitmapData = new BitmapData(0,0,transparent,0);
	bitmapData.__fromImage(image);
	bitmapData.image.set_transparent(transparent);
	return bitmapData;
}
BitmapData.fromTexture = function(texture) {
	if(texture == null) {
		return null;
	}
	var bitmapData = new BitmapData(texture.__width,texture.__height,true,0);
	bitmapData.readable = false;
	bitmapData.__texture = texture.__textureID;
	bitmapData.__textureContext = texture.__textureContext;
	bitmapData.image = null;
	return bitmapData;
}
BitmapData.loadFromBase64 = function(base64,type) {
	return (lime_graphics_Image().default).loadFromBase64(base64,type).then(function(image) {
		return (lime_app_Future().default).withValue(BitmapData.fromImage(image));
	});
}
BitmapData.loadFromBytes = function(bytes,rawAlpha) {
	return (lime_graphics_Image().default).loadFromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes)).then(function(image) {
		var bitmapData = BitmapData.fromImage(image);
		if(rawAlpha != null) {
			bitmapData.__applyAlpha(rawAlpha);
		}
		return (lime_app_Future().default).withValue(bitmapData);
	});
}
BitmapData.loadFromFile = function(path) {
	return (lime_graphics_Image().default).loadFromFile(path).then(function(image) {
		return (lime_app_Future().default).withValue(BitmapData.fromImage(image));
	});
}
BitmapData.__bufferStride = 26
BitmapData.__supportsBGRA = null
BitmapData.__tempVector = new (lime_math_Vector2().default)()
// Export
exports.default = BitmapData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 45 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.ByteArrayData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_utils_IDataOutput() {return __webpack_require__(123);}
function openfl_utils_IDataInput() {return __webpack_require__(92);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function lime_utils_compress_Deflate() {return __webpack_require__(302);}
function lime_utils_compress_LZMA() {return __webpack_require__(303);}
function lime_utils_compress_Zlib() {return __webpack_require__(304);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_EOFError() {return __webpack_require__(175);}
function haxe_io_FPHelper() {return __webpack_require__(305);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function lime_system_System() {return __webpack_require__(46);}
function lime_system_Endian() {return __webpack_require__(64);}
// Constructor
var ByteArrayData = function(length) {
	if(length == null) {
		length = 0;
	}
	var bytes = (haxe_io_Bytes().default).alloc(length);
	(haxe_io_Bytes().default).call(this,bytes.b.buffer);
	this.__length = length;
	if(ByteArrayData.__defaultEndian == null) {
		if((lime_system_System().default).get_endianness() == (lime_system_Endian().default).LITTLE_ENDIAN) {
			ByteArrayData.__defaultEndian = "littleEndian";
		} else {
			ByteArrayData.__defaultEndian = "bigEndian";
		}
	}
	this.set_endian(ByteArrayData.__defaultEndian);
	this.position = 0;
}
// Meta
ByteArrayData.__name__ = ["openfl","utils","ByteArrayData"];
ByteArrayData.__interfaces__ = [(openfl_utils_IDataOutput().default),(openfl_utils_IDataInput().default)];
ByteArrayData.__super__ = (haxe_io_Bytes().default);
ByteArrayData.prototype = $extend((haxe_io_Bytes().default).prototype, {
	clear: function() {
		this.set_length(0);
		this.position = 0;
	},
	compress: function(algorithm) {
		if(algorithm == null) {
			algorithm = "zlib";
		}
		if(this.__length > this.l) {
			var cacheLength = this.l;
			this.l = this.__length;
			var data = (haxe_io_Bytes().default).alloc(cacheLength);
			data.blit(0,this,0,cacheLength);
			this.__setData(data);
			this.l = cacheLength;
		}
		var bytes;
		switch(algorithm) {
		case "deflate":
			bytes = (lime_utils_compress_Deflate().default).compress(this);
			break;
		case "lzma":
			bytes = (lime_utils_compress_LZMA().default).compress(this);
			break;
		default:
			bytes = (lime_utils_compress_Zlib().default).compress(this);
		}
		if(bytes != null) {
			this.__setData(bytes);
			this.l = this.__length;
			this.position = this.l;
		}
	},
	deflate: function() {
		this.compress("deflate");
	},
	inflate: function() {
		this.uncompress("deflate");
	},
	readBoolean: function() {
		if(this.position < this.l) {
			return this.get(this.position++) != 0;
		} else {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_EOFError().default)());
		}
	},
	readByte: function() {
		var value = this.readUnsignedByte();
		if((value & 128) != 0) {
			return value - 256;
		} else {
			return value;
		}
	},
	readBytes: function(bytes,offset,length) {
		if(length == null) {
			length = 0;
		}
		if(offset == null) {
			offset = 0;
		}
		if(length == 0) {
			length = this.l - this.position;
		}
		if(this.position + length > this.l) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_EOFError().default)());
		}
		if(bytes.get_length() < offset + length) {
			bytes.__resize(offset + length);
		}
		bytes.blit(offset,this,this.position,length);
		this.position += length;
	},
	readDouble: function() {
		var ch1 = this.readInt();
		var ch2 = this.readInt();
		if(this.get_endian() == "littleEndian") {
			return (haxe_io_FPHelper().default).i64ToDouble(ch1,ch2);
		} else {
			return (haxe_io_FPHelper().default).i64ToDouble(ch2,ch1);
		}
	},
	readFloat: function() {
		return (haxe_io_FPHelper().default).i32ToFloat(this.readInt());
	},
	readInt: function() {
		var ch1 = this.readUnsignedByte();
		var ch2 = this.readUnsignedByte();
		var ch3 = this.readUnsignedByte();
		var ch4 = this.readUnsignedByte();
		if(this.get_endian() == "littleEndian") {
			return ch4 << 24 | ch3 << 16 | ch2 << 8 | ch1;
		} else {
			return ch1 << 24 | ch2 << 16 | ch3 << 8 | ch4;
		}
	},
	readMultiByte: function(length,charSet) {
		return this.readUTFBytes(length);
	},
	readShort: function() {
		var ch1 = this.readUnsignedByte();
		var ch2 = this.readUnsignedByte();
		var value;
		if(this.get_endian() == "littleEndian") {
			value = ch2 << 8 | ch1;
		} else {
			value = ch1 << 8 | ch2;
		}
		if((value & 32768) != 0) {
			return value - 65536;
		} else {
			return value;
		}
	},
	readUnsignedByte: function() {
		if(this.position < this.l) {
			return this.get(this.position++);
		} else {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_EOFError().default)());
		}
	},
	readUnsignedInt: function() {
		var ch1 = this.readUnsignedByte();
		var ch2 = this.readUnsignedByte();
		var ch3 = this.readUnsignedByte();
		var ch4 = this.readUnsignedByte();
		if(this.get_endian() == "littleEndian") {
			return ch4 << 24 | ch3 << 16 | ch2 << 8 | ch1;
		} else {
			return ch1 << 24 | ch2 << 16 | ch3 << 8 | ch4;
		}
	},
	readUnsignedShort: function() {
		var ch1 = this.readUnsignedByte();
		var ch2 = this.readUnsignedByte();
		if(this.get_endian() == "littleEndian") {
			return (ch2 << 8) + ch1;
		} else {
			return ch1 << 8 | ch2;
		}
	},
	readUTF: function() {
		var bytesCount = this.readUnsignedShort();
		return this.readUTFBytes(bytesCount);
	},
	readUTFBytes: function(length) {
		if(this.position + length > this.l) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_EOFError().default)());
		}
		this.position += length;
		return this.getString(this.position - length,length);
	},
	uncompress: function(algorithm) {
		if(algorithm == null) {
			algorithm = "zlib";
		}
		if(this.__length > this.l) {
			var cacheLength = this.l;
			this.l = this.__length;
			var data = (haxe_io_Bytes().default).alloc(cacheLength);
			data.blit(0,this,0,cacheLength);
			this.__setData(data);
			this.l = cacheLength;
		}
		var bytes;
		switch(algorithm) {
		case "deflate":
			bytes = (lime_utils_compress_Deflate().default).decompress(this);
			break;
		case "lzma":
			bytes = (lime_utils_compress_LZMA().default).decompress(this);
			break;
		default:
			bytes = (lime_utils_compress_Zlib().default).decompress(this);
		}
		if(bytes != null) {
			this.__setData(bytes);
			this.l = this.__length;
		}
		this.position = 0;
	},
	writeBoolean: function(value) {
		this.writeByte(value ? 1 : 0);
	},
	writeByte: function(value) {
		this.__resize(this.position + 1);
		this.set(this.position++,value & 255);
	},
	writeBytes: function(bytes,offset,length) {
		if(length == null) {
			length = 0;
		}
		if(offset == null) {
			offset = 0;
		}
		if((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(bytes) == 0) {
			return;
		}
		if(length == 0) {
			length = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(bytes) - offset;
		}
		this.__resize(this.position + length);
		this.blit(this.position,bytes,offset,length);
		this.position = this.position + length;
	},
	writeDouble: function(value) {
		var int64 = (haxe_io_FPHelper().default).doubleToI64(value);
		if(this.get_endian() == "littleEndian") {
			this.writeInt(int64.low);
			this.writeInt(int64.high);
		} else {
			this.writeInt(int64.high);
			this.writeInt(int64.low);
		}
	},
	writeFloat: function(value) {
		if(this.get_endian() == "littleEndian") {
			this.__resize(this.position + 4);
			this.setFloat(this.position,value);
			this.position += 4;
		} else {
			var $int = (haxe_io_FPHelper().default).floatToI32(value);
			this.writeInt($int);
		}
	},
	writeInt: function(value) {
		this.__resize(this.position + 4);
		if(this.get_endian() == "littleEndian") {
			this.set(this.position++,value & 255);
			this.set(this.position++,value >> 8 & 255);
			this.set(this.position++,value >> 16 & 255);
			this.set(this.position++,value >> 24 & 255);
		} else {
			this.set(this.position++,value >> 24 & 255);
			this.set(this.position++,value >> 16 & 255);
			this.set(this.position++,value >> 8 & 255);
			this.set(this.position++,value & 255);
		}
	},
	writeMultiByte: function(value,charSet) {
		this.writeUTFBytes(value);
	},
	writeShort: function(value) {
		this.__resize(this.position + 2);
		if(this.get_endian() == "littleEndian") {
			this.set(this.position++,value);
			this.set(this.position++,value >> 8);
		} else {
			this.set(this.position++,value >> 8);
			this.set(this.position++,value);
		}
	},
	writeUnsignedInt: function(value) {
		this.writeInt(value);
	},
	writeUTF: function(value) {
		var bytes = (haxe_io_Bytes().default).ofString(value);
		this.writeShort(bytes.l);
		this.writeBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(bytes));
	},
	writeUTFBytes: function(value) {
		var bytes = (haxe_io_Bytes().default).ofString(value);
		this.writeBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes((haxe_io_Bytes().default).ofString(value)));
	},
	__fromBytes: function(bytes) {
		this.__setData(bytes);
		this.l = bytes.l;
	},
	__resize: function(size) {
		if(size > this.__length) {
			var bytes = (haxe_io_Bytes().default).alloc((size + 1) * 3 >> 1);
			if(this.__length > 0) {
				var cacheLength = this.l;
				this.l = this.__length;
				bytes.blit(0,this,0,this.__length);
				this.l = cacheLength;
			}
			this.__setData(bytes);
		}
		if(this.l < size) {
			this.l = size;
		}
	},
	__setData: function(bytes) {
		this.b = bytes.b;
		this.__length = bytes.l;
		this.data = bytes.data;
	},
	get_bytesAvailable: function() {
		return this.l - this.position;
	},
	get_endian: function() {
		return this.__endian;
	},
	set_endian: function(value) {
		return this.__endian = value;
	},
	set_length: function(value) {
		if(value > 0) {
			this.__resize(value);
			if(value < this.position) {
				this.position = value;
			}
		}
		this.l = value;
		return value;
	}
});
ByteArrayData.prototype.__class__ = $hxClasses["openfl.utils.ByteArrayData"] = ByteArrayData;
// Init
{
	var tmp = ByteArrayData.prototype;
	var tmp1 = { get : function () { return this.get_bytesAvailable (); }};
	var tmp2 = { get : function () { return this.get_endian (); }, set : function (v) { return this.set_endian (v); }};
	var tmp3 = function () { return this.get_length (); }
	var tmp4 = function (v) { return this.set_length (v); }
	global.Object.defineProperties(tmp,{ bytesAvailable : tmp1, endian : tmp2, "length" : { get : tmp3, set : tmp4}});
};
// Statics
ByteArrayData.fromBytes = function(bytes) {
	var result = new ByteArrayData();
	result.__fromBytes(bytes);
	return result;
}
ByteArrayData.__defaultEndian = null
// Export
exports.default = ByteArrayData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 46 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system.System
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_IntMap() {return __webpack_require__(22);}
function js_Browser() {return __webpack_require__(11);}
function Std() {return __webpack_require__(4);}
function StringTools() {return __webpack_require__(12);}
function Reflect() {return __webpack_require__(5);}
function lime_system_Display() {return __webpack_require__(255);}
function lime_system_DisplayMode() {return __webpack_require__(256);}
function lime_math_Rectangle() {return __webpack_require__(41);}
function lime_system_CFFI() {return __webpack_require__(257);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function lime_system_Endian() {return __webpack_require__(64);}
// Constructor
var System = function(){}
// Meta
System.__name__ = ["lime","system","System"];
System.prototype = {
	
};
System.prototype.__class__ = $hxClasses["lime.system.System"] = System;
// Init
// Statics
System.embed = function(projectName,element,width,height,windowConfig) {
	if(System.__applicationEntryPoint == null || System.__applicationConfig == null) {
		return;
	}
	if(System.__applicationEntryPoint.exists(projectName)) {
		var htmlElement = null;
		if(typeof(element) == "string") {
			htmlElement = (js_Browser().default).get_document().getElementById(element);
		} else if(element == null) {
			htmlElement = (js_Browser().default).get_document().createElement("div");
		} else {
			htmlElement = element;
		}
		if(htmlElement == null) {
			(js_Browser().default).get_window().console.log("[lime.embed] ERROR: Cannot find target element: " + (Std().default).string(element));
			return;
		}
		if(width == null) {
			width = 0;
		}
		if(height == null) {
			height = 0;
		}
		var defaultConfig = System.__applicationConfig.get(projectName);
		var config = { };
		System.__copyMissingFields(config,defaultConfig);
		if(windowConfig != null) {
			config.windows = [];
			if((windowConfig instanceof Array) && windowConfig.__enum__ == null) {
				config.windows = windowConfig;
			} else {
				config.windows[0] = windowConfig;
			}
			var _g1 = 0;
			var _g = config.windows.length;
			while(_g1 < _g) {
				var i = _g1++;
				if(i < defaultConfig.windows.length) {
					System.__copyMissingFields(config.windows[i],defaultConfig.windows[i]);
				}
				System.__copyMissingFields(config.windows[i].parameters,defaultConfig.windows[i].parameters);
				if(typeof(windowConfig.background) == "string") {
					var background = (StringTools().default).replace((Std().default).string(windowConfig.background),"#","");
					if(background.indexOf("0x") > -1) {
						windowConfig.background = (Std().default).parseInt(background);
					} else {
						windowConfig.background = (Std().default).parseInt("0x" + background);
					}
				}
			}
		}
		if((Reflect().default).field(config.windows[0],"rootPath")) {
			config.rootPath = (Reflect().default).field(config.windows[0],"rootPath");
			(Reflect().default).deleteField(config.windows[0],"rootPath");
		}
		config.windows[0].element = htmlElement;
		config.windows[0].width = width;
		config.windows[0].height = height;
		(System.__applicationEntryPoint.get(projectName))(config);
	}
}
System.exit = function(code) {
}
System.getDisplay = function(id) {
	if(id == 0) {
		var display = new (lime_system_Display().default)();
		display.id = 0;
		display.name = "Generic Display";
		display.dpi = 96 * (js_Browser().default).get_window().devicePixelRatio;
		display.currentMode = new (lime_system_DisplayMode().default)((js_Browser().default).get_window().screen.width,(js_Browser().default).get_window().screen.height,60,1);
		display.supportedModes = [display.currentMode];
		display.bounds = new (lime_math_Rectangle().default)(0,0,display.currentMode.width,display.currentMode.height);
		return display;
	}
	return null;
}
System.getTimer = function() {
	return (Std().default)["int"]((js_Browser().default).get_window().performance.now());
}
System.load = function(library,method,args,lazy) {
	if(lazy == null) {
		lazy = false;
	}
	if(args == null) {
		args = 0;
	}
	return (lime_system_CFFI().default).load(library,method,args,lazy);
}
System.openFile = function(path) {
	if(path != null) {
		(js_Browser().default).get_window().open(path,"_blank");
	}
}
System.openURL = function(url,target) {
	if(target == null) {
		target = "_blank";
	}
	if(url != null) {
		(js_Browser().default).get_window().open(url,target);
	}
}
System.__copyMissingFields = function(target,source) {
	if(source == null || target == null) {
		return;
	}
	var _g = 0;
	var _g1 = (Reflect().default).fields(source);
	while(_g < _g1.length) {
		var field = _g1[_g];
		++_g;
		if(!(Reflect().default).hasField(target,field)) {
			(Reflect().default).setField(target,field,(Reflect().default).field(source,field));
		}
	}
}
System.__getDirectory = function(type) {
	return null;
}
System.__registerEntryPoint = function(projectName,entryPoint,config) {
	if(System.__applicationConfig == null) {
		System.__applicationConfig = new (haxe_ds_StringMap().default)();
	}
	if(System.__applicationEntryPoint == null) {
		System.__applicationEntryPoint = new (haxe_ds_StringMap().default)();
	}
	System.__applicationEntryPoint.set(projectName,entryPoint);
	System.__applicationConfig.set(projectName,config);
}
System.__runProcess = function(command,args) {
	return null;
}
System.get_allowScreenTimeout = function() {
	return true;
}
System.set_allowScreenTimeout = function(value) {
	return true;
}
System.get_applicationDirectory = function() {
	if(System.__applicationDirectory == null) {
		System.__applicationDirectory = System.__getDirectory(0);
	}
	return System.__applicationDirectory;
}
System.get_applicationStorageDirectory = function() {
	if(System.__applicationStorageDirectory == null) {
		System.__applicationStorageDirectory = System.__getDirectory(1);
	}
	return System.__applicationStorageDirectory;
}
System.get_deviceModel = function() {
	var tmp = System.__deviceModel == null;
	return System.__deviceModel;
}
System.get_deviceVendor = function() {
	var tmp = System.__deviceVendor == null;
	return System.__deviceVendor;
}
System.get_desktopDirectory = function() {
	if(System.__desktopDirectory == null) {
		System.__desktopDirectory = System.__getDirectory(2);
	}
	return System.__desktopDirectory;
}
System.get_documentsDirectory = function() {
	if(System.__documentsDirectory == null) {
		System.__documentsDirectory = System.__getDirectory(3);
	}
	return System.__documentsDirectory;
}
System.get_endianness = function() {
	if(System.__endianness == null) {
		var arrayBuffer = new ArrayBuffer(2);
		var this1;
		if(arrayBuffer != null) {
			this1 = new Uint8Array(arrayBuffer,0);
		} else {
			this1 = null;
		}
		var uint8Array = this1;
		var this2;
		if(arrayBuffer != null) {
			this2 = new Uint16Array(arrayBuffer,0);
		} else {
			this2 = null;
		}
		var uint16array = this2;
		uint8Array[0] = 170;
		uint8Array[1] = 187;
		if(uint16array[0] == 43707) {
			System.__endianness = (lime_system_Endian().default).BIG_ENDIAN;
		} else {
			System.__endianness = (lime_system_Endian().default).LITTLE_ENDIAN;
		}
	}
	return System.__endianness;
}
System.get_fontsDirectory = function() {
	if(System.__fontsDirectory == null) {
		System.__fontsDirectory = System.__getDirectory(4);
	}
	return System.__fontsDirectory;
}
System.get_numDisplays = function() {
	return 1;
}
System.get_platformLabel = function() {
	if(System.__platformLabel == null) {
		var name = System.get_platformName();
		var version = System.get_platformVersion();
		if(name != null && version != null) {
			System.__platformLabel = name + " " + version;
		} else if(name != null) {
			System.__platformLabel = name;
		}
	}
	return System.__platformLabel;
}
System.get_platformName = function() {
	if(System.__platformName == null) {
		System.__platformName = "HTML5";
	}
	return System.__platformName;
}
System.get_platformVersion = function() {
	var tmp = System.__platformVersion == null;
	return System.__platformVersion;
}
System.get_userDirectory = function() {
	if(System.__userDirectory == null) {
		System.__userDirectory = System.__getDirectory(5);
	}
	return System.__userDirectory;
}
System.__directories = new (haxe_ds_IntMap().default)()
// Export
exports.default = System;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 47 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.Log
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js_Boot() {return __webpack_require__(20);}
// Constructor
var Log = function(){}
// Meta
Log.__name__ = ["haxe","Log"];
Log.prototype = {
	
};
Log.prototype.__class__ = $hxClasses["haxe.Log"] = Log;
// Init
// Statics
Log.trace = function(v,infos) {
	(js_Boot().default).__trace(v,infos);
}
// Export
exports.default = Log;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 48 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: List
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function _$List_ListNode() {return __webpack_require__(261);}
function _$List_ListIterator() {return __webpack_require__(262);}
// Constructor
var List = function() {
	this.length = 0;
}
// Meta
List.__name__ = ["List"];
List.prototype = {
	add: function(item) {
		var x = new (_$List_ListNode().default)(item,null);
		if(this.h == null) {
			this.h = x;
		} else {
			this.q.next = x;
		}
		this.q = x;
		this.length++;
	},
	pop: function() {
		if(this.h == null) {
			return null;
		}
		var x = this.h.item;
		this.h = this.h.next;
		if(this.h == null) {
			this.q = null;
		}
		this.length--;
		return x;
	},
	clear: function() {
		this.h = null;
		this.q = null;
		this.length = 0;
	},
	remove: function(v) {
		var prev = null;
		var l = this.h;
		while(l != null) {
			if(l.item == v) {
				if(prev == null) {
					this.h = l.next;
				} else {
					prev.next = l.next;
				}
				if(this.q == l) {
					this.q = prev;
				}
				this.length--;
				return true;
			}
			prev = l;
			l = l.next;
		}
		return false;
	},
	iterator: function() {
		return new (_$List_ListIterator().default)(this.h);
	}
};
List.prototype.__class__ = $hxClasses["List"] = List;
// Init
// Statics
// Export
exports.default = List;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 49 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.opengl.GL
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
// Constructor
var GL = function(){}
// Meta
GL.__name__ = ["lime","graphics","opengl","GL"];
GL.prototype = {
	
};
GL.prototype.__class__ = $hxClasses["lime.graphics.opengl.GL"] = GL;
// Init
Object.defineProperties(GL,{ "type" : { get : function() {
	return GL.get_type();
}}, "version" : { get : function() {
	return GL.get_version();
}}});
// Statics
GL.activeTexture = function(texture) {
	GL.context.activeTexture(texture);
}
GL.attachShader = function(program,shader) {
	GL.context.attachShader(program,shader);
}
GL.beginQuery = function(target,query) {
	GL.context.beginQuery(target,query);
}
GL.beginTransformFeedback = function(primitiveNode) {
	GL.context.beginTransformFeedback(primitiveNode);
}
GL.bindAttribLocation = function(program,index,name) {
	GL.context.bindAttribLocation(program,index,name);
}
GL.bindBuffer = function(target,buffer) {
	GL.context.bindBuffer(target,buffer);
}
GL.bindBufferBase = function(target,index,buffer) {
	GL.context.bindBufferBase(target,index,buffer);
}
GL.bindBufferRange = function(target,index,buffer,offset,size) {
	GL.context.bindBufferRange(target,index,buffer,offset,size);
}
GL.bindFramebuffer = function(target,framebuffer) {
	GL.context.bindFramebuffer(target,framebuffer);
}
GL.bindRenderbuffer = function(target,renderbuffer) {
	GL.context.bindRenderbuffer(target,renderbuffer);
}
GL.bindSampler = function(unit,sampler) {
	GL.context.bindSampler(unit,sampler);
}
GL.bindTexture = function(target,texture) {
	GL.context.bindTexture(target,texture);
}
GL.bindTransformFeedback = function(target,transformFeedback) {
	GL.context.bindTransformFeedback(target,transformFeedback);
}
GL.bindVertexArray = function(vertexArray) {
	GL.context.bindVertexArray(vertexArray);
}
GL.blitFramebuffer = function(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1,mask,filter) {
	GL.context.blitFramebuffer(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1,mask,filter);
}
GL.blendColor = function(red,green,blue,alpha) {
	GL.context.blendColor(red,green,blue,alpha);
}
GL.blendEquation = function(mode) {
	GL.context.blendEquation(mode);
}
GL.blendEquationSeparate = function(modeRGB,modeAlpha) {
	GL.context.blendEquationSeparate(modeRGB,modeAlpha);
}
GL.blendFunc = function(sfactor,dfactor) {
	GL.context.blendFunc(sfactor,dfactor);
}
GL.blendFuncSeparate = function(srcRGB,dstRGB,srcAlpha,dstAlpha) {
	GL.context.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
}
GL.bufferData = function(target,size,srcData,usage) {
	GL.context.bufferData(target,size,srcData,usage);
}
GL.bufferDataWEBGL = function(target,srcData,usage,srcOffset,length) {
	GL.context.bufferDataWEBGL(target,srcData,usage,srcOffset,length);
}
GL.bufferSubData = function(target,dstByteOffset,size,srcData) {
	GL.context.bufferSubData(target,dstByteOffset,size,srcData);
}
GL.bufferSubDataWEBGL = function(target,dstByteOffset,srcData,srcOffset,length) {
	GL.context.bufferSubDataWEBGL(target,dstByteOffset,srcData,srcOffset,length);
}
GL.checkFramebufferStatus = function(target) {
	return GL.context.checkFramebufferStatus(target);
}
GL.clear = function(mask) {
	GL.context.clear(mask);
}
GL.clearBufferfi = function(buffer,drawbuffer,depth,stencil) {
	GL.context.clearBufferfi(buffer,drawbuffer,depth,stencil);
}
GL.clearBufferfv = function(buffer,drawbuffer,value) {
	GL.context.clearBufferfv(buffer,drawbuffer,value);
}
GL.clearBufferfvWEBGL = function(buffer,drawbuffer,values,srcOffset) {
	GL.context.clearBufferfvWEBGL(buffer,drawbuffer,values,srcOffset);
}
GL.clearBufferiv = function(buffer,drawbuffer,value) {
	GL.context.clearBufferiv(buffer,drawbuffer,value);
}
GL.clearBufferivWEBGL = function(buffer,drawbuffer,values,srcOffset) {
	GL.context.clearBufferivWEBGL(buffer,drawbuffer,values,srcOffset);
}
GL.clearBufferuiv = function(buffer,drawbuffer,value) {
	GL.context.clearBufferuiv(buffer,drawbuffer,value);
}
GL.clearBufferuivWEBGL = function(buffer,drawbuffer,values,srcOffset) {
	GL.context.clearBufferuivWEBGL(buffer,drawbuffer,values,srcOffset);
}
GL.clearColor = function(red,green,blue,alpha) {
	GL.context.clearColor(red,green,blue,alpha);
}
GL.clearDepth = function(depth) {
	GL.context.clearDepth(depth);
}
GL.clearDepthf = function(depth) {
	GL.context.clearDepthf(depth);
}
GL.clearStencil = function(s) {
	GL.context.clearStencil(s);
}
GL.clientWaitSync = function(sync,flags,timeout) {
	return GL.context.clientWaitSync(sync,flags,timeout);
}
GL.colorMask = function(red,green,blue,alpha) {
	GL.context.colorMask(red,green,blue,alpha);
}
GL.compileShader = function(shader) {
	GL.context.compileShader(shader);
}
GL.compressedTexImage2D = function(target,level,internalformat,width,height,border,imageSize,data) {
	GL.context.compressedTexImage2D(target,level,internalformat,width,height,border,imageSize,data);
}
GL.compressedTexImage2DWEBGL = function(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride) {
	GL.context.compressedTexImage2DWEBGL(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride);
}
GL.compressedTexImage3D = function(target,level,internalformat,width,height,depth,border,imageSize,data) {
	GL.context.compressedTexImage3D(target,level,internalformat,width,height,depth,border,imageSize,data);
}
GL.compressedTexImage3DWEBGL = function(target,level,internalformat,width,height,depth,border,srcData,srcOffset,srcLengthOverride) {
	GL.context.compressedTexImage3DWEBGL(target,level,internalformat,width,height,depth,border,srcData,srcOffset,srcLengthOverride);
}
GL.compressedTexSubImage2D = function(target,level,xoffset,yoffset,width,height,format,imageSize,data) {
	GL.context.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data);
}
GL.compressedTexSubImage2DWEBGL = function(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride) {
	GL.context.compressedTexSubImage2DWEBGL(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride);
}
GL.compressedTexSubImage3D = function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data) {
	GL.context.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data);
}
GL.compressedTexSubImage3DWEBGL = function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,srcData,srcOffset,srcLengthOverride) {
	GL.context.compressedTexSubImage3DWEBGL(target,level,xoffset,yoffset,zoffset,width,height,depth,format,srcData,srcOffset,srcLengthOverride);
}
GL.copyBufferSubData = function(readTarget,writeTarget,readOffset,writeOffset,size) {
	GL.context.copyBufferSubData(readTarget,writeTarget,readOffset,writeOffset,size);
}
GL.copyTexImage2D = function(target,level,internalformat,x,y,width,height,border) {
	GL.context.copyTexImage2D(target,level,internalformat,x,y,width,height,border);
}
GL.copyTexSubImage2D = function(target,level,xoffset,yoffset,x,y,width,height) {
	GL.context.copyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height);
}
GL.copyTexSubImage3D = function(target,level,xoffset,yoffset,zoffset,x,y,width,height) {
	GL.context.copyTexSubImage3D(target,level,xoffset,yoffset,zoffset,x,y,width,height);
}
GL.createBuffer = function() {
	return GL.context.createBuffer();
}
GL.createFramebuffer = function() {
	return GL.context.createFramebuffer();
}
GL.createProgram = function() {
	return GL.context.createProgram();
}
GL.createQuery = function() {
	return GL.context.createQuery();
}
GL.createRenderbuffer = function() {
	return GL.context.createRenderbuffer();
}
GL.createSampler = function() {
	return GL.context.createSampler();
}
GL.createShader = function(type) {
	return GL.context.createShader(type);
}
GL.createTexture = function() {
	return GL.context.createTexture();
}
GL.createTransformFeedback = function() {
	return GL.context.createTransformFeedback();
}
GL.createVertexArray = function() {
	return GL.context.createVertexArray();
}
GL.cullFace = function(mode) {
	GL.context.cullFace(mode);
}
GL.deleteBuffer = function(buffer) {
	GL.context.deleteBuffer(buffer);
}
GL.deleteFramebuffer = function(framebuffer) {
	GL.context.deleteFramebuffer(framebuffer);
}
GL.deleteProgram = function(program) {
	GL.context.deleteProgram(program);
}
GL.deleteQuery = function(query) {
	GL.context.deleteQuery(query);
}
GL.deleteRenderbuffer = function(renderbuffer) {
	GL.context.deleteRenderbuffer(renderbuffer);
}
GL.deleteSampler = function(sampler) {
	GL.context.deleteSampler(sampler);
}
GL.deleteShader = function(shader) {
	GL.context.deleteShader(shader);
}
GL.deleteSync = function(sync) {
	GL.context.deleteSync(sync);
}
GL.deleteTexture = function(texture) {
	GL.context.deleteTexture(texture);
}
GL.deleteTransformFeedback = function(transformFeedback) {
	GL.context.deleteTransformFeedback(transformFeedback);
}
GL.deleteVertexArray = function(vertexArray) {
	GL.context.deleteVertexArray(vertexArray);
}
GL.depthFunc = function(func) {
	GL.context.depthFunc(func);
}
GL.depthMask = function(flag) {
	GL.context.depthMask(flag);
}
GL.depthRange = function(zNear,zFar) {
	GL.context.depthRange(zNear,zFar);
}
GL.depthRangef = function(zNear,zFar) {
	GL.context.depthRangef(zNear,zFar);
}
GL.detachShader = function(program,shader) {
	GL.context.detachShader(program,shader);
}
GL.disable = function(cap) {
	GL.context.disable(cap);
}
GL.disableVertexAttribArray = function(index) {
	GL.context.disableVertexAttribArray(index);
}
GL.drawArrays = function(mode,first,count) {
	GL.context.drawArrays(mode,first,count);
}
GL.drawArraysInstanced = function(mode,first,count,instanceCount) {
	GL.context.drawArraysInstanced(mode,first,count,instanceCount);
}
GL.drawBuffers = function(buffers) {
	GL.context.drawBuffers(buffers);
}
GL.drawElements = function(mode,count,type,offset) {
	GL.context.drawElements(mode,count,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(offset));
}
GL.drawElementsInstanced = function(mode,count,type,offset,instanceCount) {
	GL.context.drawElementsInstanced(mode,count,type,offset,instanceCount);
}
GL.drawRangeElements = function(mode,start,end,count,type,offset) {
	GL.context.drawRangeElements(mode,start,end,count,type,offset);
}
GL.enable = function(cap) {
	GL.context.enable(cap);
}
GL.enableVertexAttribArray = function(index) {
	GL.context.enableVertexAttribArray(index);
}
GL.endQuery = function(target) {
	GL.context.endQuery(target);
}
GL.endTransformFeedback = function() {
	GL.context.endTransformFeedback();
}
GL.fenceSync = function(condition,flags) {
	return GL.context.fenceSync(condition,flags);
}
GL.finish = function() {
	GL.context.finish();
}
GL.flush = function() {
	GL.context.flush();
}
GL.framebufferRenderbuffer = function(target,attachment,renderbuffertarget,renderbuffer) {
	GL.context.framebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer);
}
GL.framebufferTexture2D = function(target,attachment,textarget,texture,level) {
	GL.context.framebufferTexture2D(target,attachment,textarget,texture,level);
}
GL.framebufferTextureLayer = function(target,attachment,texture,level,layer) {
	GL.context.framebufferTextureLayer(target,attachment,texture,level,layer);
}
GL.frontFace = function(mode) {
	GL.context.frontFace(mode);
}
GL.generateMipmap = function(target) {
	GL.context.generateMipmap(target);
}
GL.getActiveAttrib = function(program,index) {
	return GL.context.getActiveAttrib(program,index);
}
GL.getActiveUniform = function(program,index) {
	return GL.context.getActiveUniform(program,index);
}
GL.getActiveUniformBlocki = function(program,uniformBlockIndex,pname) {
	return GL.context.getActiveUniformBlocki(program,uniformBlockIndex,pname);
}
GL.getActiveUniformBlockiv = function(program,uniformBlockIndex,pname,params) {
	GL.context.getActiveUniformBlockiv(program,uniformBlockIndex,pname,params);
}
GL.getActiveUniformBlockName = function(program,uniformBlockIndex) {
	return GL.context.getActiveUniformBlockName(program,uniformBlockIndex);
}
GL.getActiveUniformBlockParameter = function(program,uniformBlockIndex,pname) {
	return GL.context.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);
}
GL.getActiveUniforms = function(program,uniformIndices,pname) {
	return GL.context.getActiveUniforms(program,uniformIndices,pname);
}
GL.getActiveUniformsiv = function(program,uniformIndices,pname,params) {
	GL.context.getActiveUniformsiv(program,uniformIndices,pname,params);
}
GL.getAttachedShaders = function(program) {
	return GL.context.getAttachedShaders(program);
}
GL.getAttribLocation = function(program,name) {
	return GL.context.getAttribLocation(program,name);
}
GL.getBoolean = function(pname) {
	return GL.context.getBoolean(pname);
}
GL.getBooleanv = function(pname,params) {
	GL.context.getBooleanv(pname,params);
}
GL.getBufferParameter = function(target,pname) {
	return GL.context.getBufferParameter(target,pname);
}
GL.getBufferParameteri = function(target,pname) {
	return GL.context.getBufferParameteri(target,pname);
}
GL.getBufferParameteri64v = function(target,pname,params) {
	GL.context.getBufferParameteri64v(target,pname,params);
	return;
}
GL.getBufferParameteriv = function(target,pname,data) {
	GL.context.getBufferParameteriv(target,pname,data);
	return;
}
GL.getBufferPointerv = function(target,pname) {
	return GL.context.getBufferPointerv(target,pname);
}
GL.getBufferSubData = function(target,offset,size,data) {
	GL.context.getBufferSubData(target,offset,size,data);
}
GL.getBufferSubDataWEBGL = function(target,srcByteOffset,dstData,srcOffset,length) {
	GL.context.getBufferSubDataWEBGL(target,srcByteOffset,dstData,srcOffset,length);
}
GL.getContextAttributes = function() {
	return GL.context.getContextAttributes();
}
GL.getError = function() {
	return GL.context.getError();
}
GL.getExtension = function(name) {
	return GL.context.getExtension(name);
}
GL.getFloat = function(pname) {
	return GL.context.getFloat(pname);
}
GL.getFloatv = function(pname,params) {
	GL.context.getFloatv(pname,params);
}
GL.getFragDataLocation = function(program,name) {
	return GL.context.getFragDataLocation(program,name);
}
GL.getFramebufferAttachmentParameter = function(target,attachment,pname) {
	return GL.context.getFramebufferAttachmentParameter(target,attachment,pname);
}
GL.getFramebufferAttachmentParameteri = function(target,attachment,pname) {
	return GL.context.getFramebufferAttachmentParameteri(target,attachment,pname);
}
GL.getFramebufferAttachmentParameteriv = function(target,attachment,pname,params) {
	GL.context.getFramebufferAttachmentParameteriv(target,attachment,pname,params);
}
GL.getIndexedParameter = function(target,index) {
	return GL.context.getIndexedParameter(target,index);
}
GL.getInteger = function(pname) {
	return GL.context.getInteger(pname);
}
GL.getInteger64 = function(pname) {
	return GL.context.getInteger64(pname);
}
GL.getInteger64i = function(pname) {
	return GL.context.getInteger64i(pname);
}
GL.getInteger64i_v = function(pname,index,params) {
	GL.context.getInteger64i_v(pname,index,params);
	return;
}
GL.getInteger64v = function(pname,params) {
	GL.context.getInteger64v(pname,params);
	return;
}
GL.getIntegeri_v = function(pname,index,params) {
	GL.context.getIntegeri_v(pname,index,params);
	return;
}
GL.getIntegerv = function(pname,params) {
	GL.context.getIntegerv(pname,params);
}
GL.getInternalformati = function(target,internalformat,pname) {
	return GL.context.getInternalformati(target,internalformat,pname);
}
GL.getInternalformativ = function(target,internalformat,pname,bufSize,params) {
	GL.context.getInternalformativ(target,internalformat,pname,bufSize,params);
}
GL.getInternalformatParameter = function(target,internalformat,pname) {
	return GL.context.getInternalformatParameter(target,internalformat,pname);
}
GL.getParameter = function(pname) {
	return GL.context.getParameter(pname);
}
GL.getProgrami = function(program,pname) {
	return GL.context.getProgrami(program,pname);
}
GL.getProgramiv = function(program,pname,params) {
	GL.context.getProgramiv(program,pname,params);
}
GL.getProgramBinary = function(program,binaryFormat) {
	return GL.context.getProgramBinary(program,binaryFormat);
}
GL.getProgramInfoLog = function(program) {
	return GL.context.getProgramInfoLog(program);
}
GL.getProgramParameter = function(program,pname) {
	return GL.context.getProgramParameter(program,pname);
}
GL.getQuery = function(target,pname) {
	return GL.context.getQuery(target,pname);
}
GL.getQueryi = function(target,pname) {
	return GL.context.getQueryi(target,pname);
}
GL.getQueryiv = function(target,pname,params) {
	GL.context.getQueryiv(target,pname,params);
}
GL.getQueryObjectui = function(query,pname) {
	return GL.context.getQueryObjectui(query,pname);
}
GL.getQueryObjectuiv = function(query,pname,params) {
	GL.context.getQueryObjectuiv(query,pname,params);
}
GL.getQueryParameter = function(query,pname) {
	return GL.context.getQueryParameter(query,pname);
}
GL.getRenderbufferParameter = function(target,pname) {
	return GL.context.getRenderbufferParameter(target,pname);
}
GL.getRenderbufferParameteri = function(target,pname) {
	return GL.context.getRenderbufferParameteri(target,pname);
}
GL.getRenderbufferParameteriv = function(target,pname,params) {
	GL.context.getRenderbufferParameteriv(target,pname,params);
}
GL.getSamplerParameter = function(sampler,pname) {
	return GL.context.getSamplerParameter(sampler,pname);
}
GL.getSamplerParameterf = function(sampler,pname) {
	return GL.context.getSamplerParameterf(sampler,pname);
}
GL.getSamplerParameterfv = function(sampler,pname,params) {
	GL.context.getSamplerParameterfv(sampler,pname,params);
}
GL.getSamplerParameteri = function(sampler,pname) {
	return GL.context.getSamplerParameteri(sampler,pname);
}
GL.getSamplerParameteriv = function(sampler,pname,params) {
	GL.context.getSamplerParameteriv(sampler,pname,params);
}
GL.getShaderi = function(shader,pname) {
	return GL.context.getShaderi(shader,pname);
}
GL.getShaderiv = function(shader,pname,params) {
	GL.context.getShaderiv(shader,pname,params);
}
GL.getShaderInfoLog = function(shader) {
	return GL.context.getShaderInfoLog(shader);
}
GL.getShaderParameter = function(shader,pname) {
	return GL.context.getShaderParameter(shader,pname);
}
GL.getShaderPrecisionFormat = function(shadertype,precisiontype) {
	return GL.context.getShaderPrecisionFormat(shadertype,precisiontype);
}
GL.getShaderSource = function(shader) {
	return GL.context.getShaderSource(shader);
}
GL.getString = function(name) {
	return GL.context.getString(name);
}
GL.getStringi = function(name,index) {
	return GL.context.getStringi(name,index);
}
GL.getSupportedExtensions = function() {
	return GL.context.getSupportedExtensions();
}
GL.getSyncParameter = function(sync,pname) {
	return GL.context.getSyncParameter(sync,pname);
}
GL.getSyncParameteri = function(sync,pname) {
	return GL.context.getSyncParameteri(sync,pname);
}
GL.getSyncParameteriv = function(sync,pname,params) {
	GL.context.getSyncParameteriv(sync,pname,params);
}
GL.getTexParameter = function(target,pname) {
	return GL.context.getTexParameter(target,pname);
}
GL.getTexParameterf = function(target,pname) {
	return GL.context.getTexParameterf(target,pname);
}
GL.getTexParameterfv = function(target,pname,params) {
	GL.context.getTexParameterfv(target,pname,params);
}
GL.getTexParameteri = function(target,pname) {
	return GL.context.getTexParameteri(target,pname);
}
GL.getTexParameteriv = function(target,pname,params) {
	GL.context.getTexParameteriv(target,pname,params);
}
GL.getTransformFeedbackVarying = function(program,index) {
	return GL.context.getTransformFeedbackVarying(program,index);
}
GL.getUniform = function(program,location) {
	return GL.context.getUniform(program,location);
}
GL.getUniformf = function(program,location) {
	return GL.context.getUniformf(program,location);
}
GL.getUniformfv = function(program,location,params) {
	GL.context.getUniformfv(program,location,params);
}
GL.getUniformi = function(program,location) {
	return GL.context.getUniformi(program,location);
}
GL.getUniformiv = function(program,location,params) {
	GL.context.getUniformiv(program,location,params);
}
GL.getUniformui = function(program,location) {
	return GL.context.getUniformui(program,location);
}
GL.getUniformuiv = function(program,location,params) {
	GL.context.getUniformuiv(program,location,params);
}
GL.getUniformBlockIndex = function(program,uniformBlockName) {
	return GL.context.getUniformBlockIndex(program,uniformBlockName);
}
GL.getUniformIndices = function(program,uniformNames) {
	return GL.context.getUniformIndices(program,uniformNames);
}
GL.getUniformLocation = function(program,name) {
	return GL.context.getUniformLocation(program,name);
}
GL.getVertexAttrib = function(index,pname) {
	return GL.context.getVertexAttrib(index,pname);
}
GL.getVertexAttribf = function(index,pname) {
	return GL.context.getVertexAttribf(index,pname);
}
GL.getVertexAttribfv = function(index,pname,params) {
	GL.context.getVertexAttribfv(index,pname,params);
}
GL.getVertexAttribi = function(index,pname) {
	return GL.context.getVertexAttribi(index,pname);
}
GL.getVertexAttribIi = function(index,pname) {
	return GL.context.getVertexAttribIi(index,pname);
}
GL.getVertexAttribIiv = function(index,pname,params) {
	GL.context.getVertexAttribIiv(index,pname,params);
}
GL.getVertexAttribIui = function(index,pname) {
	return GL.context.getVertexAttribIui(index,pname);
}
GL.getVertexAttribIuiv = function(index,pname,params) {
	GL.context.getVertexAttribIuiv(index,pname,params);
}
GL.getVertexAttribiv = function(index,pname,params) {
	GL.context.getVertexAttribiv(index,pname,params);
}
GL.getVertexAttribOffset = function(index,pname) {
	return GL.context.getVertexAttribOffset(index,pname);
}
GL.getVertexAttribPointerv = function(index,pname) {
	return GL.context.getVertexAttribPointerv(index,pname);
}
GL.hint = function(target,mode) {
	GL.context.hint(target,mode);
}
GL.invalidateFramebuffer = function(target,attachments) {
	GL.context.invalidateFramebuffer(target,attachments);
}
GL.invalidateSubFramebuffer = function(target,attachments,x,y,width,height) {
	GL.context.invalidateSubFramebuffer(target,attachments,x,y,width,height);
}
GL.isBuffer = function(buffer) {
	return GL.context.isBuffer(buffer);
}
GL.isContextLost = function() {
	return GL.context.isContextLost();
}
GL.isEnabled = function(cap) {
	return GL.context.isEnabled(cap);
}
GL.isFramebuffer = function(framebuffer) {
	return GL.context.isFramebuffer(framebuffer);
}
GL.isProgram = function(program) {
	return GL.context.isProgram(program);
}
GL.isQuery = function(query) {
	return GL.context.isQuery(query);
}
GL.isRenderbuffer = function(renderbuffer) {
	return GL.context.isRenderbuffer(renderbuffer);
}
GL.isSampler = function(sampler) {
	return GL.context.isSampler(sampler);
}
GL.isShader = function(shader) {
	return GL.context.isShader(shader);
}
GL.isSync = function(sync) {
	return GL.context.isSync(sync);
}
GL.isTexture = function(texture) {
	return GL.context.isTexture(texture);
}
GL.isTransformFeedback = function(transformFeedback) {
	return GL.context.isTransformFeedback(transformFeedback);
}
GL.isVertexArray = function(vertexArray) {
	return GL.context.isVertexArray(vertexArray);
}
GL.lineWidth = function(width) {
	GL.context.lineWidth(width);
}
GL.linkProgram = function(program) {
	GL.context.linkProgram(program);
}
GL.mapBufferRange = function(target,offset,length,access) {
	return GL.context.mapBufferRange(target,offset,length,access);
}
GL.pauseTransformFeedback = function() {
	GL.context.pauseTransformFeedback();
}
GL.pixelStorei = function(pname,param) {
	GL.context.pixelStorei(pname,param);
}
GL.polygonOffset = function(factor,units) {
	GL.context.polygonOffset(factor,units);
}
GL.programBinary = function(program,binaryFormat,binary,length) {
	GL.context.programBinary(program,binaryFormat,binary,length);
}
GL.programParameteri = function(program,pname,value) {
	GL.context.programParameteri(program,pname,value);
}
GL.readBuffer = function(src) {
	GL.context.readBuffer(src);
}
GL.readPixels = function(x,y,width,height,format,type,pixels) {
	GL.context.readPixels(x,y,width,height,format,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromBytesPointer(pixels));
}
GL.readPixelsWEBGL = function(x,y,width,height,format,type,pixels,dstOffset) {
	GL.context.readPixelsWEBGL(x,y,width,height,format,type,pixels,dstOffset);
}
GL.releaseShaderCompiler = function() {
	GL.context.releaseShaderCompiler();
}
GL.renderbufferStorage = function(target,internalformat,width,height) {
	GL.context.renderbufferStorage(target,internalformat,width,height);
}
GL.renderbufferStorageMultisample = function(target,samples,internalformat,width,height) {
	GL.context.renderbufferStorageMultisample(target,samples,internalformat,width,height);
}
GL.resumeTransformFeedback = function() {
	GL.context.resumeTransformFeedback();
}
GL.sampleCoverage = function(value,invert) {
	GL.context.sampleCoverage(value,invert);
}
GL.samplerParameterf = function(sampler,pname,param) {
	GL.context.samplerParameterf(sampler,pname,param);
}
GL.samplerParameteri = function(sampler,pname,param) {
	GL.context.samplerParameteri(sampler,pname,param);
}
GL.scissor = function(x,y,width,height) {
	GL.context.scissor(x,y,width,height);
}
GL.shaderBinary = function(shaders,binaryformat,binary,length) {
	GL.context.shaderBinary(shaders,binaryformat,binary,length);
}
GL.shaderSource = function(shader,source) {
	GL.context.shaderSource(shader,source);
}
GL.stencilFunc = function(func,ref,mask) {
	GL.context.stencilFunc(func,ref,mask);
}
GL.stencilFuncSeparate = function(face,func,ref,mask) {
	GL.context.stencilFuncSeparate(face,func,ref,mask);
}
GL.stencilMask = function(mask) {
	GL.context.stencilMask(mask);
}
GL.stencilMaskSeparate = function(face,mask) {
	GL.context.stencilMaskSeparate(face,mask);
}
GL.stencilOp = function(fail,zfail,zpass) {
	GL.context.stencilOp(fail,zfail,zpass);
}
GL.stencilOpSeparate = function(face,fail,zfail,zpass) {
	GL.context.stencilOpSeparate(face,fail,zfail,zpass);
}
GL.texImage2D = function(target,level,internalformat,width,height,border,format,type,data) {
	GL.context.texImage2D(target,level,internalformat,width,height,border,format,type,data);
}
GL.texImage2DWEBGL = function(target,level,internalformat,width,height,border,format,type,srcData,srcOffset) {
	GL.context.texImage2DWEBGL(target,level,internalformat,width,height,border,format,type,srcData,srcOffset);
}
GL.texImage3D = function(target,level,internalformat,width,height,depth,border,format,type,data) {
	GL.context.texImage3D(target,level,internalformat,width,height,depth,border,format,type,data);
}
GL.texImage3DWEBGL = function(target,level,internalformat,width,height,depth,border,format,type,srcData,srcOffset) {
	GL.context.texImage3DWEBGL(target,level,internalformat,width,height,depth,border,format,type,srcData,srcOffset);
}
GL.texStorage2D = function(target,level,internalformat,width,height) {
	GL.context.texStorage2D(target,level,internalformat,width,height);
}
GL.texStorage3D = function(target,level,internalformat,width,height,depth) {
	GL.context.texStorage3D(target,level,internalformat,width,height,depth);
}
GL.texParameterf = function(target,pname,param) {
	GL.context.texParameterf(target,pname,param);
}
GL.texParameteri = function(target,pname,param) {
	GL.context.texParameteri(target,pname,param);
}
GL.texSubImage2D = function(target,level,xoffset,yoffset,width,height,format,type,pixels) {
	GL.context.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(pixels));
}
GL.texSubImage2DWEBGL = function(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset) {
	GL.context.texSubImage2DWEBGL(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset);
}
GL.texSubImage3D = function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,data) {
	GL.context.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,data);
}
GL.texSubImage3DWEBGL = function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,source,srcOffset) {
	GL.context.texSubImage3DWEBGL(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,source,srcOffset);
}
GL.transformFeedbackVaryings = function(program,varyings,bufferMode) {
	GL.context.transformFeedbackVaryings(program,varyings,bufferMode);
}
GL.uniform1f = function(location,v0) {
	GL.context.uniform1f(location,v0);
}
GL.uniform1fv = function(location,count,v) {
	GL.context.uniform1fv(location,count,v);
}
GL.uniform1fvWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform1fvWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform1i = function(location,v0) {
	GL.context.uniform1i(location,v0);
}
GL.uniform1iv = function(location,count,v) {
	GL.context.uniform1iv(location,count,v);
}
GL.uniform1ivWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform1ivWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform1ui = function(location,v0) {
	GL.context.uniform1ui(location,v0);
}
GL.uniform1uiv = function(location,count,v) {
	GL.context.uniform1uiv(location,count,v);
}
GL.uniform1uivWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform1uivWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform2f = function(location,v0,v1) {
	GL.context.uniform2f(location,v0,v1);
}
GL.uniform2fv = function(location,count,v) {
	GL.context.uniform2fv(location,count,v);
}
GL.uniform2fvWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform2fvWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform2i = function(location,x,y) {
	GL.context.uniform2i(location,x,y);
}
GL.uniform2iv = function(location,count,v) {
	GL.context.uniform2iv(location,count,v);
}
GL.uniform2ivWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform2ivWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform2ui = function(location,x,y) {
	GL.context.uniform2ui(location,x,y);
}
GL.uniform2uiv = function(location,count,v) {
	GL.context.uniform2uiv(location,count,v);
}
GL.uniform2uivWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform2uivWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform3f = function(location,v0,v1,v2) {
	GL.context.uniform3f(location,v0,v1,v2);
}
GL.uniform3fv = function(location,count,v) {
	GL.context.uniform3fv(location,count,v);
}
GL.uniform3fvWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform3fvWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform3i = function(location,v0,v1,v2) {
	GL.context.uniform3i(location,v0,v1,v2);
}
GL.uniform3iv = function(location,count,v) {
	GL.context.uniform3iv(location,count,v);
}
GL.uniform3ivWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform3ivWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform3ui = function(location,v0,v1,v2) {
	GL.context.uniform3ui(location,v0,v1,v2);
}
GL.uniform3uiv = function(location,count,v) {
	GL.context.uniform3uiv(location,count,v);
}
GL.uniform3uivWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform3uivWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform4f = function(location,v0,v1,v2,v3) {
	GL.context.uniform4f(location,v0,v1,v2,v3);
}
GL.uniform4fv = function(location,count,v) {
	GL.context.uniform4fv(location,count,v);
}
GL.uniform4fvWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform4fvWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform4i = function(location,v0,v1,v2,v3) {
	GL.context.uniform4i(location,v0,v1,v2,v3);
}
GL.uniform4iv = function(location,count,v) {
	GL.context.uniform4iv(location,count,v);
}
GL.uniform4ivWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform4ivWEBGL(location,data,srcOffset,srcLength);
}
GL.uniform4ui = function(location,v0,v1,v2,v3) {
	GL.context.uniform4ui(location,v0,v1,v2,v3);
}
GL.uniform4uiv = function(location,count,v) {
	GL.context.uniform4uiv(location,count,v);
}
GL.uniform4uivWEBGL = function(location,data,srcOffset,srcLength) {
	GL.context.uniform4uivWEBGL(location,data,srcOffset,srcLength);
}
GL.uniformBlockBinding = function(program,uniformBlockIndex,uniformBlockBinding) {
	GL.context.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding);
}
GL.uniformMatrix2fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix2fv(location,count,transpose,v);
}
GL.uniformMatrix2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix2fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.uniformMatrix2x3fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix2x3fv(location,count,transpose,v);
}
GL.uniformMatrix2x3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix2x3fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.uniformMatrix2x4fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix2x4fv(location,count,transpose,v);
}
GL.uniformMatrix2x4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix2x4fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.uniformMatrix3fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix3fv(location,count,transpose,v);
}
GL.uniformMatrix3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix3fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.uniformMatrix3x2fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix3x2fv(location,count,transpose,v);
}
GL.uniformMatrix3x2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix3x2fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.uniformMatrix3x4fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix3x4fv(location,count,transpose,v);
}
GL.uniformMatrix3x4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix3x4fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.uniformMatrix4fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix4fv(location,count,transpose,v);
}
GL.uniformMatrix4fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix4fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.uniformMatrix4x2fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix4x2fv(location,count,transpose,v);
}
GL.uniformMatrix4x2fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix4x2fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.uniformMatrix4x3fv = function(location,count,transpose,v) {
	GL.context.uniformMatrix4x3fv(location,count,transpose,v);
}
GL.uniformMatrix4x3fvWEBGL = function(location,transpose,v,srcOffset,srcLength) {
	GL.context.uniformMatrix4x3fvWEBGL(location,transpose,v,srcOffset,srcLength);
}
GL.unmapBuffer = function(target) {
	return GL.context.unmapBuffer(target);
}
GL.useProgram = function(program) {
	GL.__currentProgram = program;
	GL.context.useProgram(program);
}
GL.validateProgram = function(program) {
	GL.context.validateProgram(program);
}
GL.vertexAttrib1f = function(index,v0) {
	GL.context.vertexAttrib1f(index,v0);
}
GL.vertexAttrib1fv = function(index,v) {
	GL.context.vertexAttrib1fv(index,v);
}
GL.vertexAttrib1fvWEBGL = function(index,v) {
	GL.context.vertexAttrib1fv(index,v);
}
GL.vertexAttrib2f = function(index,v0,v1) {
	GL.context.vertexAttrib2f(index,v0,v1);
}
GL.vertexAttrib2fv = function(index,v) {
	GL.context.vertexAttrib2fv(index,v);
}
GL.vertexAttrib2fvWEBGL = function(index,v) {
	GL.context.vertexAttrib2fv(index,v);
}
GL.vertexAttrib3f = function(index,v0,v1,v2) {
	GL.context.vertexAttrib3f(index,v0,v1,v2);
}
GL.vertexAttrib3fv = function(index,v) {
	GL.context.vertexAttrib3fv(index,v);
}
GL.vertexAttrib3fvWEBGL = function(index,v) {
	GL.context.vertexAttrib3fv(index,v);
}
GL.vertexAttrib4f = function(index,v0,v1,v2,v3) {
	GL.context.vertexAttrib4f(index,v0,v1,v2,v3);
}
GL.vertexAttrib4fv = function(index,v) {
	GL.context.vertexAttrib4fv(index,v);
}
GL.vertexAttrib4fvWEBGL = function(index,v) {
	GL.context.vertexAttrib4fv(index,v);
}
GL.vertexAttribDivisor = function(index,divisor) {
	GL.context.vertexAttribDivisor(index,divisor);
}
GL.vertexAttribI4i = function(index,v0,v1,v2,v3) {
	GL.context.vertexAttribI4i(index,v0,v1,v2,v3);
}
GL.vertexAttribI4iv = function(index,v) {
	GL.context.vertexAttribI4iv(index,v);
}
GL.vertexAttribI4ivWEBGL = function(index,v) {
	GL.context.vertexAttribI4iv(index,v);
}
GL.vertexAttribI4ui = function(index,v0,v1,v2,v3) {
	GL.context.vertexAttribI4ui(index,v0,v1,v2,v3);
}
GL.vertexAttribI4uiv = function(index,v) {
	GL.context.vertexAttribI4uiv(index,v);
}
GL.vertexAttribI4uivWEBGL = function(index,v) {
	GL.context.vertexAttribI4uiv(index,v);
}
GL.vertexAttribIPointer = function(index,size,type,stride,offset) {
	GL.context.vertexAttribIPointer(index,size,type,stride,offset);
}
GL.vertexAttribPointer = function(index,size,type,normalized,stride,offset) {
	GL.context.vertexAttribPointer(index,size,type,normalized,stride,offset);
}
GL.viewport = function(x,y,width,height) {
	GL.context.viewport(x,y,width,height);
}
GL.waitSync = function(sync,flags,timeout) {
	GL.context.waitSync(sync,flags,timeout);
}
GL.get_type = function() {
	return GL.context.type;
}
GL.get_version = function() {
	return GL.context.version;
}
GL.__getObjectID = function(object) {
	if(object == null) {
		return 0;
	} else {
		return object.id;
	}
}
GL.DEPTH_BUFFER_BIT = 256
GL.STENCIL_BUFFER_BIT = 1024
GL.COLOR_BUFFER_BIT = 16384
GL.POINTS = 0
GL.LINES = 1
GL.LINE_LOOP = 2
GL.LINE_STRIP = 3
GL.TRIANGLES = 4
GL.TRIANGLE_STRIP = 5
GL.TRIANGLE_FAN = 6
GL.ZERO = 0
GL.ONE = 1
GL.SRC_COLOR = 768
GL.ONE_MINUS_SRC_COLOR = 769
GL.SRC_ALPHA = 770
GL.ONE_MINUS_SRC_ALPHA = 771
GL.DST_ALPHA = 772
GL.ONE_MINUS_DST_ALPHA = 773
GL.DST_COLOR = 774
GL.ONE_MINUS_DST_COLOR = 775
GL.SRC_ALPHA_SATURATE = 776
GL.FUNC_ADD = 32774
GL.BLEND_EQUATION = 32777
GL.BLEND_EQUATION_RGB = 32777
GL.BLEND_EQUATION_ALPHA = 34877
GL.FUNC_SUBTRACT = 32778
GL.FUNC_REVERSE_SUBTRACT = 32779
GL.BLEND_DST_RGB = 32968
GL.BLEND_SRC_RGB = 32969
GL.BLEND_DST_ALPHA = 32970
GL.BLEND_SRC_ALPHA = 32971
GL.CONSTANT_COLOR = 32769
GL.ONE_MINUS_CONSTANT_COLOR = 32770
GL.CONSTANT_ALPHA = 32771
GL.ONE_MINUS_CONSTANT_ALPHA = 32772
GL.BLEND_COLOR = 32773
GL.ARRAY_BUFFER = 34962
GL.ELEMENT_ARRAY_BUFFER = 34963
GL.ARRAY_BUFFER_BINDING = 34964
GL.ELEMENT_ARRAY_BUFFER_BINDING = 34965
GL.STREAM_DRAW = 35040
GL.STATIC_DRAW = 35044
GL.DYNAMIC_DRAW = 35048
GL.BUFFER_SIZE = 34660
GL.BUFFER_USAGE = 34661
GL.CURRENT_VERTEX_ATTRIB = 34342
GL.FRONT = 1028
GL.BACK = 1029
GL.FRONT_AND_BACK = 1032
GL.CULL_FACE = 2884
GL.BLEND = 3042
GL.DITHER = 3024
GL.STENCIL_TEST = 2960
GL.DEPTH_TEST = 2929
GL.SCISSOR_TEST = 3089
GL.POLYGON_OFFSET_FILL = 32823
GL.SAMPLE_ALPHA_TO_COVERAGE = 32926
GL.SAMPLE_COVERAGE = 32928
GL.NO_ERROR = 0
GL.INVALID_ENUM = 1280
GL.INVALID_VALUE = 1281
GL.INVALID_OPERATION = 1282
GL.OUT_OF_MEMORY = 1285
GL.CW = 2304
GL.CCW = 2305
GL.LINE_WIDTH = 2849
GL.ALIASED_POINT_SIZE_RANGE = 33901
GL.ALIASED_LINE_WIDTH_RANGE = 33902
GL.CULL_FACE_MODE = 2885
GL.FRONT_FACE = 2886
GL.DEPTH_RANGE = 2928
GL.DEPTH_WRITEMASK = 2930
GL.DEPTH_CLEAR_VALUE = 2931
GL.DEPTH_FUNC = 2932
GL.STENCIL_CLEAR_VALUE = 2961
GL.STENCIL_FUNC = 2962
GL.STENCIL_FAIL = 2964
GL.STENCIL_PASS_DEPTH_FAIL = 2965
GL.STENCIL_PASS_DEPTH_PASS = 2966
GL.STENCIL_REF = 2967
GL.STENCIL_VALUE_MASK = 2963
GL.STENCIL_WRITEMASK = 2968
GL.STENCIL_BACK_FUNC = 34816
GL.STENCIL_BACK_FAIL = 34817
GL.STENCIL_BACK_PASS_DEPTH_FAIL = 34818
GL.STENCIL_BACK_PASS_DEPTH_PASS = 34819
GL.STENCIL_BACK_REF = 36003
GL.STENCIL_BACK_VALUE_MASK = 36004
GL.STENCIL_BACK_WRITEMASK = 36005
GL.VIEWPORT = 2978
GL.SCISSOR_BOX = 3088
GL.COLOR_CLEAR_VALUE = 3106
GL.COLOR_WRITEMASK = 3107
GL.UNPACK_ALIGNMENT = 3317
GL.PACK_ALIGNMENT = 3333
GL.MAX_TEXTURE_SIZE = 3379
GL.MAX_VIEWPORT_DIMS = 3386
GL.SUBPIXEL_BITS = 3408
GL.RED_BITS = 3410
GL.GREEN_BITS = 3411
GL.BLUE_BITS = 3412
GL.ALPHA_BITS = 3413
GL.DEPTH_BITS = 3414
GL.STENCIL_BITS = 3415
GL.POLYGON_OFFSET_UNITS = 10752
GL.POLYGON_OFFSET_FACTOR = 32824
GL.TEXTURE_BINDING_2D = 32873
GL.SAMPLE_BUFFERS = 32936
GL.SAMPLES = 32937
GL.SAMPLE_COVERAGE_VALUE = 32938
GL.SAMPLE_COVERAGE_INVERT = 32939
GL.NUM_COMPRESSED_TEXTURE_FORMATS = 34466
GL.COMPRESSED_TEXTURE_FORMATS = 34467
GL.DONT_CARE = 4352
GL.FASTEST = 4353
GL.NICEST = 4354
GL.GENERATE_MIPMAP_HINT = 33170
GL.BYTE = 5120
GL.UNSIGNED_BYTE = 5121
GL.SHORT = 5122
GL.UNSIGNED_SHORT = 5123
GL.INT = 5124
GL.UNSIGNED_INT = 5125
GL.FLOAT = 5126
GL.DEPTH_COMPONENT = 6402
GL.ALPHA = 6406
GL.RGB = 6407
GL.RGBA = 6408
GL.LUMINANCE = 6409
GL.LUMINANCE_ALPHA = 6410
GL.UNSIGNED_SHORT_4_4_4_4 = 32819
GL.UNSIGNED_SHORT_5_5_5_1 = 32820
GL.UNSIGNED_SHORT_5_6_5 = 33635
GL.FRAGMENT_SHADER = 35632
GL.VERTEX_SHADER = 35633
GL.MAX_VERTEX_ATTRIBS = 34921
GL.MAX_VERTEX_UNIFORM_VECTORS = 36347
GL.MAX_VARYING_VECTORS = 36348
GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661
GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660
GL.MAX_TEXTURE_IMAGE_UNITS = 34930
GL.MAX_FRAGMENT_UNIFORM_VECTORS = 36349
GL.SHADER_TYPE = 35663
GL.DELETE_STATUS = 35712
GL.LINK_STATUS = 35714
GL.VALIDATE_STATUS = 35715
GL.ATTACHED_SHADERS = 35717
GL.ACTIVE_UNIFORMS = 35718
GL.ACTIVE_ATTRIBUTES = 35721
GL.SHADING_LANGUAGE_VERSION = 35724
GL.CURRENT_PROGRAM = 35725
GL.NEVER = 512
GL.LESS = 513
GL.EQUAL = 514
GL.LEQUAL = 515
GL.GREATER = 516
GL.NOTEQUAL = 517
GL.GEQUAL = 518
GL.ALWAYS = 519
GL.KEEP = 7680
GL.REPLACE = 7681
GL.INCR = 7682
GL.DECR = 7683
GL.INVERT = 5386
GL.INCR_WRAP = 34055
GL.DECR_WRAP = 34056
GL.VENDOR = 7936
GL.RENDERER = 7937
GL.VERSION = 7938
GL.EXTENSIONS = 7939
GL.NEAREST = 9728
GL.LINEAR = 9729
GL.NEAREST_MIPMAP_NEAREST = 9984
GL.LINEAR_MIPMAP_NEAREST = 9985
GL.NEAREST_MIPMAP_LINEAR = 9986
GL.LINEAR_MIPMAP_LINEAR = 9987
GL.TEXTURE_MAG_FILTER = 10240
GL.TEXTURE_MIN_FILTER = 10241
GL.TEXTURE_WRAP_S = 10242
GL.TEXTURE_WRAP_T = 10243
GL.TEXTURE_2D = 3553
GL.TEXTURE = 5890
GL.TEXTURE_CUBE_MAP = 34067
GL.TEXTURE_BINDING_CUBE_MAP = 34068
GL.TEXTURE_CUBE_MAP_POSITIVE_X = 34069
GL.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070
GL.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071
GL.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072
GL.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073
GL.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074
GL.MAX_CUBE_MAP_TEXTURE_SIZE = 34076
GL.TEXTURE0 = 33984
GL.TEXTURE1 = 33985
GL.TEXTURE2 = 33986
GL.TEXTURE3 = 33987
GL.TEXTURE4 = 33988
GL.TEXTURE5 = 33989
GL.TEXTURE6 = 33990
GL.TEXTURE7 = 33991
GL.TEXTURE8 = 33992
GL.TEXTURE9 = 33993
GL.TEXTURE10 = 33994
GL.TEXTURE11 = 33995
GL.TEXTURE12 = 33996
GL.TEXTURE13 = 33997
GL.TEXTURE14 = 33998
GL.TEXTURE15 = 33999
GL.TEXTURE16 = 34000
GL.TEXTURE17 = 34001
GL.TEXTURE18 = 34002
GL.TEXTURE19 = 34003
GL.TEXTURE20 = 34004
GL.TEXTURE21 = 34005
GL.TEXTURE22 = 34006
GL.TEXTURE23 = 34007
GL.TEXTURE24 = 34008
GL.TEXTURE25 = 34009
GL.TEXTURE26 = 34010
GL.TEXTURE27 = 34011
GL.TEXTURE28 = 34012
GL.TEXTURE29 = 34013
GL.TEXTURE30 = 34014
GL.TEXTURE31 = 34015
GL.ACTIVE_TEXTURE = 34016
GL.REPEAT = 10497
GL.CLAMP_TO_EDGE = 33071
GL.MIRRORED_REPEAT = 33648
GL.FLOAT_VEC2 = 35664
GL.FLOAT_VEC3 = 35665
GL.FLOAT_VEC4 = 35666
GL.INT_VEC2 = 35667
GL.INT_VEC3 = 35668
GL.INT_VEC4 = 35669
GL.BOOL = 35670
GL.BOOL_VEC2 = 35671
GL.BOOL_VEC3 = 35672
GL.BOOL_VEC4 = 35673
GL.FLOAT_MAT2 = 35674
GL.FLOAT_MAT3 = 35675
GL.FLOAT_MAT4 = 35676
GL.SAMPLER_2D = 35678
GL.SAMPLER_CUBE = 35680
GL.VERTEX_ATTRIB_ARRAY_ENABLED = 34338
GL.VERTEX_ATTRIB_ARRAY_SIZE = 34339
GL.VERTEX_ATTRIB_ARRAY_STRIDE = 34340
GL.VERTEX_ATTRIB_ARRAY_TYPE = 34341
GL.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922
GL.VERTEX_ATTRIB_ARRAY_POINTER = 34373
GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975
GL.IMPLEMENTATION_COLOR_READ_TYPE = 35738
GL.IMPLEMENTATION_COLOR_READ_FORMAT = 35739
GL.VERTEX_PROGRAM_POINT_SIZE = 34370
GL.POINT_SPRITE = 34913
GL.COMPILE_STATUS = 35713
GL.LOW_FLOAT = 36336
GL.MEDIUM_FLOAT = 36337
GL.HIGH_FLOAT = 36338
GL.LOW_INT = 36339
GL.MEDIUM_INT = 36340
GL.HIGH_INT = 36341
GL.FRAMEBUFFER = 36160
GL.RENDERBUFFER = 36161
GL.RGBA4 = 32854
GL.RGB5_A1 = 32855
GL.RGB565 = 36194
GL.DEPTH_COMPONENT16 = 33189
GL.STENCIL_INDEX = 6401
GL.STENCIL_INDEX8 = 36168
GL.DEPTH_STENCIL = 34041
GL.RENDERBUFFER_WIDTH = 36162
GL.RENDERBUFFER_HEIGHT = 36163
GL.RENDERBUFFER_INTERNAL_FORMAT = 36164
GL.RENDERBUFFER_RED_SIZE = 36176
GL.RENDERBUFFER_GREEN_SIZE = 36177
GL.RENDERBUFFER_BLUE_SIZE = 36178
GL.RENDERBUFFER_ALPHA_SIZE = 36179
GL.RENDERBUFFER_DEPTH_SIZE = 36180
GL.RENDERBUFFER_STENCIL_SIZE = 36181
GL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048
GL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049
GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050
GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051
GL.COLOR_ATTACHMENT0 = 36064
GL.DEPTH_ATTACHMENT = 36096
GL.STENCIL_ATTACHMENT = 36128
GL.DEPTH_STENCIL_ATTACHMENT = 33306
GL.NONE = 0
GL.FRAMEBUFFER_COMPLETE = 36053
GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054
GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055
GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057
GL.FRAMEBUFFER_UNSUPPORTED = 36061
GL.FRAMEBUFFER_BINDING = 36006
GL.RENDERBUFFER_BINDING = 36007
GL.MAX_RENDERBUFFER_SIZE = 34024
GL.INVALID_FRAMEBUFFER_OPERATION = 1286
GL.UNPACK_FLIP_Y_WEBGL = 37440
GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441
GL.CONTEXT_LOST_WEBGL = 37442
GL.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443
GL.BROWSER_DEFAULT_WEBGL = 37444
GL.READ_BUFFER = 3074
GL.UNPACK_ROW_LENGTH = 3314
GL.UNPACK_SKIP_ROWS = 3315
GL.UNPACK_SKIP_PIXELS = 3316
GL.PACK_ROW_LENGTH = 3330
GL.PACK_SKIP_ROWS = 3331
GL.PACK_SKIP_PIXELS = 3332
GL.TEXTURE_BINDING_3D = 32874
GL.UNPACK_SKIP_IMAGES = 32877
GL.UNPACK_IMAGE_HEIGHT = 32878
GL.MAX_3D_TEXTURE_SIZE = 32883
GL.MAX_ELEMENTS_VERTICES = 33000
GL.MAX_ELEMENTS_INDICES = 33001
GL.MAX_TEXTURE_LOD_BIAS = 34045
GL.MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657
GL.MAX_VERTEX_UNIFORM_COMPONENTS = 35658
GL.MAX_ARRAY_TEXTURE_LAYERS = 35071
GL.MIN_PROGRAM_TEXEL_OFFSET = 35076
GL.MAX_PROGRAM_TEXEL_OFFSET = 35077
GL.MAX_VARYING_COMPONENTS = 35659
GL.FRAGMENT_SHADER_DERIVATIVE_HINT = 35723
GL.RASTERIZER_DISCARD = 35977
GL.VERTEX_ARRAY_BINDING = 34229
GL.MAX_VERTEX_OUTPUT_COMPONENTS = 37154
GL.MAX_FRAGMENT_INPUT_COMPONENTS = 37157
GL.MAX_SERVER_WAIT_TIMEOUT = 37137
GL.MAX_ELEMENT_INDEX = 36203
GL.RED = 6403
GL.RGB8 = 32849
GL.RGBA8 = 32856
GL.RGB10_A2 = 32857
GL.TEXTURE_3D = 32879
GL.TEXTURE_WRAP_R = 32882
GL.TEXTURE_MIN_LOD = 33082
GL.TEXTURE_MAX_LOD = 33083
GL.TEXTURE_BASE_LEVEL = 33084
GL.TEXTURE_MAX_LEVEL = 33085
GL.TEXTURE_COMPARE_MODE = 34892
GL.TEXTURE_COMPARE_FUNC = 34893
GL.SRGB = 35904
GL.SRGB8 = 35905
GL.SRGB8_ALPHA8 = 35907
GL.COMPARE_REF_TO_TEXTURE = 34894
GL.RGBA32F = 34836
GL.RGB32F = 34837
GL.RGBA16F = 34842
GL.RGB16F = 34843
GL.TEXTURE_2D_ARRAY = 35866
GL.TEXTURE_BINDING_2D_ARRAY = 35869
GL.R11F_G11F_B10F = 35898
GL.RGB9_E5 = 35901
GL.RGBA32UI = 36208
GL.RGB32UI = 36209
GL.RGBA16UI = 36214
GL.RGB16UI = 36215
GL.RGBA8UI = 36220
GL.RGB8UI = 36221
GL.RGBA32I = 36226
GL.RGB32I = 36227
GL.RGBA16I = 36232
GL.RGB16I = 36233
GL.RGBA8I = 36238
GL.RGB8I = 36239
GL.RED_INTEGER = 36244
GL.RGB_INTEGER = 36248
GL.RGBA_INTEGER = 36249
GL.R8 = 33321
GL.RG8 = 33323
GL.R16F = 33325
GL.R32F = 33326
GL.RG16F = 33327
GL.RG32F = 33328
GL.R8I = 33329
GL.R8UI = 33330
GL.R16I = 33331
GL.R16UI = 33332
GL.R32I = 33333
GL.R32UI = 33334
GL.RG8I = 33335
GL.RG8UI = 33336
GL.RG16I = 33337
GL.RG16UI = 33338
GL.RG32I = 33339
GL.RG32UI = 33340
GL.R8_SNORM = 36756
GL.RG8_SNORM = 36757
GL.RGB8_SNORM = 36758
GL.RGBA8_SNORM = 36759
GL.RGB10_A2UI = 36975
GL.TEXTURE_IMMUTABLE_FORMAT = 37167
GL.TEXTURE_IMMUTABLE_LEVELS = 33503
GL.UNSIGNED_INT_2_10_10_10_REV = 33640
GL.UNSIGNED_INT_10F_11F_11F_REV = 35899
GL.UNSIGNED_INT_5_9_9_9_REV = 35902
GL.FLOAT_32_UNSIGNED_INT_24_8_REV = 36269
GL.UNSIGNED_INT_24_8 = 34042
GL.HALF_FLOAT = 5131
GL.RG = 33319
GL.RG_INTEGER = 33320
GL.INT_2_10_10_10_REV = 36255
GL.CURRENT_QUERY = 34917
GL.QUERY_RESULT = 34918
GL.QUERY_RESULT_AVAILABLE = 34919
GL.ANY_SAMPLES_PASSED = 35887
GL.ANY_SAMPLES_PASSED_CONSERVATIVE = 36202
GL.MAX_DRAW_BUFFERS = 34852
GL.DRAW_BUFFER0 = 34853
GL.DRAW_BUFFER1 = 34854
GL.DRAW_BUFFER2 = 34855
GL.DRAW_BUFFER3 = 34856
GL.DRAW_BUFFER4 = 34857
GL.DRAW_BUFFER5 = 34858
GL.DRAW_BUFFER6 = 34859
GL.DRAW_BUFFER7 = 34860
GL.DRAW_BUFFER8 = 34861
GL.DRAW_BUFFER9 = 34862
GL.DRAW_BUFFER10 = 34863
GL.DRAW_BUFFER11 = 34864
GL.DRAW_BUFFER12 = 34865
GL.DRAW_BUFFER13 = 34866
GL.DRAW_BUFFER14 = 34867
GL.DRAW_BUFFER15 = 34868
GL.MAX_COLOR_ATTACHMENTS = 36063
GL.COLOR_ATTACHMENT1 = 36065
GL.COLOR_ATTACHMENT2 = 36066
GL.COLOR_ATTACHMENT3 = 36067
GL.COLOR_ATTACHMENT4 = 36068
GL.COLOR_ATTACHMENT5 = 36069
GL.COLOR_ATTACHMENT6 = 36070
GL.COLOR_ATTACHMENT7 = 36071
GL.COLOR_ATTACHMENT8 = 36072
GL.COLOR_ATTACHMENT9 = 36073
GL.COLOR_ATTACHMENT10 = 36074
GL.COLOR_ATTACHMENT11 = 36075
GL.COLOR_ATTACHMENT12 = 36076
GL.COLOR_ATTACHMENT13 = 36077
GL.COLOR_ATTACHMENT14 = 36078
GL.COLOR_ATTACHMENT15 = 36079
GL.SAMPLER_3D = 35679
GL.SAMPLER_2D_SHADOW = 35682
GL.SAMPLER_2D_ARRAY = 36289
GL.SAMPLER_2D_ARRAY_SHADOW = 36292
GL.SAMPLER_CUBE_SHADOW = 36293
GL.INT_SAMPLER_2D = 36298
GL.INT_SAMPLER_3D = 36299
GL.INT_SAMPLER_CUBE = 36300
GL.INT_SAMPLER_2D_ARRAY = 36303
GL.UNSIGNED_INT_SAMPLER_2D = 36306
GL.UNSIGNED_INT_SAMPLER_3D = 36307
GL.UNSIGNED_INT_SAMPLER_CUBE = 36308
GL.UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311
GL.MAX_SAMPLES = 36183
GL.SAMPLER_BINDING = 35097
GL.PIXEL_PACK_BUFFER = 35051
GL.PIXEL_UNPACK_BUFFER = 35052
GL.PIXEL_PACK_BUFFER_BINDING = 35053
GL.PIXEL_UNPACK_BUFFER_BINDING = 35055
GL.COPY_READ_BUFFER = 36662
GL.COPY_WRITE_BUFFER = 36663
GL.COPY_READ_BUFFER_BINDING = 36662
GL.COPY_WRITE_BUFFER_BINDING = 36663
GL.FLOAT_MAT2x3 = 35685
GL.FLOAT_MAT2x4 = 35686
GL.FLOAT_MAT3x2 = 35687
GL.FLOAT_MAT3x4 = 35688
GL.FLOAT_MAT4x2 = 35689
GL.FLOAT_MAT4x3 = 35690
GL.UNSIGNED_INT_VEC2 = 36294
GL.UNSIGNED_INT_VEC3 = 36295
GL.UNSIGNED_INT_VEC4 = 36296
GL.UNSIGNED_NORMALIZED = 35863
GL.SIGNED_NORMALIZED = 36764
GL.VERTEX_ATTRIB_ARRAY_INTEGER = 35069
GL.VERTEX_ATTRIB_ARRAY_DIVISOR = 35070
GL.TRANSFORM_FEEDBACK_BUFFER_MODE = 35967
GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968
GL.TRANSFORM_FEEDBACK_VARYINGS = 35971
GL.TRANSFORM_FEEDBACK_BUFFER_START = 35972
GL.TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973
GL.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976
GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978
GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979
GL.INTERLEAVED_ATTRIBS = 35980
GL.SEPARATE_ATTRIBS = 35981
GL.TRANSFORM_FEEDBACK_BUFFER = 35982
GL.TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983
GL.TRANSFORM_FEEDBACK = 36386
GL.TRANSFORM_FEEDBACK_PAUSED = 36387
GL.TRANSFORM_FEEDBACK_ACTIVE = 36388
GL.TRANSFORM_FEEDBACK_BINDING = 36389
GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296
GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297
GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298
GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299
GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300
GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301
GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302
GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303
GL.FRAMEBUFFER_DEFAULT = 33304
GL.DEPTH24_STENCIL8 = 35056
GL.DRAW_FRAMEBUFFER_BINDING = 36006
GL.READ_FRAMEBUFFER = 36008
GL.DRAW_FRAMEBUFFER = 36009
GL.READ_FRAMEBUFFER_BINDING = 36010
GL.RENDERBUFFER_SAMPLES = 36011
GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052
GL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182
GL.UNIFORM_BUFFER = 35345
GL.UNIFORM_BUFFER_BINDING = 35368
GL.UNIFORM_BUFFER_START = 35369
GL.UNIFORM_BUFFER_SIZE = 35370
GL.MAX_VERTEX_UNIFORM_BLOCKS = 35371
GL.MAX_FRAGMENT_UNIFORM_BLOCKS = 35373
GL.MAX_COMBINED_UNIFORM_BLOCKS = 35374
GL.MAX_UNIFORM_BUFFER_BINDINGS = 35375
GL.MAX_UNIFORM_BLOCK_SIZE = 35376
GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377
GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379
GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380
GL.ACTIVE_UNIFORM_BLOCKS = 35382
GL.UNIFORM_TYPE = 35383
GL.UNIFORM_SIZE = 35384
GL.UNIFORM_BLOCK_INDEX = 35386
GL.UNIFORM_OFFSET = 35387
GL.UNIFORM_ARRAY_STRIDE = 35388
GL.UNIFORM_MATRIX_STRIDE = 35389
GL.UNIFORM_IS_ROW_MAJOR = 35390
GL.UNIFORM_BLOCK_BINDING = 35391
GL.UNIFORM_BLOCK_DATA_SIZE = 35392
GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394
GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395
GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396
GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398
GL.OBJECT_TYPE = 37138
GL.SYNC_CONDITION = 37139
GL.SYNC_STATUS = 37140
GL.SYNC_FLAGS = 37141
GL.SYNC_FENCE = 37142
GL.SYNC_GPU_COMMANDS_COMPLETE = 37143
GL.UNSIGNALED = 37144
GL.SIGNALED = 37145
GL.ALREADY_SIGNALED = 37146
GL.TIMEOUT_EXPIRED = 37147
GL.CONDITION_SATISFIED = 37148
GL.WAIT_FAILED = 37149
GL.SYNC_FLUSH_COMMANDS_BIT = 1
GL.COLOR = 6144
GL.DEPTH = 6145
GL.STENCIL = 6146
GL.MIN = 32775
GL.MAX = 32776
GL.DEPTH_COMPONENT24 = 33190
GL.STREAM_READ = 35041
GL.STREAM_COPY = 35042
GL.STATIC_READ = 35045
GL.STATIC_COPY = 35046
GL.DYNAMIC_READ = 35049
GL.DYNAMIC_COPY = 35050
GL.DEPTH_COMPONENT32F = 36012
GL.DEPTH32F_STENCIL8 = 36013
GL.INVALID_INDEX = -1
GL.TIMEOUT_IGNORED = -1
GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 37447
// Export
exports.default = GL;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 50 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: openfl.display.GraphicsDataType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var GraphicsDataType = $hxClasses["openfl.display.GraphicsDataType"] = { __ename__: ["openfl","display","GraphicsDataType"], __constructs__: ["STROKE","SOLID","GRADIENT","PATH","BITMAP","END","TRIANGLE_PATH"] }
GraphicsDataType.BITMAP = ["BITMAP",4];
GraphicsDataType.BITMAP.toString = $estr;
GraphicsDataType.BITMAP.__enum__ = GraphicsDataType;
GraphicsDataType.SOLID = ["SOLID",1];
GraphicsDataType.SOLID.toString = $estr;
GraphicsDataType.SOLID.__enum__ = GraphicsDataType;
GraphicsDataType.STROKE = ["STROKE",0];
GraphicsDataType.STROKE.toString = $estr;
GraphicsDataType.STROKE.__enum__ = GraphicsDataType;
GraphicsDataType.GRADIENT = ["GRADIENT",2];
GraphicsDataType.GRADIENT.toString = $estr;
GraphicsDataType.GRADIENT.__enum__ = GraphicsDataType;
GraphicsDataType.TRIANGLE_PATH = ["TRIANGLE_PATH",6];
GraphicsDataType.TRIANGLE_PATH.toString = $estr;
GraphicsDataType.TRIANGLE_PATH.__enum__ = GraphicsDataType;
GraphicsDataType.END = ["END",5];
GraphicsDataType.END.toString = $estr;
GraphicsDataType.END.__enum__ = GraphicsDataType;
GraphicsDataType.PATH = ["PATH",3];
GraphicsDataType.PATH.toString = $estr;
GraphicsDataType.PATH.__enum__ = GraphicsDataType;
exports.default = GraphicsDataType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 51 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.IGraphicsData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IGraphicsData = function() {}
// Meta
IGraphicsData.__name__ = ["openfl","display","IGraphicsData"];
IGraphicsData.prototype = {
	
};
IGraphicsData.prototype.__class__ = $hxClasses["openfl.display.IGraphicsData"] = IGraphicsData;
// Init
// Statics
// Export
exports.default = IGraphicsData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 52 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMRenderer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractRenderer() {return __webpack_require__(118);}
function openfl__$internal_renderer_RenderSession() {return __webpack_require__(91);}
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function Reflect() {return __webpack_require__(5);}
function openfl__$internal_renderer_canvas_CanvasRenderer() {return __webpack_require__(68);}
function openfl__$internal_renderer_dom_DOMMaskManager() {return __webpack_require__(313);}
function openfl__$internal_renderer_dom_DOMBlendModeManager() {return __webpack_require__(314);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
// Constructor
var DOMRenderer = function(stage,element) {
	(openfl__$internal_renderer_AbstractRenderer().default).call(this,stage);
	this.element = element;
	this.renderSession = new (openfl__$internal_renderer_RenderSession().default)();
	this.renderSession.clearRenderDirty = true;
	this.renderSession.element = element;
	(openfl_display_DisplayObject().default).__supportDOM = true;
	var config = stage.window.config;
	if(config != null && (Reflect().default).hasField(config,"allowHighDPI") && config.allowHighDPI) {
		(openfl__$internal_renderer_canvas_CanvasRenderer().default).scale = window.devicePixelRatio || 1;
	}
	var prefix = (function () {
		  var styles = window.getComputedStyle(document.documentElement, ''),
			pre = (Array.prototype.slice
			  .call(styles)
			  .join('') 
			  .match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o'])
			)[1],
			dom = ('WebKit|Moz|MS|O').match(new RegExp('(' + pre + ')', 'i'))[1];
		  return {
			dom: dom,
			lowercase: pre,
			css: '-' + pre + '-',
			js: pre[0].toUpperCase() + pre.substr(1)
		  };
		})();
	this.renderSession.vendorPrefix = prefix.lowercase;
	this.renderSession.transformProperty = prefix.lowercase == "webkit" ? "-webkit-transform" : "transform";
	this.renderSession.transformOriginProperty = prefix.lowercase == "webkit" ? "-webkit-transform-origin" : "transform-origin";
	this.renderSession.maskManager = new (openfl__$internal_renderer_dom_DOMMaskManager().default)(this.renderSession);
	this.renderSession.blendModeManager = new (openfl__$internal_renderer_dom_DOMBlendModeManager().default)(this.renderSession);
	this.renderSession.renderer = this;
	this.renderSession.renderType = (lime_graphics_RendererType().default).DOM;
}
// Meta
DOMRenderer.__name__ = ["openfl","_internal","renderer","dom","DOMRenderer"];
DOMRenderer.__super__ = (openfl__$internal_renderer_AbstractRenderer().default);
DOMRenderer.prototype = $extend((openfl__$internal_renderer_AbstractRenderer().default).prototype, {
	render: function() {
		this.renderSession.allowSmoothing = this.stage.quality != "low";
		if(!this.stage.__transparent) {
			this.element.style.background = this.stage.__colorString;
		} else {
			this.element.style.background = "none";
		}
		this.renderSession.z = 1;
		this.stage.__renderDOM(this.renderSession);
	},
	renderStage3D: function() {
		var _g = 0;
		var _g1 = this.stage.stage3Ds;
		while(_g < _g1.get_length()) {
			var stage3D = _g1.get(_g);
			++_g;
			stage3D.__renderDOM(this.stage,this.renderSession);
		}
	}
});
DOMRenderer.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMRenderer"] = DOMRenderer;
// Init
// Statics
DOMRenderer.applyStyle = function(displayObject,renderSession,setTransform,setAlpha,setClip) {
	var style = displayObject.__style;
	if(setTransform && displayObject.__renderTransformChanged) {
		style.setProperty(renderSession.transformProperty,displayObject.__renderTransform.to3DString(renderSession.roundPixels),null);
	}
	if(displayObject.__worldZ != ++renderSession.z) {
		displayObject.__worldZ = renderSession.z;
		style.setProperty("z-index",displayObject.__worldZ == null ? "null" : "" + displayObject.__worldZ,null);
	}
	if(setAlpha && displayObject.__worldAlphaChanged) {
		if(displayObject.__worldAlpha < 1) {
			style.setProperty("opacity",displayObject.__worldAlpha == null ? "null" : "" + displayObject.__worldAlpha,null);
		} else {
			style.removeProperty("opacity");
		}
	}
	if(setClip && displayObject.__worldClipChanged) {
		if(displayObject.__worldClip == null) {
			style.removeProperty("clip");
		} else {
			var clip = displayObject.__worldClip;
			style.setProperty("clip","rect(" + clip.y + "px, " + clip.get_right() + "px, " + clip.get_bottom() + "px, " + clip.x + "px)",null);
		}
	}
}
DOMRenderer.initializeElement = function(displayObject,element,renderSession) {
	var style = displayObject.__style = element.style;
	style.setProperty("position","absolute",null);
	style.setProperty("top","0",null);
	style.setProperty("left","0",null);
	style.setProperty(renderSession.transformOriginProperty,"0 0 0",null);
	renderSession.element.appendChild(element);
	displayObject.__worldAlphaChanged = true;
	displayObject.__renderTransformChanged = true;
	displayObject.__worldVisibleChanged = true;
	displayObject.__worldClipChanged = true;
	displayObject.__worldClip = null;
	displayObject.__worldZ = -1;
}
DOMRenderer.updateClip = function(displayObject,renderSession) {
	var maskManager = renderSession.maskManager;
	maskManager.updateClip(displayObject);
}
// Export
exports.default = DOMRenderer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 53 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.ProgressEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var ProgressEvent = function(type,bubbles,cancelable,bytesLoaded,bytesTotal) {
	if(bytesTotal == null) {
		bytesTotal = 0;
	}
	if(bytesLoaded == null) {
		bytesLoaded = 0;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.bytesLoaded = bytesLoaded;
	this.bytesTotal = bytesTotal;
}
// Meta
ProgressEvent.__name__ = ["openfl","events","ProgressEvent"];
ProgressEvent.__super__ = (openfl_events_Event().default);
ProgressEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new ProgressEvent(this.type,this.bubbles,this.cancelable,this.bytesLoaded,this.bytesTotal);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("ProgressEvent",["type","bubbles","cancelable","bytesLoaded","bytesTotal"]);
	}
});
ProgressEvent.prototype.__class__ = $hxClasses["openfl.events.ProgressEvent"] = ProgressEvent;
// Init
// Statics
ProgressEvent.PROGRESS = "progress"
ProgressEvent.SOCKET_DATA = "socketData"
// Export
exports.default = ProgressEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 54 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe._Int64.___Int64
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var ___Int64 = function(high,low) {
	this.high = high;
	this.low = low;
}
// Meta
___Int64.__name__ = ["haxe","_Int64","___Int64"];
___Int64.prototype = {
	
};
___Int64.prototype.__class__ = $hxClasses["haxe._Int64.___Int64"] = ___Int64;
// Init
// Statics
// Export
exports.default = ___Int64;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 55 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.graphics.ImageType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var ImageType = $hxClasses["lime.graphics.ImageType"] = { __ename__: ["lime","graphics","ImageType"], __constructs__: ["CANVAS","DATA","FLASH","CUSTOM"] }
ImageType.CANVAS = ["CANVAS",0];
ImageType.CANVAS.toString = $estr;
ImageType.CANVAS.__enum__ = ImageType;
ImageType.FLASH = ["FLASH",2];
ImageType.FLASH.toString = $estr;
ImageType.FLASH.__enum__ = ImageType;
ImageType.DATA = ["DATA",1];
ImageType.DATA.toString = $estr;
ImageType.DATA.__enum__ = ImageType;
ImageType.CUSTOM = ["CUSTOM",3];
ImageType.CUSTOM.toString = $estr;
ImageType.CUSTOM.__enum__ = ImageType;
exports.default = ImageType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 56 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.Image
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_ImageType() {return __webpack_require__(55);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function Type() {return __webpack_require__(10);}
function lime_graphics_utils_ImageDataUtil() {return __webpack_require__(65);}
function lime_math__$ColorMatrix_ColorMatrix_$Impl_$() {return __webpack_require__(150);}
function lime_graphics_ImageChannel() {return __webpack_require__(111);}
function lime_graphics_format_BMP() {return __webpack_require__(270);}
function lime_graphics_format_JPEG() {return __webpack_require__(272);}
function lime_graphics_format_PNG() {return __webpack_require__(273);}
function lime_math_Rectangle() {return __webpack_require__(41);}
function lime_math_Vector2() {return __webpack_require__(42);}
function lime_system_Endian() {return __webpack_require__(64);}
function lime_graphics_ImageBuffer() {return __webpack_require__(110);}
function lime__$backend_html5_HTML5HTTPRequest() {return __webpack_require__(154);}
function lime_app_Future() {return __webpack_require__(24);}
function haxe_crypto_BaseCode() {return __webpack_require__(156);}
function haxe_io_Bytes() {return __webpack_require__(16);}
// Constructor
var Image = function(buffer,offsetX,offsetY,width,height,color,type) {
	if(height == null) {
		height = -1;
	}
	if(width == null) {
		width = -1;
	}
	if(offsetY == null) {
		offsetY = 0;
	}
	if(offsetX == null) {
		offsetX = 0;
	}
	this.offsetX = offsetX;
	this.offsetY = offsetY;
	this.width = width;
	this.height = height;
	this.version = 0;
	if(type == null) {
		type = (lime_graphics_ImageType().default).CANVAS;
	}
	this.type = type;
	if(buffer == null) {
		if(width > 0 && height > 0) {
			var _g = this.type;
			switch((Type().default).enumIndex(_g)) {
			case 0:
				this.buffer = new (lime_graphics_ImageBuffer().default)(null,width,height);
				(lime_graphics_utils_ImageCanvasUtil().default).createCanvas(this,width,height);
				if(color != null && color != 0) {
					this.fillRect(new (lime_math_Rectangle().default)(0,0,width,height),color);
				}
				break;
			case 1:
				var elements = width * height * 4;
				var this1;
				if(elements != null) {
					this1 = new Uint8Array(elements);
				} else {
					this1 = null;
				}
				this.buffer = new (lime_graphics_ImageBuffer().default)(this1,width,height);
				if(color != null && color != 0) {
					this.fillRect(new (lime_math_Rectangle().default)(0,0,width,height),color);
				}
				break;
			case 2:
				break;
			default:
			}
		}
	} else {
		this.__fromImageBuffer(buffer);
	}
}
// Meta
Image.__name__ = ["lime","graphics","Image"];
Image.prototype = {
	clone: function() {
		if(this.buffer != null) {
			if(this.type == (lime_graphics_ImageType().default).CANVAS) {
				(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(this);
			} else {
				(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			}
			var image = new Image(this.buffer.clone(),this.offsetX,this.offsetY,this.width,this.height,null,this.type);
			image.version = this.version;
			return image;
		} else {
			return new Image(null,this.offsetX,this.offsetY,this.width,this.height,null,this.type);
		}
	},
	colorTransform: function(rect,colorMatrix) {
		rect = this.__clipRect(rect);
		if(this.buffer == null || rect == null) {
			return;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).colorTransform(this,rect,colorMatrix);
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageDataUtil().default).colorTransform(this,rect,colorMatrix);
			break;
		case 2:
			rect.offset(this.offsetX,this.offsetY);
			this.buffer.__srcBitmapData.colorTransform(rect.__toFlashRectangle(),(lime_math__$ColorMatrix_ColorMatrix_$Impl_$().default).__toFlashColorTransform(colorMatrix));
			break;
		default:
		}
	},
	copyChannel: function(sourceImage,sourceRect,destPoint,sourceChannel,destChannel) {
		sourceRect = this.__clipRect(sourceRect);
		if(this.buffer == null || sourceRect == null) {
			return;
		}
		if(destChannel == (lime_graphics_ImageChannel().default).ALPHA && !this.get_transparent()) {
			return;
		}
		if(sourceRect.width <= 0 || sourceRect.height <= 0) {
			return;
		}
		if(sourceRect.x + sourceRect.width > sourceImage.width) {
			sourceRect.width = sourceImage.width - sourceRect.x;
		}
		if(sourceRect.y + sourceRect.height > sourceImage.height) {
			sourceRect.height = sourceImage.height - sourceRect.y;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(sourceImage);
			(lime_graphics_utils_ImageDataUtil().default).copyChannel(this,sourceImage,sourceRect,destPoint,sourceChannel,destChannel);
			break;
		case 2:
			var srcChannel;
			switch((Type().default).enumIndex(sourceChannel)) {
			case 0:
				srcChannel = 1;
				break;
			case 1:
				srcChannel = 2;
				break;
			case 2:
				srcChannel = 4;
				break;
			case 3:
				srcChannel = 8;
				break;
			}
			var dstChannel;
			switch((Type().default).enumIndex(destChannel)) {
			case 0:
				dstChannel = 1;
				break;
			case 1:
				dstChannel = 2;
				break;
			case 2:
				dstChannel = 4;
				break;
			case 3:
				dstChannel = 8;
				break;
			}
			sourceRect.offset(sourceImage.offsetX,sourceImage.offsetY);
			destPoint.offset(this.offsetX,this.offsetY);
			this.buffer.__srcBitmapData.copyChannel(sourceImage.buffer.get_src(),sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),srcChannel,dstChannel);
			break;
		default:
		}
	},
	copyPixels: function(sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) {
		if(mergeAlpha == null) {
			mergeAlpha = false;
		}
		if(this.buffer == null || sourceImage == null) {
			return;
		}
		if(sourceRect.width <= 0 || sourceRect.height <= 0) {
			return;
		}
		if(this.width <= 0 || this.height <= 0) {
			return;
		}
		if(sourceRect.x + sourceRect.width > sourceImage.width) {
			sourceRect.width = sourceImage.width - sourceRect.x;
		}
		if(sourceRect.y + sourceRect.height > sourceImage.height) {
			sourceRect.height = sourceImage.height - sourceRect.y;
		}
		if(sourceRect.x < 0) {
			sourceRect.width += sourceRect.x;
			sourceRect.x = 0;
		}
		if(sourceRect.y < 0) {
			sourceRect.height += sourceRect.y;
			sourceRect.y = 0;
		}
		if(destPoint.x + sourceRect.width > this.width) {
			sourceRect.width = this.width - destPoint.x;
		}
		if(destPoint.y + sourceRect.height > this.height) {
			sourceRect.height = this.height - destPoint.y;
		}
		if(destPoint.x < 0) {
			sourceRect.width += destPoint.x;
			sourceRect.x -= destPoint.x;
			destPoint.x = 0;
		}
		if(destPoint.y < 0) {
			sourceRect.height += destPoint.y;
			sourceRect.y -= destPoint.y;
			destPoint.y = 0;
		}
		if(sourceImage == this && destPoint.x < sourceRect.get_right() && destPoint.y < sourceRect.get_bottom()) {
			sourceImage = this.clone();
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			if(alphaImage != null || sourceImage.type != (lime_graphics_ImageType().default).CANVAS) {
				(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
				(lime_graphics_utils_ImageCanvasUtil().default).convertToData(sourceImage);
				if(alphaImage != null) {
					(lime_graphics_utils_ImageCanvasUtil().default).convertToData(alphaImage);
				}
				(lime_graphics_utils_ImageDataUtil().default).copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha);
			} else {
				(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(this);
				(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(sourceImage);
				(lime_graphics_utils_ImageCanvasUtil().default).copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha);
			}
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(sourceImage);
			if(alphaImage != null) {
				(lime_graphics_utils_ImageCanvasUtil().default).convertToData(alphaImage);
			}
			(lime_graphics_utils_ImageDataUtil().default).copyPixels(this,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha);
			break;
		case 2:
			sourceRect.offset(sourceImage.offsetX,sourceImage.offsetY);
			destPoint.offset(this.offsetX,this.offsetY);
			if(alphaImage != null && alphaPoint != null) {
				alphaPoint.offset(alphaImage.offsetX,alphaImage.offsetY);
			}
			this.buffer.__srcBitmapData.copyPixels(sourceImage.buffer.__srcBitmapData,sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),alphaImage != null ? alphaImage.buffer.get_src() : null,alphaPoint != null ? alphaPoint.__toFlashPoint() : null,mergeAlpha);
			break;
		default:
		}
	},
	encode: function(format,quality) {
		if(quality == null) {
			quality = 90;
		}
		if(format == null) {
			format = "png";
		}
		switch(format) {
		case "bmp":
			return (lime_graphics_format_BMP().default).encode(this);
		case "jpeg":case "jpg":
			return (lime_graphics_format_JPEG().default).encode(this,quality);
		case "png":
			return (lime_graphics_format_PNG().default).encode(this);
		default:
		}
		return null;
	},
	fillRect: function(rect,color,format) {
		rect = this.__clipRect(rect);
		if(this.buffer == null || rect == null) {
			return;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).fillRect(this,rect,color,format);
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			if(this.buffer.data.length == 0) {
				return;
			}
			(lime_graphics_utils_ImageDataUtil().default).fillRect(this,rect,color,format);
			break;
		case 2:
			rect.offset(this.offsetX,this.offsetY);
			var argb;
			if(format == null) {
				var rgba = color;
				var this1 = 0;
				var argb1 = this1;
				argb1 = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255;
				argb = argb1;
			} else {
				switch(format) {
				case 1:
					argb = color;
					break;
				case 2:
					var bgra = color;
					var this2 = 0;
					var argb2 = this2;
					argb2 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
					argb = argb2;
					break;
				default:
					var rgba1 = color;
					var this3 = 0;
					var argb3 = this3;
					argb3 = (rgba1 & 255 & 255) << 24 | (rgba1 >>> 24 & 255 & 255) << 16 | (rgba1 >>> 16 & 255 & 255) << 8 | rgba1 >>> 8 & 255 & 255;
					argb = argb3;
				}
			}
			this.buffer.__srcBitmapData.fillRect(rect.__toFlashRectangle(),argb);
			break;
		default:
		}
	},
	floodFill: function(x,y,color,format) {
		if(this.buffer == null) {
			return;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).floodFill(this,x,y,color,format);
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageDataUtil().default).floodFill(this,x,y,color,format);
			break;
		case 2:
			var argb;
			if(format == null) {
				var rgba = color;
				var this1 = 0;
				var argb1 = this1;
				argb1 = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255;
				argb = argb1;
			} else {
				switch(format) {
				case 1:
					argb = color;
					break;
				case 2:
					var bgra = color;
					var this2 = 0;
					var argb2 = this2;
					argb2 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
					argb = argb2;
					break;
				default:
					var rgba1 = color;
					var this3 = 0;
					var argb3 = this3;
					argb3 = (rgba1 & 255 & 255) << 24 | (rgba1 >>> 24 & 255 & 255) << 16 | (rgba1 >>> 16 & 255 & 255) << 8 | rgba1 >>> 8 & 255 & 255;
					argb = argb3;
				}
			}
			this.buffer.__srcBitmapData.floodFill(x + this.offsetX,y + this.offsetY,argb);
			break;
		default:
		}
	},
	getColorBoundsRect: function(mask,color,findColor,format) {
		if(findColor == null) {
			findColor = true;
		}
		if(this.buffer == null) {
			return null;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			return (lime_graphics_utils_ImageDataUtil().default).getColorBoundsRect(this,mask,color,findColor,format);
		case 1:
			return (lime_graphics_utils_ImageDataUtil().default).getColorBoundsRect(this,mask,color,findColor,format);
		case 2:
			var rect = this.buffer.__srcBitmapData.getColorBoundsRect(mask,color,findColor);
			return new (lime_math_Rectangle().default)(rect.x,rect.y,rect.width,rect.height);
		default:
			return null;
		}
	},
	getPixel: function(x,y,format) {
		if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) {
			return 0;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			return (lime_graphics_utils_ImageCanvasUtil().default).getPixel(this,x,y,format);
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			return (lime_graphics_utils_ImageDataUtil().default).getPixel(this,x,y,format);
		case 2:
			var color = this.buffer.__srcBitmapData.getPixel(x + this.offsetX,y + this.offsetY);
			if(format == null) {
				var this1 = 0;
				var rgba = this1;
				rgba = (color >>> 16 & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >>> 24 & 255 & 255;
				var rgba1 = rgba;
				return rgba1;
			} else {
				switch(format) {
				case 1:
					return color;
				case 2:
					var this2 = 0;
					var bgra = this2;
					bgra = (color & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color >>> 16 & 255 & 255) << 8 | color >>> 24 & 255 & 255;
					var bgra1 = bgra;
					return bgra1;
				default:
					var this3 = 0;
					var rgba2 = this3;
					rgba2 = (color >>> 16 & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >>> 24 & 255 & 255;
					var rgba3 = rgba2;
					return rgba3;
				}
			}
			break;
		default:
			return 0;
		}
	},
	getPixel32: function(x,y,format) {
		if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) {
			return 0;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			return (lime_graphics_utils_ImageCanvasUtil().default).getPixel32(this,x,y,format);
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			return (lime_graphics_utils_ImageDataUtil().default).getPixel32(this,x,y,format);
		case 2:
			var color = this.buffer.__srcBitmapData.getPixel32(x + this.offsetX,y + this.offsetY);
			if(format == null) {
				var this1 = 0;
				var rgba = this1;
				rgba = (color >>> 16 & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >>> 24 & 255 & 255;
				var rgba1 = rgba;
				return rgba1;
			} else {
				switch(format) {
				case 1:
					return color;
				case 2:
					var this2 = 0;
					var bgra = this2;
					bgra = (color & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color >>> 16 & 255 & 255) << 8 | color >>> 24 & 255 & 255;
					var bgra1 = bgra;
					return bgra1;
				default:
					var this3 = 0;
					var rgba2 = this3;
					rgba2 = (color >>> 16 & 255 & 255) << 24 | (color >>> 8 & 255 & 255) << 16 | (color & 255 & 255) << 8 | color >>> 24 & 255 & 255;
					var rgba3 = rgba2;
					return rgba3;
				}
			}
			break;
		default:
			return 0;
		}
	},
	getPixels: function(rect,format) {
		if(this.buffer == null) {
			return null;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			return (lime_graphics_utils_ImageCanvasUtil().default).getPixels(this,rect,format);
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			return (lime_graphics_utils_ImageDataUtil().default).getPixels(this,rect,format);
		case 2:
			return null;
		default:
			return null;
		}
	},
	merge: function(sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
		if(this.buffer == null || sourceImage == null) {
			return;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(this);
			(lime_graphics_utils_ImageCanvasUtil().default).merge(this,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(sourceImage);
			(lime_graphics_utils_ImageDataUtil().default).merge(this,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
			break;
		case 2:
			sourceRect.offset(this.offsetX,this.offsetY);
			this.buffer.__srcBitmapData.merge(sourceImage.buffer.__srcBitmapData,sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier);
			break;
		default:
			return;
		}
	},
	resize: function(newWidth,newHeight) {
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).resize(this,newWidth,newHeight);
			break;
		case 1:
			(lime_graphics_utils_ImageDataUtil().default).resize(this,newWidth,newHeight);
			break;
		case 2:
			break;
		default:
		}
		this.buffer.width = newWidth;
		this.buffer.height = newHeight;
		this.offsetX = 0;
		this.offsetY = 0;
		this.width = newWidth;
		this.height = newHeight;
	},
	scroll: function(x,y) {
		if(this.buffer == null) {
			return;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).scroll(this,x,y);
			break;
		case 1:
			this.copyPixels(this,this.get_rect(),new (lime_math_Vector2().default)(x,y));
			break;
		case 2:
			this.buffer.__srcBitmapData.scroll(x + this.offsetX,y + this.offsetX);
			break;
		default:
		}
	},
	setPixel: function(x,y,color,format) {
		if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) {
			return;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).setPixel(this,x,y,color,format);
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageDataUtil().default).setPixel(this,x,y,color,format);
			break;
		case 2:
			var argb;
			if(format == null) {
				var rgba = color;
				var this1 = 0;
				var argb1 = this1;
				argb1 = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255;
				argb = argb1;
			} else {
				switch(format) {
				case 1:
					argb = color;
					break;
				case 2:
					var bgra = color;
					var this2 = 0;
					var argb2 = this2;
					argb2 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
					argb = argb2;
					break;
				default:
					var rgba1 = color;
					var this3 = 0;
					var argb3 = this3;
					argb3 = (rgba1 & 255 & 255) << 24 | (rgba1 >>> 24 & 255 & 255) << 16 | (rgba1 >>> 16 & 255 & 255) << 8 | rgba1 >>> 8 & 255 & 255;
					argb = argb3;
				}
			}
			this.buffer.__srcBitmapData.setPixel(x + this.offsetX,y + this.offsetX,argb);
			break;
		default:
		}
	},
	setPixel32: function(x,y,color,format) {
		if(this.buffer == null || x < 0 || y < 0 || x >= this.width || y >= this.height) {
			return;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).setPixel32(this,x,y,color,format);
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageDataUtil().default).setPixel32(this,x,y,color,format);
			break;
		case 2:
			var argb;
			if(format == null) {
				var rgba = color;
				var this1 = 0;
				var argb1 = this1;
				argb1 = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255;
				argb = argb1;
			} else {
				switch(format) {
				case 1:
					argb = color;
					break;
				case 2:
					var bgra = color;
					var this2 = 0;
					var argb2 = this2;
					argb2 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
					argb = argb2;
					break;
				default:
					var rgba1 = color;
					var this3 = 0;
					var argb3 = this3;
					argb3 = (rgba1 & 255 & 255) << 24 | (rgba1 >>> 24 & 255 & 255) << 16 | (rgba1 >>> 16 & 255 & 255) << 8 | rgba1 >>> 8 & 255 & 255;
					argb = argb3;
				}
			}
			this.buffer.__srcBitmapData.setPixel32(x + this.offsetX,y + this.offsetY,argb);
			break;
		default:
		}
	},
	setPixels: function(rect,bytePointer,format,endian) {
		rect = this.__clipRect(rect);
		if(this.buffer == null || rect == null) {
			return;
		}
		if(endian == null) {
			endian = (lime_system_Endian().default).BIG_ENDIAN;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			(lime_graphics_utils_ImageCanvasUtil().default).setPixels(this,rect,bytePointer,format,endian);
			break;
		case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageDataUtil().default).setPixels(this,rect,bytePointer,format,endian);
			break;
		case 2:
			break;
		default:
		}
	},
	threshold: function(sourceImage,sourceRect,destPoint,operation,threshold,color,mask,copySource,format) {
		if(copySource == null) {
			copySource = false;
		}
		if(mask == null) {
			mask = -1;
		}
		if(color == null) {
			color = 0;
		}
		if(this.buffer == null || sourceImage == null || sourceRect == null) {
			return 0;
		}
		var _g = this.type;
		switch((Type().default).enumIndex(_g)) {
		case 0:case 1:
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(sourceImage);
			return (lime_graphics_utils_ImageDataUtil().default).threshold(this,sourceImage,sourceRect,destPoint,operation,threshold,color,mask,copySource,format);
		case 2:
			var _color;
			if(format == null) {
				var rgba = color;
				var this1 = 0;
				var argb = this1;
				argb = (rgba & 255 & 255) << 24 | (rgba >>> 24 & 255 & 255) << 16 | (rgba >>> 16 & 255 & 255) << 8 | rgba >>> 8 & 255 & 255;
				_color = argb;
			} else {
				switch(format) {
				case 1:
					_color = color;
					break;
				case 2:
					var bgra = color;
					var this2 = 0;
					var argb1 = this2;
					argb1 = (bgra & 255 & 255) << 24 | (bgra >>> 8 & 255 & 255) << 16 | (bgra >>> 16 & 255 & 255) << 8 | bgra >>> 24 & 255 & 255;
					_color = argb1;
					break;
				default:
					var rgba1 = color;
					var this3 = 0;
					var argb2 = this3;
					argb2 = (rgba1 & 255 & 255) << 24 | (rgba1 >>> 24 & 255 & 255) << 16 | (rgba1 >>> 16 & 255 & 255) << 8 | rgba1 >>> 8 & 255 & 255;
					_color = argb2;
				}
			}
			var _mask;
			if(format == null) {
				var rgba2 = mask;
				var this4 = 0;
				var argb3 = this4;
				argb3 = (rgba2 & 255 & 255) << 24 | (rgba2 >>> 24 & 255 & 255) << 16 | (rgba2 >>> 16 & 255 & 255) << 8 | rgba2 >>> 8 & 255 & 255;
				_mask = argb3;
			} else {
				switch(format) {
				case 1:
					_mask = mask;
					break;
				case 2:
					var bgra1 = mask;
					var this5 = 0;
					var argb4 = this5;
					argb4 = (bgra1 & 255 & 255) << 24 | (bgra1 >>> 8 & 255 & 255) << 16 | (bgra1 >>> 16 & 255 & 255) << 8 | bgra1 >>> 24 & 255 & 255;
					_mask = argb4;
					break;
				default:
					var rgba3 = mask;
					var this6 = 0;
					var argb5 = this6;
					argb5 = (rgba3 & 255 & 255) << 24 | (rgba3 >>> 24 & 255 & 255) << 16 | (rgba3 >>> 16 & 255 & 255) << 8 | rgba3 >>> 8 & 255 & 255;
					_mask = argb5;
				}
			}
			sourceRect.offset(sourceImage.offsetX,sourceImage.offsetY);
			destPoint.offset(this.offsetX,this.offsetY);
			return this.buffer.__srcBitmapData.threshold(sourceImage.buffer.get_src(),sourceRect.__toFlashRectangle(),destPoint.__toFlashPoint(),operation,threshold,_color,_mask,copySource);
		default:
		}
		return 0;
	},
	__clipRect: function(r) {
		if(r == null) {
			return null;
		}
		if(r.x < 0) {
			r.width -= -r.x;
			r.x = 0;
			if(r.x + r.width <= 0) {
				return null;
			}
		}
		if(r.y < 0) {
			r.height -= -r.y;
			r.y = 0;
			if(r.y + r.height <= 0) {
				return null;
			}
		}
		if(r.x + r.width >= this.width) {
			r.width -= r.x + r.width - this.width;
			if(r.width <= 0) {
				return null;
			}
		}
		if(r.y + r.height >= this.height) {
			r.height -= r.y + r.height - this.height;
			if(r.height <= 0) {
				return null;
			}
		}
		return r;
	},
	__fromBase64: function(base64,type,onload) {
		var _gthis = this;
		var image = new Image();
		var image_onLoaded = function(event) {
			_gthis.buffer = new (lime_graphics_ImageBuffer().default)(null,image.width,image.height);
			_gthis.buffer.__srcImage = image;
			_gthis.offsetX = 0;
			_gthis.offsetY = 0;
			_gthis.width = _gthis.buffer.width;
			_gthis.height = _gthis.buffer.height;
			if(onload != null) {
				onload(_gthis);
			}
		};
		image.addEventListener("load",image_onLoaded,false);
		image.src = "data:" + type + ";base64," + base64;
	},
	__fromBytes: function(bytes,onload) {
		var type = "";
		if(Image.__isPNG(bytes)) {
			type = "image/png";
		} else if(Image.__isJPG(bytes)) {
			type = "image/jpeg";
		} else if(Image.__isGIF(bytes)) {
			type = "image/gif";
		} else {
			return;
		}
		this.__fromBase64(Image.__base64Encode(bytes),type,onload);
	},
	__fromFile: function(path,onload,onerror) {
		var _gthis = this;
		var image = new Image();
		if(!(lime__$backend_html5_HTML5HTTPRequest().default).__isSameOrigin(path)) {
			image.crossOrigin = "Anonymous";
		}
		image.onload = function(_) {
			_gthis.buffer = new (lime_graphics_ImageBuffer().default)(null,image.width,image.height);
			_gthis.buffer.__srcImage = image;
			_gthis.width = image.width;
			_gthis.height = image.height;
			if(onload != null) {
				onload(_gthis);
			}
		};
		image.onerror = function(_1) {
			if(onerror != null) {
				onerror();
			}
		};
		image.src = path;
		var image1 = image.complete;
	},
	__fromImageBuffer: function(buffer) {
		this.buffer = buffer;
		if(buffer != null) {
			if(this.width == -1) {
				this.width = buffer.width;
			}
			if(this.height == -1) {
				this.height = buffer.height;
			}
		}
	},
	get_data: function() {
		if(this.buffer.data == null && this.buffer.width > 0 && this.buffer.height > 0) {
			(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
		}
		return this.buffer.data;
	},
	set_data: function(value) {
		return this.buffer.data = value;
	},
	get_format: function() {
		return this.buffer.format;
	},
	set_format: function(value) {
		if(this.buffer.format != value) {
			var _g = this.type;
			if((Type().default).enumIndex(_g) == 1) {
				(lime_graphics_utils_ImageDataUtil().default).setFormat(this,value);
			}
		}
		return this.buffer.format = value;
	},
	get_powerOfTwo: function() {
		if(this.buffer.width != 0 && (this.buffer.width & ~this.buffer.width + 1) == this.buffer.width) {
			if(this.buffer.height != 0) {
				return (this.buffer.height & ~this.buffer.height + 1) == this.buffer.height;
			} else {
				return false;
			}
		} else {
			return false;
		}
	},
	set_powerOfTwo: function(value) {
		if(value != this.get_powerOfTwo()) {
			var newWidth = 1;
			var newHeight = 1;
			while(newWidth < this.buffer.width) newWidth <<= 1;
			while(newHeight < this.buffer.height) newHeight <<= 1;
			var _g = this.type;
			switch((Type().default).enumIndex(_g)) {
			case 0:
				break;
			case 1:
				(lime_graphics_utils_ImageDataUtil().default).resizeBuffer(this,newWidth,newHeight);
				break;
			case 2:
				break;
			default:
			}
		}
		return value;
	},
	get_premultiplied: function() {
		return this.buffer.premultiplied;
	},
	set_premultiplied: function(value) {
		if(value && !this.buffer.premultiplied) {
			var _g = this.type;
			switch((Type().default).enumIndex(_g)) {
			case 0:case 1:
				(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
				(lime_graphics_utils_ImageDataUtil().default).multiplyAlpha(this);
				break;
			default:
			}
		} else if(!value && this.buffer.premultiplied) {
			var _g1 = this.type;
			if((Type().default).enumIndex(_g1) == 1) {
				(lime_graphics_utils_ImageCanvasUtil().default).convertToData(this);
				(lime_graphics_utils_ImageDataUtil().default).unmultiplyAlpha(this);
			}
		}
		return value;
	},
	get_rect: function() {
		return new (lime_math_Rectangle().default)(0,0,this.width,this.height);
	},
	get_src: function() {
		if(this.buffer.__srcCanvas == null) {
			(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(this);
		}
		return this.buffer.get_src();
	},
	set_src: function(value) {
		return this.buffer.set_src(value);
	},
	get_transparent: function() {
		if(this.buffer == null) {
			return false;
		}
		return this.buffer.transparent;
	},
	set_transparent: function(value) {
		if(this.buffer == null) {
			return false;
		}
		return this.buffer.transparent = value;
	}
};
Image.prototype.__class__ = $hxClasses["lime.graphics.Image"] = Image;
// Init
{
	var p = Image.prototype;
	Object.defineProperties(p,{ "data" : { get : p.get_data, set : p.set_data}, "format" : { get : p.get_format, set : p.set_format}, "powerOfTwo" : { get : p.get_powerOfTwo, set : p.set_powerOfTwo}, "premultiplied" : { get : p.get_premultiplied, set : p.set_premultiplied}, "rect" : { get : p.get_rect}, "src" : { get : p.get_src, set : p.set_src}, "transparent" : { get : p.get_transparent, set : p.set_transparent}});
};
// Statics
Image.fromBase64 = function(base64,type) {
	if(base64 == null) {
		return null;
	}
	var image = new Image();
	image.__fromBase64(base64,type);
	return image;
}
Image.fromBitmapData = function(bitmapData) {
	if(bitmapData == null) {
		return null;
	}
	return bitmapData.image;
}
Image.fromBytes = function(bytes) {
	if(bytes == null) {
		return null;
	}
	var image = new Image();
	image.__fromBytes(bytes);
	return image;
}
Image.fromCanvas = function(canvas) {
	if(canvas == null) {
		return null;
	}
	var buffer = new (lime_graphics_ImageBuffer().default)(null,canvas.width,canvas.height);
	buffer.set_src(canvas);
	var image = new Image(buffer);
	image.type = (lime_graphics_ImageType().default).CANVAS;
	return image;
}
Image.fromFile = function(path) {
	if(path == null) {
		return null;
	}
	var image = new Image();
	image.__fromFile(path);
	return image;
}
Image.fromImageElement = function(image) {
	if(image == null) {
		return null;
	}
	var buffer = new (lime_graphics_ImageBuffer().default)(null,image.width,image.height);
	buffer.set_src(image);
	var _image = new Image(buffer);
	_image.type = (lime_graphics_ImageType().default).CANVAS;
	return _image;
}
Image.loadFromBase64 = function(base64,type) {
	if(base64 == null || type == null) {
		return (lime_app_Future().default).withValue(null);
	}
	return (lime__$backend_html5_HTML5HTTPRequest().default).loadImage("data:" + type + ";base64," + base64);
}
Image.loadFromBytes = function(bytes) {
	if(bytes == null) {
		return (lime_app_Future().default).withValue(null);
	}
	var type = "";
	if(Image.__isPNG(bytes)) {
		type = "image/png";
	} else if(Image.__isJPG(bytes)) {
		type = "image/jpeg";
	} else if(Image.__isGIF(bytes)) {
		type = "image/gif";
	} else if(Image.__isWebP(bytes)) {
		type = "image/webp";
	} else {
		return (lime_app_Future().default).withValue(null);
	}
	return Image.loadFromBase64(Image.__base64Encode(bytes),type);
}
Image.loadFromFile = function(path) {
	if(path == null) {
		return (lime_app_Future().default).withValue(null);
	}
	return (lime__$backend_html5_HTML5HTTPRequest().default).loadImage(path);
}
Image.__base64Encode = function(bytes) {
	var extension;
	var _g = bytes.get_length() % 3;
	switch(_g) {
	case 1:
		extension = "==";
		break;
	case 2:
		extension = "=";
		break;
	default:
		extension = "";
	}
	if(Image.__base64Encoder == null) {
		Image.__base64Encoder = new (haxe_crypto_BaseCode().default)((haxe_io_Bytes().default).ofString(Image.__base64Chars));
	}
	return Image.__base64Encoder.encodeBytes(bytes).toString() + extension;
}
Image.__isGIF = function(bytes) {
	if(bytes == null || bytes.get_length() < 6) {
		return false;
	}
	var header = bytes.getString(0,6);
	if(header != "GIF87a") {
		return header == "GIF89a";
	} else {
		return true;
	}
}
Image.__isJPG = function(bytes) {
	if(bytes == null || bytes.get_length() < 4) {
		return false;
	}
	if(bytes.get(0) == 255 && bytes.get(1) == 216 && bytes.get(bytes.get_length() - 2) == 255) {
		return bytes.get(bytes.get_length() - 1) == 217;
	} else {
		return false;
	}
}
Image.__isPNG = function(bytes) {
	if(bytes == null || bytes.get_length() < 8) {
		return false;
	}
	if(bytes.get(0) == 137 && bytes.get(1) == 80 && bytes.get(2) == 78 && bytes.get(3) == 71 && bytes.get(4) == 13 && bytes.get(5) == 10 && bytes.get(6) == 26) {
		return bytes.get(7) == 10;
	} else {
		return false;
	}
}
Image.__isWebP = function(bytes) {
	if(bytes == null || bytes.get_length() < 16) {
		return false;
	}
	if(bytes.getString(0,4) == "RIFF") {
		return bytes.getString(8,4) == "WEBP";
	} else {
		return false;
	}
}
Image.__base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
// Export
exports.default = Image;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 57 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.ds.ObjectMap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_IMap() {return __webpack_require__(107);}
function HxOverrides() {return __webpack_require__(7);}
function StringBuf() {return __webpack_require__(31);}
function Std() {return __webpack_require__(4);}
// Constructor
var ObjectMap = function() {
	this.h = { __keys__ : { }};
}
// Meta
ObjectMap.__name__ = ["haxe","ds","ObjectMap"];
ObjectMap.__interfaces__ = [(haxe_IMap().default)];
ObjectMap.prototype = {
	set: function(key,value) {
		var id = ObjectMap.getId(key) || ObjectMap.assignId(key);
		this.h[id] = value;
		this.h.__keys__[id] = key;
	},
	get: function(key) {
		return this.h[ObjectMap.getId(key)];
	},
	exists: function(key) {
		return this.h.__keys__[ObjectMap.getId(key)] != null;
	},
	remove: function(key) {
		var id = ObjectMap.getId(key);
		if(this.h.__keys__[id] == null) {
			return false;
		}
		delete(this.h[id]);
		delete(this.h.__keys__[id]);
		return true;
	},
	keys: function() {
		var a = [];
		for( var key in this.h.__keys__ ) {
		if(this.h.hasOwnProperty(key)) {
			a.push(this.h.__keys__[key]);
		}
		}
		return (HxOverrides().default).iter(a);
	},
	iterator: function() {
		return { ref : this.h, it : this.keys(), hasNext : function() {
			return this.it.hasNext();
		}, next : function() {
			var i = this.it.next();
			return this.ref[ObjectMap.getId(i)];
		}};
	},
	toString: function() {
		var s = new (StringBuf().default)();
		s.add("{");
		var it = this.keys();
		var i = it;
		while(i.hasNext()) {
			var i1 = i.next();
			s.add((Std().default).string(i1));
			s.add(" => ");
			s.add((Std().default).string(this.get(i1)));
			if(it.hasNext()) {
				s.add(", ");
			}
		}
		s.add("}");
		return s.toString();
	}
};
ObjectMap.prototype.__class__ = $hxClasses["haxe.ds.ObjectMap"] = ObjectMap;
// Init
// Statics
ObjectMap.assignId = function(obj) {
	return obj.__id__ = ++ObjectMap.count;
}
ObjectMap.getId = function(obj) {
	return obj.__id__;
}
ObjectMap.count = 0
// Export
exports.default = ObjectMap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 58 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasGraphics
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_renderer_DrawCommandBuffer() {return __webpack_require__(159);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
function openfl_geom_Point() {return __webpack_require__(29);}
function js_Browser() {return __webpack_require__(11);}
function openfl__$internal_renderer_DrawCommandReader() {return __webpack_require__(116);}
function Type() {return __webpack_require__(10);}
function openfl__$internal_renderer_DrawCommandType() {return __webpack_require__(117);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
function StringTools() {return __webpack_require__(12);}
function Std() {return __webpack_require__(4);}
function openfl__$internal_renderer_canvas_CanvasRenderer() {return __webpack_require__(68);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function openfl_display_BitmapData() {return __webpack_require__(44);}
// Constructor
var CanvasGraphics = function(){}
// Meta
CanvasGraphics.__name__ = ["openfl","_internal","renderer","canvas","CanvasGraphics"];
CanvasGraphics.prototype = {
	
};
CanvasGraphics.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasGraphics"] = CanvasGraphics;
// Init
if((js_Browser().default).get_supported()) {
	CanvasGraphics.hitTestCanvas = (js_Browser().default).get_document().createElement("canvas");
	CanvasGraphics.hitTestContext = CanvasGraphics.hitTestCanvas.getContext("2d");
};
// Statics
CanvasGraphics.closePath = function(strokeBefore) {
	if(strokeBefore == null) {
		strokeBefore = false;
	}
	if(CanvasGraphics.context.strokeStyle == null) {
		return;
	}
	if(!strokeBefore) {
		CanvasGraphics.context.closePath();
	}
	CanvasGraphics.context.stroke();
	if(strokeBefore) {
		CanvasGraphics.context.closePath();
	}
	CanvasGraphics.context.beginPath();
}
CanvasGraphics.createBitmapFill = function(bitmap,bitmapRepeat,smooth) {
	(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(bitmap.image);
	CanvasGraphics.setSmoothing(smooth);
	return CanvasGraphics.context.createPattern(bitmap.image.get_src(),bitmapRepeat ? "repeat" : "no-repeat");
}
CanvasGraphics.createGradientPattern = function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
	var gradientFill = null;
	var point = null;
	var point2 = null;
	var releaseMatrix = false;
	if(matrix == null) {
		matrix = (openfl_geom_Matrix().default).__pool.get();
		releaseMatrix = true;
	}
	switch(type) {
	case "linear":
		point = (openfl_geom_Point().default).__pool.get();
		point.setTo(-819.2,0);
		matrix.__transformPoint(point);
		point2 = (openfl_geom_Point().default).__pool.get();
		point2.setTo(819.2,0);
		matrix.__transformPoint(point2);
		gradientFill = CanvasGraphics.context.createLinearGradient(point.x,point.y,point2.x,point2.y);
		break;
	case "radial":
		point = (openfl_geom_Point().default).__pool.get();
		point.setTo(1638.4,0);
		matrix.__transformPoint(point);
		gradientFill = CanvasGraphics.context.createRadialGradient(matrix.tx,matrix.ty,0,matrix.tx,matrix.ty,Math.abs((point.x - matrix.tx) / 2));
		break;
	}
	var rgb;
	var alpha;
	var r;
	var g;
	var b;
	var ratio;
	var _g1 = 0;
	var _g = colors.length;
	while(_g1 < _g) {
		var i = _g1++;
		rgb = colors[i];
		alpha = alphas[i];
		r = (rgb & 16711680) >>> 16;
		g = (rgb & 65280) >>> 8;
		b = rgb & 255;
		ratio = ratios[i] / 255;
		if(ratio < 0) {
			ratio = 0;
		}
		if(ratio > 1) {
			ratio = 1;
		}
		gradientFill.addColorStop(ratio,"rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")");
	}
	if(point != null) {
		(openfl_geom_Point().default).__pool.release(point);
	}
	if(point2 != null) {
		(openfl_geom_Point().default).__pool.release(point2);
	}
	if(releaseMatrix) {
		(openfl_geom_Matrix().default).__pool.release(matrix);
	}
	return gradientFill;
}
CanvasGraphics.createTempPatternCanvas = function(bitmap,repeat,width,height) {
	var canvas = (js_Browser().default).get_document().createElement("canvas");
	var context = canvas.getContext("2d");
	canvas.width = width;
	canvas.height = height;
	var tmp = bitmap.image.get_src();
	context.fillStyle = context.createPattern(tmp,repeat ? "repeat" : "no-repeat");
	context.beginPath();
	context.moveTo(0,0);
	context.lineTo(0,height);
	context.lineTo(width,height);
	context.lineTo(width,0);
	context.lineTo(0,0);
	context.closePath();
	if(!CanvasGraphics.hitTesting) {
		context.fill(CanvasGraphics.windingRule);
	}
	return canvas;
}
CanvasGraphics.drawRoundRect = function(x,y,width,height,ellipseWidth,ellipseHeight) {
	if(ellipseHeight == null) {
		ellipseHeight = ellipseWidth;
	}
	ellipseWidth *= 0.5;
	ellipseHeight *= 0.5;
	if(ellipseWidth > width / 2) {
		ellipseWidth = width / 2;
	}
	if(ellipseHeight > height / 2) {
		ellipseHeight = height / 2;
	}
	var xe = x + width;
	var ye = y + height;
	var cx1 = -ellipseWidth + ellipseWidth * CanvasGraphics.SIN45;
	var cx2 = -ellipseWidth + ellipseWidth * CanvasGraphics.TAN22;
	var cy1 = -ellipseHeight + ellipseHeight * CanvasGraphics.SIN45;
	var cy2 = -ellipseHeight + ellipseHeight * CanvasGraphics.TAN22;
	CanvasGraphics.context.moveTo(xe,ye - ellipseHeight);
	CanvasGraphics.context.quadraticCurveTo(xe,ye + cy2,xe + cx1,ye + cy1);
	CanvasGraphics.context.quadraticCurveTo(xe + cx2,ye,xe - ellipseWidth,ye);
	CanvasGraphics.context.lineTo(x + ellipseWidth,ye);
	CanvasGraphics.context.quadraticCurveTo(x - cx2,ye,x - cx1,ye + cy1);
	CanvasGraphics.context.quadraticCurveTo(x,ye + cy2,x,ye - ellipseHeight);
	CanvasGraphics.context.lineTo(x,y + ellipseHeight);
	CanvasGraphics.context.quadraticCurveTo(x,y - cy2,x - cx1,y - cy1);
	CanvasGraphics.context.quadraticCurveTo(x - cx2,y,x + ellipseWidth,y);
	CanvasGraphics.context.lineTo(xe - ellipseWidth,y);
	CanvasGraphics.context.quadraticCurveTo(xe + cx2,y,xe + cx1,y - cy1);
	CanvasGraphics.context.quadraticCurveTo(xe,y - cy2,xe,y + ellipseHeight);
	CanvasGraphics.context.lineTo(xe,ye - ellipseHeight);
}
CanvasGraphics.endFill = function() {
	CanvasGraphics.context.beginPath();
	CanvasGraphics.playCommands(CanvasGraphics.fillCommands,false);
	CanvasGraphics.fillCommands.clear();
}
CanvasGraphics.endStroke = function() {
	CanvasGraphics.context.beginPath();
	CanvasGraphics.playCommands(CanvasGraphics.strokeCommands,true);
	CanvasGraphics.context.closePath();
	CanvasGraphics.strokeCommands.clear();
}
CanvasGraphics.hitTest = function(graphics,x,y) {
	CanvasGraphics.bounds = graphics.__bounds;
	CanvasGraphics.graphics = graphics;
	if(graphics.__commands.get_length() == 0 || CanvasGraphics.bounds == null || CanvasGraphics.bounds.width <= 0 || CanvasGraphics.bounds.height <= 0) {
		return false;
	} else {
		CanvasGraphics.hitTesting = true;
		var transform = graphics.__renderTransform;
		var px = transform.__transformX(x,y);
		var py = transform.__transformY(x,y);
		x = px;
		y = py;
		x -= transform.__transformX(CanvasGraphics.bounds.x,CanvasGraphics.bounds.y);
		y -= transform.__transformY(CanvasGraphics.bounds.x,CanvasGraphics.bounds.y);
		var cacheCanvas = graphics.__canvas;
		var cacheContext = graphics.__context;
		graphics.__canvas = CanvasGraphics.hitTestCanvas;
		graphics.__context = CanvasGraphics.hitTestContext;
		CanvasGraphics.context = graphics.__context;
		CanvasGraphics.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
		CanvasGraphics.fillCommands.clear();
		CanvasGraphics.strokeCommands.clear();
		CanvasGraphics.hasFill = false;
		CanvasGraphics.hasStroke = false;
		CanvasGraphics.bitmapFill = null;
		CanvasGraphics.bitmapRepeat = false;
		CanvasGraphics.windingRule = "evenodd";
		var data = new (openfl__$internal_renderer_DrawCommandReader().default)(graphics.__commands);
		var _g = 0;
		var _g1 = graphics.__commands.types;
		while(_g < _g1.length) {
			var type = _g1[_g];
			++_g;
			switch((Type().default).enumIndex(type)) {
			case 0:case 1:case 2:
				CanvasGraphics.endFill();
				if(CanvasGraphics.hasFill && CanvasGraphics.context.isPointInPath(x,y,CanvasGraphics.windingRule)) {
					data.destroy();
					graphics.__canvas = cacheCanvas;
					graphics.__context = cacheContext;
					return true;
				}
				CanvasGraphics.endStroke();
				if(CanvasGraphics.hasStroke && CanvasGraphics.context.isPointInStroke(x,y)) {
					data.destroy();
					graphics.__canvas = cacheCanvas;
					graphics.__context = cacheContext;
					return true;
				}
				if(type == (openfl__$internal_renderer_DrawCommandType().default).BEGIN_BITMAP_FILL) {
					var c = data.readBeginBitmapFill();
					CanvasGraphics.fillCommands.beginBitmapFill(c.obj(0),c.obj(1),c.bool(0),c.bool(1));
					CanvasGraphics.strokeCommands.beginBitmapFill(c.obj(0),c.obj(1),c.bool(0),c.bool(1));
				} else if(type == (openfl__$internal_renderer_DrawCommandType().default).BEGIN_GRADIENT_FILL) {
					var c1 = data.readBeginGradientFill();
					CanvasGraphics.fillCommands.beginGradientFill(c1.obj(0),c1.iArr(0),c1.fArr(0),c1.iArr(1),c1.obj(1),c1.obj(2),c1.obj(3),c1["float"](0));
					CanvasGraphics.strokeCommands.beginGradientFill(c1.obj(0),c1.iArr(0),c1.fArr(0),c1.iArr(1),c1.obj(1),c1.obj(2),c1.obj(3),c1["float"](0));
				} else {
					var c2 = data.readBeginFill();
					CanvasGraphics.fillCommands.beginFill(c2["int"](0),1);
					CanvasGraphics.strokeCommands.beginFill(c2["int"](0),1);
				}
				break;
			case 3:
				var c3 = data.readCubicCurveTo();
				CanvasGraphics.fillCommands.cubicCurveTo(c3["float"](0),c3["float"](1),c3["float"](2),c3["float"](3),c3["float"](4),c3["float"](5));
				CanvasGraphics.strokeCommands.cubicCurveTo(c3["float"](0),c3["float"](1),c3["float"](2),c3["float"](3),c3["float"](4),c3["float"](5));
				break;
			case 4:
				var c4 = data.readCurveTo();
				CanvasGraphics.fillCommands.curveTo(c4["float"](0),c4["float"](1),c4["float"](2),c4["float"](3));
				CanvasGraphics.strokeCommands.curveTo(c4["float"](0),c4["float"](1),c4["float"](2),c4["float"](3));
				break;
			case 5:
				var c5 = data.readDrawCircle();
				CanvasGraphics.fillCommands.drawCircle(c5["float"](0),c5["float"](1),c5["float"](2));
				CanvasGraphics.strokeCommands.drawCircle(c5["float"](0),c5["float"](1),c5["float"](2));
				break;
			case 6:
				var c6 = data.readDrawEllipse();
				CanvasGraphics.fillCommands.drawEllipse(c6["float"](0),c6["float"](1),c6["float"](2),c6["float"](3));
				CanvasGraphics.strokeCommands.drawEllipse(c6["float"](0),c6["float"](1),c6["float"](2),c6["float"](3));
				break;
			case 7:
				var c7 = data.readDrawRect();
				CanvasGraphics.fillCommands.drawRect(c7["float"](0),c7["float"](1),c7["float"](2),c7["float"](3));
				CanvasGraphics.strokeCommands.drawRect(c7["float"](0),c7["float"](1),c7["float"](2),c7["float"](3));
				break;
			case 8:
				var c8 = data.readDrawRoundRect();
				CanvasGraphics.fillCommands.drawRoundRect(c8["float"](0),c8["float"](1),c8["float"](2),c8["float"](3),c8["float"](4),c8.obj(0));
				CanvasGraphics.strokeCommands.drawRoundRect(c8["float"](0),c8["float"](1),c8["float"](2),c8["float"](3),c8["float"](4),c8.obj(0));
				break;
			case 11:
				data.readEndFill();
				CanvasGraphics.endFill();
				if(CanvasGraphics.hasFill && CanvasGraphics.context.isPointInPath(x,y,CanvasGraphics.windingRule)) {
					data.destroy();
					graphics.__canvas = cacheCanvas;
					graphics.__context = cacheContext;
					return true;
				}
				CanvasGraphics.endStroke();
				if(CanvasGraphics.hasStroke && CanvasGraphics.context.isPointInStroke(x,y)) {
					data.destroy();
					graphics.__canvas = cacheCanvas;
					graphics.__context = cacheContext;
					return true;
				}
				CanvasGraphics.hasFill = false;
				CanvasGraphics.bitmapFill = null;
				break;
			case 12:
				var c9 = data.readLineBitmapStyle();
				CanvasGraphics.strokeCommands.lineBitmapStyle(c9.obj(0),c9.obj(1),c9.bool(0),c9.bool(1));
				break;
			case 13:
				var c10 = data.readLineGradientStyle();
				CanvasGraphics.strokeCommands.lineGradientStyle(c10.obj(0),c10.iArr(0),c10.fArr(0),c10.iArr(1),c10.obj(1),c10.obj(2),c10.obj(3),c10["float"](0));
				break;
			case 14:
				var c11 = data.readLineStyle();
				CanvasGraphics.strokeCommands.lineStyle(c11.obj(0),c11["int"](0),1,c11.bool(0),c11.obj(1),c11.obj(2),c11.obj(3),c11["float"](1));
				break;
			case 15:
				var c12 = data.readLineTo();
				CanvasGraphics.fillCommands.lineTo(c12["float"](0),c12["float"](1));
				CanvasGraphics.strokeCommands.lineTo(c12["float"](0),c12["float"](1));
				break;
			case 16:
				var c13 = data.readMoveTo();
				CanvasGraphics.fillCommands.moveTo(c13["float"](0),c13["float"](1));
				CanvasGraphics.strokeCommands.moveTo(c13["float"](0),c13["float"](1));
				break;
			case 18:
				CanvasGraphics.windingRule = "evenodd";
				break;
			case 19:
				CanvasGraphics.windingRule = "nonzero";
				break;
			default:
				data.skip(type);
			}
		}
		var hitTest = false;
		if(CanvasGraphics.fillCommands.get_length() > 0) {
			CanvasGraphics.endFill();
		}
		if(CanvasGraphics.hasFill && CanvasGraphics.context.isPointInPath(x,y,CanvasGraphics.windingRule)) {
			hitTest = true;
		}
		if(CanvasGraphics.strokeCommands.get_length() > 0) {
			CanvasGraphics.endStroke();
		}
		if(CanvasGraphics.hasStroke && CanvasGraphics.context.isPointInStroke(x,y)) {
			hitTest = true;
		}
		data.destroy();
		graphics.__canvas = cacheCanvas;
		graphics.__context = cacheContext;
		return hitTest;
	}
}
CanvasGraphics.isCCW = function(x1,y1,x2,y2,x3,y3) {
	return (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1) < 0;
}
CanvasGraphics.normalizeUVT = function(uvt,skipT) {
	if(skipT == null) {
		skipT = false;
	}
	var max = -Infinity;
	var tmp = -Infinity;
	var len = uvt.get_length();
	var _g1 = 1;
	var _g = len + 1;
	while(_g1 < _g) {
		var t = _g1++;
		if(skipT && t % 3 == 0) {
			continue;
		}
		tmp = uvt.get(t - 1);
		if(max < tmp) {
			max = tmp;
		}
	}
	if(!skipT) {
		return { max : max, uvt : uvt};
	}
	var result = (openfl__$Vector_Vector_$Impl_$().default)._new();
	var _g11 = 1;
	var _g2 = len + 1;
	while(_g11 < _g2) {
		var t1 = _g11++;
		if(skipT && t1 % 3 == 0) {
			continue;
		}
		result.push(uvt.get(t1 - 1));
	}
	return { max : max, uvt : result};
}
CanvasGraphics.playCommands = function(commands,stroke) {
	if(stroke == null) {
		stroke = false;
	}
	CanvasGraphics.bounds = CanvasGraphics.graphics.__bounds;
	var offsetX = CanvasGraphics.bounds.x;
	var offsetY = CanvasGraphics.bounds.y;
	var positionX = 0.0;
	var positionY = 0.0;
	var closeGap = false;
	var startX = 0.0;
	var startY = 0.0;
	var setStart = false;
	CanvasGraphics.windingRule = "evenodd";
	CanvasGraphics.setSmoothing(true);
	var data = new (openfl__$internal_renderer_DrawCommandReader().default)(commands);
	var x;
	var y;
	var width;
	var height;
	var kappa = .5522848;
	var ox;
	var oy;
	var xe;
	var ye;
	var xm;
	var ym;
	var r;
	var g;
	var b;
	var optimizationUsed;
	var canOptimizeMatrix;
	var st;
	var sr;
	var sb;
	var sl;
	var stl = null;
	var sbr = null;
	var _g = 0;
	var _g1 = commands.types;
	try {
		while(_g < _g1.length) {
			var type = _g1[_g];
			++_g;
			switch((Type().default).enumIndex(type)) {
			case 0:
				var c = data.readBeginBitmapFill();
				CanvasGraphics.bitmapFill = c.obj(0);
				var tmp = c.obj(0);
				var tmp1 = c.bool(1);
				CanvasGraphics.context.fillStyle = CanvasGraphics.createBitmapFill(tmp,true,tmp1);
				CanvasGraphics.hasFill = true;
				if(c.obj(1) != null) {
					CanvasGraphics.pendingMatrix = c.obj(1);
					CanvasGraphics.inversePendingMatrix = c.obj(1).clone();
					CanvasGraphics.inversePendingMatrix.invert();
				} else {
					CanvasGraphics.pendingMatrix = null;
					CanvasGraphics.inversePendingMatrix = null;
				}
				break;
			case 1:
				var c1 = data.readBeginFill();
				if(c1["float"](0) < 0.005) {
					CanvasGraphics.hasFill = false;
				} else {
					if(c1["float"](0) == 1) {
						var tmp2 = (StringTools().default).hex(c1["int"](0) & 16777215,6);
						CanvasGraphics.context.fillStyle = "#" + tmp2;
					} else {
						r = (c1["int"](0) & 16711680) >>> 16;
						g = (c1["int"](0) & 65280) >>> 8;
						b = c1["int"](0) & 255;
						var tmp3 = "rgba(" + r + ", " + g + ", " + b + ", " + c1["float"](0);
						CanvasGraphics.context.fillStyle = tmp3 + ")";
					}
					CanvasGraphics.bitmapFill = null;
					CanvasGraphics.setSmoothing(true);
					CanvasGraphics.hasFill = true;
				}
				break;
			case 2:
				var c2 = data.readBeginGradientFill();
				var tmp4 = c2.obj(0);
				var tmp5 = c2.iArr(0);
				var tmp6 = c2.fArr(0);
				var tmp7 = c2.iArr(1);
				var tmp8 = c2.obj(1);
				var tmp9 = c2.obj(2);
				var tmp10 = c2.obj(3);
				CanvasGraphics.context.fillStyle = CanvasGraphics.createGradientPattern(tmp4,tmp5,tmp6,tmp7,tmp8,tmp9,tmp10,c2["float"](0));
				CanvasGraphics.bitmapFill = null;
				CanvasGraphics.setSmoothing(true);
				CanvasGraphics.hasFill = true;
				break;
			case 3:
				var c3 = data.readCubicCurveTo();
				CanvasGraphics.context.bezierCurveTo(c3["float"](0) - offsetX,c3["float"](1) - offsetY,c3["float"](2) - offsetX,c3["float"](3) - offsetY,c3["float"](4) - offsetX,c3["float"](5) - offsetY);
				break;
			case 4:
				var c4 = data.readCurveTo();
				CanvasGraphics.context.quadraticCurveTo(c4["float"](0) - offsetX,c4["float"](1) - offsetY,c4["float"](2) - offsetX,c4["float"](3) - offsetY);
				break;
			case 5:
				var c5 = data.readDrawCircle();
				CanvasGraphics.context.moveTo(c5["float"](0) - offsetX + c5["float"](2),c5["float"](1) - offsetY);
				CanvasGraphics.context.arc(c5["float"](0) - offsetX,c5["float"](1) - offsetY,c5["float"](2),0,Math.PI * 2,true);
				break;
			case 6:
				var c6 = data.readDrawEllipse();
				x = c6["float"](0);
				y = c6["float"](1);
				width = c6["float"](2);
				height = c6["float"](3);
				x -= offsetX;
				y -= offsetY;
				ox = width / 2 * kappa;
				oy = height / 2 * kappa;
				xe = x + width;
				ye = y + height;
				xm = x + width / 2;
				ym = y + height / 2;
				CanvasGraphics.context.moveTo(x,ym);
				CanvasGraphics.context.bezierCurveTo(x,ym - oy,xm - ox,y,xm,y);
				CanvasGraphics.context.bezierCurveTo(xm + ox,y,xe,ym - oy,xe,ym);
				CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye);
				CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x,ym + oy,x,ym);
				break;
			case 7:
				var c7 = data.readDrawRect();
				optimizationUsed = false;
				if(CanvasGraphics.bitmapFill != null && !CanvasGraphics.hitTesting) {
					st = 0;
					sr = 0;
					sb = 0;
					sl = 0;
					canOptimizeMatrix = true;
					if(CanvasGraphics.pendingMatrix != null) {
						if(CanvasGraphics.pendingMatrix.b != 0 || CanvasGraphics.pendingMatrix.c != 0) {
							canOptimizeMatrix = false;
						} else {
							if(stl == null) {
								stl = (openfl_geom_Point().default).__pool.get();
							}
							if(sbr == null) {
								sbr = (openfl_geom_Point().default).__pool.get();
							}
							stl.setTo(c7["float"](0),c7["float"](1));
							CanvasGraphics.inversePendingMatrix.__transformPoint(stl);
							sbr.setTo(c7["float"](0) + c7["float"](2),c7["float"](1) + c7["float"](3));
							CanvasGraphics.inversePendingMatrix.__transformPoint(sbr);
							st = stl.y;
							sl = stl.x;
							sb = sbr.y;
							sr = sbr.x;
						}
					} else {
						st = c7["float"](1);
						sl = c7["float"](0);
						sb = c7["float"](1) + c7["float"](3);
						sr = c7["float"](0) + c7["float"](2);
					}
					if(canOptimizeMatrix && st >= 0 && sl >= 0 && sr <= CanvasGraphics.bitmapFill.width && sb <= CanvasGraphics.bitmapFill.height) {
						optimizationUsed = true;
						if(!CanvasGraphics.hitTesting) {
							CanvasGraphics.context.drawImage(CanvasGraphics.bitmapFill.image.get_src(),sl,st,sr - sl,sb - st,c7["float"](0) - offsetX,c7["float"](1) - offsetY,c7["float"](2),c7["float"](3));
						}
					}
				}
				if(!optimizationUsed) {
					CanvasGraphics.context.rect(c7["float"](0) - offsetX,c7["float"](1) - offsetY,c7["float"](2),c7["float"](3));
				}
				break;
			case 8:
				var c8 = data.readDrawRoundRect();
				CanvasGraphics.drawRoundRect(c8["float"](0) - offsetX,c8["float"](1) - offsetY,c8["float"](2),c8["float"](3),c8["float"](4),c8.obj(0));
				break;
			case 10:
				var c9 = data.readDrawTriangles();
				var v = c9.obj(0);
				var ind = c9.obj(1);
				var uvt = c9.obj(2);
				var pattern = null;
				var colorFill = CanvasGraphics.bitmapFill == null;
				if(colorFill && uvt != null) {
					throw "__break__";
				}
				if(!colorFill) {
					if(uvt == null) {
						uvt = (openfl__$Vector_Vector_$Impl_$().default)._new();
						var _g3 = 0;
						var _g2 = (Std().default)["int"](v.get_length() / 2);
						while(_g3 < _g2) {
							var i = _g3++;
							uvt.push(v.get(i * 2) - offsetX / CanvasGraphics.bitmapFill.width);
							uvt.push(v.get(i * 2 + 1) - offsetY / CanvasGraphics.bitmapFill.height);
						}
					}
					var skipT = uvt.get_length() != v.get_length();
					var normalizedUVT = CanvasGraphics.normalizeUVT(uvt,skipT);
					var maxUVT = normalizedUVT.max;
					uvt = normalizedUVT.uvt;
					if(maxUVT > 1) {
						pattern = CanvasGraphics.createTempPatternCanvas(CanvasGraphics.bitmapFill,CanvasGraphics.bitmapRepeat,(Std().default)["int"](CanvasGraphics.bounds.width),(Std().default)["int"](CanvasGraphics.bounds.height));
					} else {
						pattern = CanvasGraphics.createTempPatternCanvas(CanvasGraphics.bitmapFill,CanvasGraphics.bitmapRepeat,CanvasGraphics.bitmapFill.width,CanvasGraphics.bitmapFill.height);
					}
				}
				var i1 = 0;
				var l = ind.get_length();
				var a_;
				var b_;
				var c_;
				var iax;
				var iay;
				var ibx;
				var iby;
				var icx;
				var icy;
				var x1;
				var y1;
				var x2;
				var y2;
				var x3;
				var y3;
				var uvx1;
				var uvy1;
				var uvx2;
				var uvy2;
				var uvx3;
				var uvy3;
				var denom;
				var t1;
				var t2;
				var t3;
				var t4;
				var dx;
				var dy;
				while(i1 < l) {
					a_ = i1;
					b_ = i1 + 1;
					c_ = i1 + 2;
					iax = ind.get(a_) * 2;
					iay = ind.get(a_) * 2 + 1;
					ibx = ind.get(b_) * 2;
					iby = ind.get(b_) * 2 + 1;
					icx = ind.get(c_) * 2;
					icy = ind.get(c_) * 2 + 1;
					x1 = v.get(iax) - offsetX;
					y1 = v.get(iay) - offsetY;
					x2 = v.get(ibx) - offsetX;
					y2 = v.get(iby) - offsetY;
					x3 = v.get(icx) - offsetX;
					y3 = v.get(icy) - offsetY;
					var _g21 = c9.obj(3);
					switch(_g21) {
					case "negative":
						if(CanvasGraphics.isCCW(x1,y1,x2,y2,x3,y3)) {
							i1 += 3;
							continue;
						}
						break;
					case "positive":
						if(!CanvasGraphics.isCCW(x1,y1,x2,y2,x3,y3)) {
							i1 += 3;
							continue;
						}
						break;
					default:
					}
					if(colorFill) {
						CanvasGraphics.context.beginPath();
						CanvasGraphics.context.moveTo(x1,y1);
						CanvasGraphics.context.lineTo(x2,y2);
						CanvasGraphics.context.lineTo(x3,y3);
						CanvasGraphics.context.closePath();
						if(!CanvasGraphics.hitTesting) {
							CanvasGraphics.context.fill(CanvasGraphics.windingRule);
						}
						i1 += 3;
						continue;
					}
					CanvasGraphics.context.save();
					CanvasGraphics.context.beginPath();
					CanvasGraphics.context.moveTo(x1,y1);
					CanvasGraphics.context.lineTo(x2,y2);
					CanvasGraphics.context.lineTo(x3,y3);
					CanvasGraphics.context.closePath();
					CanvasGraphics.context.clip();
					uvx1 = uvt.get(iax) * pattern.width;
					uvx2 = uvt.get(ibx) * pattern.width;
					uvx3 = uvt.get(icx) * pattern.width;
					uvy1 = uvt.get(iay) * pattern.height;
					uvy2 = uvt.get(iby) * pattern.height;
					uvy3 = uvt.get(icy) * pattern.height;
					denom = uvx1 * (uvy3 - uvy2) - uvx2 * uvy3 + uvx3 * uvy2 + (uvx2 - uvx3) * uvy1;
					if(denom == 0) {
						i1 += 3;
						continue;
					}
					t1 = -(uvy1 * (x3 - x2) - uvy2 * x3 + uvy3 * x2 + (uvy2 - uvy3) * x1) / denom;
					t2 = (uvy2 * y3 + uvy1 * (y2 - y3) - uvy3 * y2 + (uvy3 - uvy2) * y1) / denom;
					t3 = (uvx1 * (x3 - x2) - uvx2 * x3 + uvx3 * x2 + (uvx2 - uvx3) * x1) / denom;
					t4 = -(uvx2 * y3 + uvx1 * (y2 - y3) - uvx3 * y2 + (uvx3 - uvx2) * y1) / denom;
					dx = (uvx1 * (uvy3 * x2 - uvy2 * x3) + uvy1 * (uvx2 * x3 - uvx3 * x2) + (uvx3 * uvy2 - uvx2 * uvy3) * x1) / denom;
					dy = (uvx1 * (uvy3 * y2 - uvy2 * y3) + uvy1 * (uvx2 * y3 - uvx3 * y2) + (uvx3 * uvy2 - uvx2 * uvy3) * y1) / denom;
					CanvasGraphics.context.transform(t1,t2,t3,t4,dx,dy);
					CanvasGraphics.context.drawImage(pattern,0,0);
					CanvasGraphics.context.restore();
					i1 += 3;
				}
				break;
			case 12:
				var c10 = data.readLineBitmapStyle();
				if(stroke && CanvasGraphics.hasStroke) {
					CanvasGraphics.closePath();
				}
				CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY);
				var tmp11 = c10.obj(0);
				var tmp12 = c10.bool(0);
				CanvasGraphics.context.strokeStyle = CanvasGraphics.createBitmapFill(tmp11,tmp12,c10.bool(1));
				CanvasGraphics.hasStroke = true;
				break;
			case 13:
				var c11 = data.readLineGradientStyle();
				if(stroke && CanvasGraphics.hasStroke) {
					CanvasGraphics.closePath();
				}
				CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY);
				var tmp13 = c11.obj(0);
				var tmp14 = c11.iArr(0);
				var tmp15 = c11.fArr(0);
				var tmp16 = c11.iArr(1);
				var tmp17 = c11.obj(1);
				var tmp18 = c11.obj(2);
				var tmp19 = c11.obj(3);
				CanvasGraphics.context.strokeStyle = CanvasGraphics.createGradientPattern(tmp13,tmp14,tmp15,tmp16,tmp17,tmp18,tmp19,c11["float"](0));
				CanvasGraphics.setSmoothing(true);
				CanvasGraphics.hasStroke = true;
				break;
			case 14:
				var c12 = data.readLineStyle();
				if(stroke && CanvasGraphics.hasStroke) {
					CanvasGraphics.closePath(true);
				}
				CanvasGraphics.context.moveTo(positionX - offsetX,positionY - offsetY);
				if(c12.obj(0) == null) {
					CanvasGraphics.hasStroke = false;
				} else {
					var tmp20 = c12.obj(0) > 0 ? c12.obj(0) : 1;
					CanvasGraphics.context.lineWidth = tmp20;
					var tmp21 = c12.obj(3) == null ? "round" : (Std().default).string(c12.obj(3)).toLowerCase();
					CanvasGraphics.context.lineJoin = tmp21;
					var tmp22;
					if(c12.obj(2) == null) {
						tmp22 = "round";
					} else {
						var _g22 = c12.obj(2);
						if(_g22 == "none") {
							tmp22 = "butt";
						} else {
							tmp22 = (Std().default).string(c12.obj(2)).toLowerCase();
						}
					}
					CanvasGraphics.context.lineCap = tmp22;
					CanvasGraphics.context.miterLimit = c12["float"](1);
					if(c12["float"](0) == 1) {
						var tmp23 = (StringTools().default).hex(c12["int"](0) & 16777215,6);
						CanvasGraphics.context.strokeStyle = "#" + tmp23;
					} else {
						r = (c12["int"](0) & 16711680) >>> 16;
						g = (c12["int"](0) & 65280) >>> 8;
						b = c12["int"](0) & 255;
						var tmp24 = "rgba(" + r + ", " + g + ", " + b + ", " + c12["float"](0);
						CanvasGraphics.context.strokeStyle = tmp24 + ")";
					}
					CanvasGraphics.setSmoothing(true);
					CanvasGraphics.hasStroke = true;
				}
				break;
			case 15:
				var c13 = data.readLineTo();
				CanvasGraphics.context.lineTo(c13["float"](0) - offsetX,c13["float"](1) - offsetY);
				positionX = c13["float"](0);
				positionY = c13["float"](1);
				if(positionX == startX && positionY == startY) {
					closeGap = true;
				}
				break;
			case 16:
				var c14 = data.readMoveTo();
				CanvasGraphics.context.moveTo(c14["float"](0) - offsetX,c14["float"](1) - offsetY);
				positionX = c14["float"](0);
				positionY = c14["float"](1);
				if(setStart) {
					closeGap = true;
				}
				startX = c14["float"](0);
				startY = c14["float"](1);
				setStart = true;
				break;
			case 18:
				CanvasGraphics.windingRule = "evenodd";
				break;
			case 19:
				CanvasGraphics.windingRule = "nonzero";
				break;
			default:
				data.skip(type);
			}
		}
	} catch( e ) { if( e != "__break__" ) throw e; }
	if(stl != null) {
		(openfl_geom_Point().default).__pool.release(stl);
	}
	if(sbr != null) {
		(openfl_geom_Point().default).__pool.release(sbr);
	}
	data.destroy();
	if(stroke && CanvasGraphics.hasStroke) {
		if(CanvasGraphics.hasFill && closeGap) {
			CanvasGraphics.context.lineTo(startX - offsetX,startY - offsetY);
			CanvasGraphics.closePath(false);
		} else if(closeGap && positionX == startX && positionY == startY) {
			CanvasGraphics.closePath(false);
		}
		if(!CanvasGraphics.hitTesting) {
			CanvasGraphics.context.stroke();
		}
	}
	if(!stroke) {
		if(CanvasGraphics.hasFill || CanvasGraphics.bitmapFill != null) {
			CanvasGraphics.context.translate(-CanvasGraphics.bounds.x,-CanvasGraphics.bounds.y);
			if(CanvasGraphics.pendingMatrix != null) {
				CanvasGraphics.context.transform(CanvasGraphics.pendingMatrix.a,CanvasGraphics.pendingMatrix.b,CanvasGraphics.pendingMatrix.c,CanvasGraphics.pendingMatrix.d,CanvasGraphics.pendingMatrix.tx,CanvasGraphics.pendingMatrix.ty);
				if(!CanvasGraphics.hitTesting) {
					CanvasGraphics.context.fill(CanvasGraphics.windingRule);
				}
				CanvasGraphics.context.transform(CanvasGraphics.inversePendingMatrix.a,CanvasGraphics.inversePendingMatrix.b,CanvasGraphics.inversePendingMatrix.c,CanvasGraphics.inversePendingMatrix.d,CanvasGraphics.inversePendingMatrix.tx,CanvasGraphics.inversePendingMatrix.ty);
			} else if(!CanvasGraphics.hitTesting) {
				CanvasGraphics.context.fill(CanvasGraphics.windingRule);
			}
			CanvasGraphics.context.translate(CanvasGraphics.bounds.x,CanvasGraphics.bounds.y);
			CanvasGraphics.context.closePath();
		}
	}
}
CanvasGraphics.render = function(graphics,renderSession,parentTransform) {
	graphics.__update();
	if(graphics.__dirty) {
		CanvasGraphics.hitTesting = false;
		CanvasGraphics.graphics = graphics;
		CanvasGraphics.allowSmoothing = renderSession.allowSmoothing;
		CanvasGraphics.bounds = graphics.__bounds;
		var width = graphics.__width;
		var height = graphics.__height;
		if(!graphics.__visible || graphics.__commands.get_length() == 0 || CanvasGraphics.bounds == null || width < 1 || height < 1) {
			graphics.__canvas = null;
			graphics.__context = null;
			graphics.__bitmap = null;
		} else {
			if(graphics.__canvas == null) {
				graphics.__canvas = (js_Browser().default).get_document().createElement("canvas");
				graphics.__context = graphics.__canvas.getContext("2d");
			}
			CanvasGraphics.context = graphics.__context;
			var transform = graphics.__renderTransform;
			var canvas = graphics.__canvas;
			var scale = (openfl__$internal_renderer_canvas_CanvasRenderer().default).scale;
			var scaledWidth = (Std().default)["int"](width * scale);
			var scaledHeight = (Std().default)["int"](height * scale);
			if(renderSession.renderType == (lime_graphics_RendererType().default).DOM) {
				if(canvas.width == scaledWidth && canvas.height == scaledHeight) {
					CanvasGraphics.context.clearRect(0,0,scaledWidth,scaledHeight);
				} else {
					canvas.width = scaledWidth;
					canvas.height = scaledHeight;
					canvas.style.width = width + "px";
					canvas.style.height = height + "px";
				}
				var transform1 = graphics.__renderTransform;
				CanvasGraphics.context.setTransform(transform1.a * scale,transform1.b * scale,transform1.c * scale,transform1.d * scale,transform1.tx * scale,transform1.ty * scale);
			} else {
				if(canvas.width == scaledWidth && canvas.height == scaledHeight) {
					CanvasGraphics.context.closePath();
					CanvasGraphics.context.resetTransform();
					CanvasGraphics.context.clearRect(0,0,scaledWidth,scaledHeight);
				} else {
					canvas.width = width;
					canvas.height = height;
				}
				CanvasGraphics.context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
			}
			CanvasGraphics.fillCommands.clear();
			CanvasGraphics.strokeCommands.clear();
			CanvasGraphics.hasFill = false;
			CanvasGraphics.hasStroke = false;
			CanvasGraphics.bitmapFill = null;
			CanvasGraphics.bitmapRepeat = false;
			var hasLineStyle = false;
			var initStrokeX = 0.0;
			var initStrokeY = 0.0;
			CanvasGraphics.windingRule = "evenodd";
			var data = new (openfl__$internal_renderer_DrawCommandReader().default)(graphics.__commands);
			var _g = 0;
			var _g1 = graphics.__commands.types;
			while(_g < _g1.length) {
				var type = _g1[_g];
				++_g;
				switch((Type().default).enumIndex(type)) {
				case 0:case 1:case 2:
					CanvasGraphics.endFill();
					CanvasGraphics.endStroke();
					if(type == (openfl__$internal_renderer_DrawCommandType().default).BEGIN_BITMAP_FILL) {
						var c = data.readBeginBitmapFill();
						CanvasGraphics.fillCommands.beginBitmapFill(c.obj(0),c.obj(1),c.bool(0),c.bool(1));
						CanvasGraphics.strokeCommands.beginBitmapFill(c.obj(0),c.obj(1),c.bool(0),c.bool(1));
					} else if(type == (openfl__$internal_renderer_DrawCommandType().default).BEGIN_GRADIENT_FILL) {
						var c1 = data.readBeginGradientFill();
						CanvasGraphics.fillCommands.beginGradientFill(c1.obj(0),c1.iArr(0),c1.fArr(0),c1.iArr(1),c1.obj(1),c1.obj(2),c1.obj(3),c1["float"](0));
						CanvasGraphics.strokeCommands.beginGradientFill(c1.obj(0),c1.iArr(0),c1.fArr(0),c1.iArr(1),c1.obj(1),c1.obj(2),c1.obj(3),c1["float"](0));
					} else {
						var c2 = data.readBeginFill();
						CanvasGraphics.fillCommands.beginFill(c2["int"](0),c2["float"](0));
						CanvasGraphics.strokeCommands.beginFill(c2["int"](0),c2["float"](0));
					}
					break;
				case 3:
					var c3 = data.readCubicCurveTo();
					CanvasGraphics.fillCommands.cubicCurveTo(c3["float"](0),c3["float"](1),c3["float"](2),c3["float"](3),c3["float"](4),c3["float"](5));
					if(hasLineStyle) {
						CanvasGraphics.strokeCommands.cubicCurveTo(c3["float"](0),c3["float"](1),c3["float"](2),c3["float"](3),c3["float"](4),c3["float"](5));
					} else {
						initStrokeX = c3["float"](4);
						initStrokeY = c3["float"](5);
					}
					break;
				case 4:
					var c4 = data.readCurveTo();
					CanvasGraphics.fillCommands.curveTo(c4["float"](0),c4["float"](1),c4["float"](2),c4["float"](3));
					if(hasLineStyle) {
						CanvasGraphics.strokeCommands.curveTo(c4["float"](0),c4["float"](1),c4["float"](2),c4["float"](3));
					} else {
						initStrokeX = c4["float"](2);
						initStrokeY = c4["float"](3);
					}
					break;
				case 5:
					var c5 = data.readDrawCircle();
					CanvasGraphics.fillCommands.drawCircle(c5["float"](0),c5["float"](1),c5["float"](2));
					if(hasLineStyle) {
						CanvasGraphics.strokeCommands.drawCircle(c5["float"](0),c5["float"](1),c5["float"](2));
					}
					break;
				case 6:
					var c6 = data.readDrawEllipse();
					CanvasGraphics.fillCommands.drawEllipse(c6["float"](0),c6["float"](1),c6["float"](2),c6["float"](3));
					if(hasLineStyle) {
						CanvasGraphics.strokeCommands.drawEllipse(c6["float"](0),c6["float"](1),c6["float"](2),c6["float"](3));
					}
					break;
				case 7:
					var c7 = data.readDrawRect();
					CanvasGraphics.fillCommands.drawRect(c7["float"](0),c7["float"](1),c7["float"](2),c7["float"](3));
					if(hasLineStyle) {
						CanvasGraphics.strokeCommands.drawRect(c7["float"](0),c7["float"](1),c7["float"](2),c7["float"](3));
					}
					break;
				case 8:
					var c8 = data.readDrawRoundRect();
					CanvasGraphics.fillCommands.drawRoundRect(c8["float"](0),c8["float"](1),c8["float"](2),c8["float"](3),c8["float"](4),c8.obj(0));
					if(hasLineStyle) {
						CanvasGraphics.strokeCommands.drawRoundRect(c8["float"](0),c8["float"](1),c8["float"](2),c8["float"](3),c8["float"](4),c8.obj(0));
					}
					break;
				case 10:
					var c9 = data.readDrawTriangles();
					CanvasGraphics.fillCommands.drawTriangles(c9.obj(0),c9.obj(1),c9.obj(2),c9.obj(3));
					break;
				case 11:
					data.readEndFill();
					CanvasGraphics.endFill();
					CanvasGraphics.endStroke();
					CanvasGraphics.hasFill = false;
					hasLineStyle = false;
					CanvasGraphics.bitmapFill = null;
					initStrokeX = 0;
					initStrokeY = 0;
					break;
				case 12:
					var c10 = data.readLineBitmapStyle();
					if(!hasLineStyle && (initStrokeX != 0 || initStrokeY != 0)) {
						CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY);
						initStrokeX = 0;
						initStrokeY = 0;
					}
					hasLineStyle = true;
					CanvasGraphics.strokeCommands.lineBitmapStyle(c10.obj(0),c10.obj(1),c10.bool(0),c10.bool(1));
					break;
				case 13:
					var c11 = data.readLineGradientStyle();
					if(!hasLineStyle && (initStrokeX != 0 || initStrokeY != 0)) {
						CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY);
						initStrokeX = 0;
						initStrokeY = 0;
					}
					hasLineStyle = true;
					CanvasGraphics.strokeCommands.lineGradientStyle(c11.obj(0),c11.iArr(0),c11.fArr(0),c11.iArr(1),c11.obj(1),c11.obj(2),c11.obj(3),c11["float"](0));
					break;
				case 14:
					var c12 = data.readLineStyle();
					if(!hasLineStyle && c12.obj(0) != null) {
						if(initStrokeX != 0 || initStrokeY != 0) {
							CanvasGraphics.strokeCommands.moveTo(initStrokeX,initStrokeY);
							initStrokeX = 0;
							initStrokeY = 0;
						}
					}
					hasLineStyle = c12.obj(0) != null;
					CanvasGraphics.strokeCommands.lineStyle(c12.obj(0),c12["int"](0),c12["float"](0),c12.bool(0),c12.obj(1),c12.obj(2),c12.obj(3),c12["float"](1));
					break;
				case 15:
					var c13 = data.readLineTo();
					CanvasGraphics.fillCommands.lineTo(c13["float"](0),c13["float"](1));
					if(hasLineStyle) {
						CanvasGraphics.strokeCommands.lineTo(c13["float"](0),c13["float"](1));
					} else {
						initStrokeX = c13["float"](0);
						initStrokeY = c13["float"](1);
					}
					break;
				case 16:
					var c14 = data.readMoveTo();
					CanvasGraphics.fillCommands.moveTo(c14["float"](0),c14["float"](1));
					if(hasLineStyle) {
						CanvasGraphics.strokeCommands.moveTo(c14["float"](0),c14["float"](1));
					} else {
						initStrokeX = c14["float"](0);
						initStrokeY = c14["float"](1);
					}
					break;
				case 18:
					data.readWindingEvenOdd();
					CanvasGraphics.fillCommands.windingEvenOdd();
					CanvasGraphics.windingRule = "evenodd";
					break;
				case 19:
					data.readWindingNonZero();
					CanvasGraphics.fillCommands.windingNonZero();
					CanvasGraphics.windingRule = "nonzero";
					break;
				default:
					data.skip(type);
				}
			}
			if(CanvasGraphics.fillCommands.get_length() > 0) {
				CanvasGraphics.endFill();
			}
			if(CanvasGraphics.strokeCommands.get_length() > 0) {
				CanvasGraphics.endStroke();
			}
			data.destroy();
			graphics.__bitmap = (openfl_display_BitmapData().default).fromCanvas(graphics.__canvas);
		}
		graphics.set___dirty(false);
	}
}
CanvasGraphics.renderMask = function(graphics,renderSession) {
	if(graphics.__commands.get_length() != 0) {
		CanvasGraphics.context = renderSession.context;
		var positionX = 0.0;
		var positionY = 0.0;
		var offsetX = 0;
		var offsetY = 0;
		var data = new (openfl__$internal_renderer_DrawCommandReader().default)(graphics.__commands);
		var x;
		var y;
		var width;
		var height;
		var kappa = .5522848;
		var ox;
		var oy;
		var xe;
		var ye;
		var xm;
		var ym;
		var _g = 0;
		var _g1 = graphics.__commands.types;
		while(_g < _g1.length) {
			var type = _g1[_g];
			++_g;
			switch((Type().default).enumIndex(type)) {
			case 3:
				var c = data.readCubicCurveTo();
				CanvasGraphics.context.bezierCurveTo(c["float"](0) - offsetX,c["float"](1) - offsetY,c["float"](2) - offsetX,c["float"](3) - offsetY,c["float"](4) - offsetX,c["float"](5) - offsetY);
				positionX = c["float"](4);
				positionY = c["float"](5);
				break;
			case 4:
				var c1 = data.readCurveTo();
				CanvasGraphics.context.quadraticCurveTo(c1["float"](0) - offsetX,c1["float"](1) - offsetY,c1["float"](2) - offsetX,c1["float"](3) - offsetY);
				positionX = c1["float"](2);
				positionY = c1["float"](3);
				break;
			case 5:
				var c2 = data.readDrawCircle();
				CanvasGraphics.context.arc(c2["float"](0) - offsetX,c2["float"](1) - offsetY,c2["float"](2),0,Math.PI * 2,true);
				break;
			case 6:
				var c3 = data.readDrawEllipse();
				x = c3["float"](0);
				y = c3["float"](1);
				width = c3["float"](2);
				height = c3["float"](3);
				x -= offsetX;
				y -= offsetY;
				ox = width / 2 * kappa;
				oy = height / 2 * kappa;
				xe = x + width;
				ye = y + height;
				xm = x + width / 2;
				ym = y + height / 2;
				CanvasGraphics.context.moveTo(x,ym);
				CanvasGraphics.context.bezierCurveTo(x,ym - oy,xm - ox,y,xm,y);
				CanvasGraphics.context.bezierCurveTo(xm + ox,y,xe,ym - oy,xe,ym);
				CanvasGraphics.context.bezierCurveTo(xe,ym + oy,xm + ox,ye,xm,ye);
				CanvasGraphics.context.bezierCurveTo(xm - ox,ye,x,ym + oy,x,ym);
				break;
			case 7:
				var c4 = data.readDrawRect();
				CanvasGraphics.context.rect(c4["float"](0) - offsetX,c4["float"](1) - offsetY,c4["float"](2),c4["float"](3));
				break;
			case 8:
				var c5 = data.readDrawRoundRect();
				CanvasGraphics.drawRoundRect(c5["float"](0) - offsetX,c5["float"](1) - offsetY,c5["float"](2),c5["float"](3),c5["float"](4),c5.obj(0));
				break;
			case 15:
				var c6 = data.readLineTo();
				CanvasGraphics.context.lineTo(c6["float"](0) - offsetX,c6["float"](1) - offsetY);
				positionX = c6["float"](0);
				positionY = c6["float"](1);
				break;
			case 16:
				var c7 = data.readMoveTo();
				CanvasGraphics.context.moveTo(c7["float"](0) - offsetX,c7["float"](1) - offsetY);
				positionX = c7["float"](0);
				positionY = c7["float"](1);
				break;
			default:
				data.skip(type);
			}
		}
		data.destroy();
	}
}
CanvasGraphics.setSmoothing = function(smooth) {
	if(!CanvasGraphics.allowSmoothing) {
		smooth = false;
	}
	if(CanvasGraphics.context.imageSmoothingEnabled != smooth) {
		CanvasGraphics.context.mozImageSmoothingEnabled = smooth;
		CanvasGraphics.context.msImageSmoothingEnabled = smooth;
		CanvasGraphics.context.imageSmoothingEnabled = smooth;
	}
}
CanvasGraphics.SIN45 = 0.70710678118654752440084436210485
CanvasGraphics.TAN22 = 0.4142135623730950488016887242097
CanvasGraphics.fillCommands = new (openfl__$internal_renderer_DrawCommandBuffer().default)()
CanvasGraphics.strokeCommands = new (openfl__$internal_renderer_DrawCommandBuffer().default)()
// Export
exports.default = CanvasGraphics;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 59 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLMaskManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractMaskManager() {return __webpack_require__(120);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl__$internal_renderer_opengl_GLMaskShader() {return __webpack_require__(301);}
// Constructor
var GLMaskManager = function(renderSession) {
	(openfl__$internal_renderer_AbstractMaskManager().default).call(this,renderSession);
	this.gl = renderSession.gl;
	this.clipRects = [];
	this.maskObjects = [];
	this.numClipRects = 0;
	this.stencilReference = 0;
	this.tempRect = new (openfl_geom_Rectangle().default)();
}
// Meta
GLMaskManager.__name__ = ["openfl","_internal","renderer","opengl","GLMaskManager"];
GLMaskManager.__super__ = (openfl__$internal_renderer_AbstractMaskManager().default);
GLMaskManager.prototype = $extend((openfl__$internal_renderer_AbstractMaskManager().default).prototype, {
	pushMask: function(mask) {
		if(this.stencilReference == 0) {
			this.gl.enable(this.gl.STENCIL_TEST);
			this.gl.stencilMask(255);
			this.gl.clear(this.gl.STENCIL_BUFFER_BIT);
		}
		this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.INCR);
		this.gl.stencilFunc(this.gl.EQUAL,this.stencilReference,255);
		this.gl.colorMask(false,false,false,false);
		mask.__renderGLMask(this.renderSession);
		this.maskObjects.push(mask);
		this.stencilReference++;
		this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP);
		this.gl.stencilFunc(this.gl.EQUAL,this.stencilReference,255);
		this.gl.colorMask(true,true,true,true);
	},
	pushObject: function(object,handleScrollRect) {
		if(handleScrollRect == null) {
			handleScrollRect = true;
		}
		if(handleScrollRect && object.__scrollRect != null) {
			this.pushRect(object.__scrollRect,object.__renderTransform);
		}
		if(object.__mask != null) {
			this.pushMask(object.__mask);
		}
	},
	pushRect: function(rect,transform) {
		if(this.numClipRects == this.clipRects.length) {
			this.clipRects[this.numClipRects] = new (openfl_geom_Rectangle().default)();
		}
		var clipRect = this.clipRects[this.numClipRects];
		rect.__transform(clipRect,transform);
		if(this.numClipRects > 0) {
			var parentClipRect = this.clipRects[this.numClipRects - 1];
			clipRect.__contract(parentClipRect.x,parentClipRect.y,parentClipRect.width,parentClipRect.height);
		}
		if(clipRect.height < 0) {
			clipRect.height = 0;
		}
		if(clipRect.width < 0) {
			clipRect.width = 0;
		}
		this.scissorRect(clipRect);
		this.numClipRects++;
	},
	popMask: function() {
		if(this.stencilReference == 0) {
			return;
		}
		if(this.stencilReference > 1) {
			this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.DECR);
			this.gl.stencilFunc(this.gl.EQUAL,this.stencilReference,255);
			this.gl.colorMask(false,false,false,false);
			var mask = this.maskObjects.pop();
			mask.__renderGLMask(this.renderSession);
			this.stencilReference--;
			this.gl.stencilOp(this.gl.KEEP,this.gl.KEEP,this.gl.KEEP);
			this.gl.stencilFunc(this.gl.EQUAL,this.stencilReference,255);
			this.gl.colorMask(true,true,true,true);
		} else {
			this.stencilReference = 0;
			this.gl.disable(this.gl.STENCIL_TEST);
		}
	},
	popObject: function(object,handleScrollRect) {
		if(handleScrollRect == null) {
			handleScrollRect = true;
		}
		if(object.__mask != null) {
			this.popMask();
		}
		if(handleScrollRect && object.__scrollRect != null) {
			this.popRect();
		}
	},
	popRect: function() {
		if(this.numClipRects > 0) {
			this.numClipRects--;
			if(this.numClipRects > 0) {
				this.scissorRect(this.clipRects[this.numClipRects - 1]);
			} else {
				this.scissorRect();
			}
		}
	},
	scissorRect: function(rect) {
		if(rect != null) {
			var renderer = this.renderSession.renderer;
			this.gl.enable(this.gl.SCISSOR_TEST);
			var clipRect = this.tempRect;
			rect.__transform(clipRect,renderer.displayMatrix);
			var x = Math.floor(clipRect.x);
			var y = Math.floor(renderer.height - clipRect.y - clipRect.height);
			var width = Math.ceil(clipRect.width);
			var height = Math.ceil(clipRect.height);
			if(width < 0) {
				width = 0;
			}
			if(height < 0) {
				height = 0;
			}
			this.gl.scissor(x,y,width,height);
		} else {
			this.gl.disable(this.gl.SCISSOR_TEST);
		}
	}
});
GLMaskManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLMaskManager"] = GLMaskManager;
// Init
// Statics
GLMaskManager.maskShader = new (openfl__$internal_renderer_opengl_GLMaskShader().default)()
// Export
exports.default = GLMaskManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 60 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.ErrorEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_TextEvent() {return __webpack_require__(77);}
// Constructor
var ErrorEvent = function(type,bubbles,cancelable,text,id) {
	if(id == null) {
		id = 0;
	}
	if(text == null) {
		text = "";
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_TextEvent().default).call(this,type,bubbles,cancelable,text);
	this.errorID = id;
}
// Meta
ErrorEvent.__name__ = ["openfl","events","ErrorEvent"];
ErrorEvent.__super__ = (openfl_events_TextEvent().default);
ErrorEvent.prototype = $extend((openfl_events_TextEvent().default).prototype, {
	clone: function() {
		var event = new ErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("ErrorEvent",["type","bubbles","cancelable","text","errorID"]);
	}
});
ErrorEvent.prototype.__class__ = $hxClasses["openfl.events.ErrorEvent"] = ErrorEvent;
// Init
// Statics
ErrorEvent.ERROR = "error"
// Export
exports.default = ErrorEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 61 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.Assets
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function lime_utils_AssetCache() {return __webpack_require__(337);}
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function lime_utils__$Assets_LibrarySymbol() {return __webpack_require__(338);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function lime_utils_Log() {return __webpack_require__(23);}
function lime_app_Future() {return __webpack_require__(24);}
function lime_app_Promise() {return __webpack_require__(39);}
function StringTools() {return __webpack_require__(12);}
function lime_utils_AssetManifest() {return __webpack_require__(103);}
function lime_utils_AssetLibrary() {return __webpack_require__(137);}
function lime_app_Application() {return __webpack_require__(63);}
// Constructor
var Assets = function(){}
// Meta
Assets.__name__ = ["lime","utils","Assets"];
Assets.prototype = {
	
};
Assets.prototype.__class__ = $hxClasses["lime.utils.Assets"] = Assets;
// Init
// Statics
Assets.exists = function(id,type) {
	if(type == null) {
		type = "BINARY";
	}
	var symbol = new (lime_utils__$Assets_LibrarySymbol().default)(id);
	if(symbol.library != null) {
		return symbol.exists(type);
	}
	return false;
}
Assets.getAsset = function(id,type,useCache) {
	if(useCache && Assets.cache.enabled) {
		switch(type) {
		case "BINARY":case "TEXT":
			useCache = false;
			break;
		case "FONT":
			var font = Assets.cache.font.get(id);
			if(font != null) {
				return font;
			}
			break;
		case "IMAGE":
			var image = Assets.cache.image.get(id);
			if(Assets.isValidImage(image)) {
				return image;
			}
			break;
		case "MUSIC":case "SOUND":
			var audio = Assets.cache.audio.get(id);
			if(Assets.isValidAudio(audio)) {
				return audio;
			}
			break;
		case "TEMPLATE":
			throw new (js__$Boot_HaxeError().default)("Not sure how to get template: " + id);
			break;
		default:
			return null;
		}
	}
	var symbol = new (lime_utils__$Assets_LibrarySymbol().default)(id);
	if(symbol.library != null) {
		if(symbol.exists(type)) {
			if(symbol.isLocal(type)) {
				var asset = symbol.library.getAsset(symbol.symbolName,type);
				if(useCache && Assets.cache.enabled) {
					Assets.cache.set(id,type,asset);
				}
				return asset;
			} else {
				(lime_utils_Log().default).error(type + " asset \"" + id + "\" exists, but only asynchronously",{ fileName : "Assets.hx", lineNumber : 160, className : "lime.utils.Assets", methodName : "getAsset"});
			}
		} else {
			(lime_utils_Log().default).error("There is no " + type + " asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 166, className : "lime.utils.Assets", methodName : "getAsset"});
		}
	} else {
		(lime_utils_Log().default).error(Assets.__libraryNotFound(symbol.libraryName),{ fileName : "Assets.hx", lineNumber : 172, className : "lime.utils.Assets", methodName : "getAsset"});
	}
	return null;
}
Assets.getAudioBuffer = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	return Assets.getAsset(id,"SOUND",useCache);
}
Assets.getBytes = function(id) {
	return Assets.getAsset(id,"BINARY",false);
}
Assets.getFont = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	return Assets.getAsset(id,"FONT",useCache);
}
Assets.getImage = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	return Assets.getAsset(id,"IMAGE",useCache);
}
Assets.getLibrary = function(name) {
	if(name == null || name == "") {
		name = "default";
	}
	return Assets.libraries.get(name);
}
Assets.getPath = function(id) {
	var symbol = new (lime_utils__$Assets_LibrarySymbol().default)(id);
	if(symbol.library != null) {
		if(symbol.exists()) {
			return symbol.library.getPath(symbol.symbolName);
		} else {
			(lime_utils_Log().default).error("There is no asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 269, className : "lime.utils.Assets", methodName : "getPath"});
		}
	} else {
		(lime_utils_Log().default).error(Assets.__libraryNotFound(symbol.libraryName),{ fileName : "Assets.hx", lineNumber : 275, className : "lime.utils.Assets", methodName : "getPath"});
	}
	return null;
}
Assets.getText = function(id) {
	return Assets.getAsset(id,"TEXT",false);
}
Assets.hasLibrary = function(name) {
	if(name == null || name == "") {
		name = "default";
	}
	return Assets.libraries.exists(name);
}
Assets.isLocal = function(id,type,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache && Assets.cache.enabled) {
		if(Assets.cache.exists(id,type)) {
			return true;
		}
	}
	var symbol = new (lime_utils__$Assets_LibrarySymbol().default)(id);
	if(symbol.library != null) {
		return symbol.isLocal(type);
	} else {
		return false;
	}
}
Assets.isValidAudio = function(buffer) {
	return buffer != null;
}
Assets.isValidImage = function(image) {
	if(image != null) {
		return image.buffer != null;
	} else {
		return false;
	}
}
Assets.list = function(type) {
	var items = [];
	var library = Assets.libraries.iterator();
	while(library.hasNext()) {
		var library1 = library.next();
		var libraryItems = library1.list(type);
		if(libraryItems != null) {
			items = items.concat(libraryItems);
		}
	}
	return items;
}
Assets.loadAsset = function(id,type,useCache) {
	if(useCache && Assets.cache.enabled) {
		switch(type) {
		case "BINARY":case "TEXT":
			useCache = false;
			break;
		case "FONT":
			var font = Assets.cache.font.get(id);
			if(font != null) {
				return (lime_app_Future().default).withValue(font);
			}
			break;
		case "IMAGE":
			var image = Assets.cache.image.get(id);
			if(Assets.isValidImage(image)) {
				return (lime_app_Future().default).withValue(image);
			}
			break;
		case "MUSIC":case "SOUND":
			var audio = Assets.cache.audio.get(id);
			if(Assets.isValidAudio(audio)) {
				return (lime_app_Future().default).withValue(audio);
			}
			break;
		case "TEMPLATE":
			throw new (js__$Boot_HaxeError().default)("Not sure how to get template: " + id);
			break;
		default:
			return null;
		}
	}
	var symbol = new (lime_utils__$Assets_LibrarySymbol().default)(id);
	if(symbol.library != null) {
		if(symbol.exists(type)) {
			var future = symbol.library.loadAsset(symbol.symbolName,type);
			if(useCache && Assets.cache.enabled) {
				future.onComplete(function(asset) {
					Assets.cache.set(id,type,asset);
				});
			}
			return future;
		} else {
			return (lime_app_Future().default).withError("There is no " + type + " asset with an ID of \"" + id + "\"");
		}
	} else {
		return (lime_app_Future().default).withError(Assets.__libraryNotFound(symbol.libraryName));
	}
}
Assets.loadAudioBuffer = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	return Assets.loadAsset(id,"SOUND",useCache);
}
Assets.loadBytes = function(id) {
	return Assets.loadAsset(id,"BINARY",false);
}
Assets.loadFont = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	return Assets.loadAsset(id,"FONT",useCache);
}
Assets.loadImage = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	return Assets.loadAsset(id,"IMAGE",useCache);
}
Assets.loadLibrary = function(id) {
	var promise = new (lime_app_Promise().default)();
	var library = Assets.getLibrary(id);
	if(library != null) {
		return library.load();
	}
	var path = id;
	var rootPath = null;
	if(Assets.libraryPaths.exists(id)) {
		path = Assets.libraryPaths.get(id);
		rootPath = Assets.defaultRootPath;
	} else if((StringTools().default).endsWith(path,".bundle")) {
		path += "/library.json";
	}
	(lime_utils_AssetManifest().default).loadFromFile(path,rootPath).onComplete(function(manifest) {
		if(manifest == null) {
			promise.error("Cannot parse asset manifest for library \"" + id + "\"");
			return;
		}
		var library1 = (lime_utils_AssetLibrary().default).fromManifest(manifest);
		if(library1 == null) {
			promise.error("Cannot open library \"" + id + "\"");
		} else {
			Assets.libraries.set(id,library1);
			library1.onChange.add(($_=Assets.onChange,$bind($_,$_.dispatch)));
			var tmp = library1.load();
			promise.completeWith(tmp);
		}
	}).onError(function(_) {
		promise.error("There is no asset library with an ID of \"" + id + "\"");
	});
	return promise.future;
}
Assets.loadText = function(id) {
	return Assets.loadAsset(id,"TEXT",false);
}
Assets.registerLibrary = function(name,library) {
	if(Assets.libraries.exists(name)) {
		if(Assets.libraries.get(name) == library) {
			return;
		} else {
			Assets.unloadLibrary(name);
		}
	}
	if(library != null) {
		library.onChange.add(Assets.library_onChange);
	}
	Assets.libraries.set(name,library);
}
Assets.unloadLibrary = function(name) {
	var library = Assets.libraries.get(name);
	if(library != null) {
		Assets.cache.clear(name + ":");
		library.onChange.remove(Assets.library_onChange);
		library.unload();
	}
	Assets.libraries.remove(name);
}
Assets.__libraryNotFound = function(name) {
	if(name == null || name == "") {
		name = "default";
	}
	if((lime_app_Application().default).current != null && (lime_app_Application().default).current.get_preloader() != null && !(lime_app_Application().default).current.get_preloader().complete) {
		return "There is no asset library named \"" + name + "\", or it is not yet preloaded";
	} else {
		return "There is no asset library named \"" + name + "\"";
	}
}
Assets.library_onChange = function() {
	Assets.cache.clear();
	Assets.onChange.dispatch();
}
Assets.cache = new (lime_utils_AssetCache().default)()
Assets.onChange = new (lime_app__$Event_$Void_$Void().default)()
Assets.libraries = new (haxe_ds_StringMap().default)()
Assets.libraryPaths = new (haxe_ds_StringMap().default)()
// Export
exports.default = Assets;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.Context3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl__$internal_stage3D_opengl_GLContext3D() {return __webpack_require__(395);}
function openfl_display3D_textures_CubeTexture() {return __webpack_require__(106);}
function openfl_display3D_IndexBuffer3D() {return __webpack_require__(216);}
function openfl_display3D_Program3D() {return __webpack_require__(401);}
function openfl_display3D_textures_RectangleTexture() {return __webpack_require__(142);}
function openfl_display3D_textures_Texture() {return __webpack_require__(104);}
function openfl_display3D_VertexBuffer3D() {return __webpack_require__(219);}
function openfl_display3D_textures_VideoTexture() {return __webpack_require__(411);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
function openfl__$internal_stage3D_Context3DStateCache() {return __webpack_require__(413);}
// Constructor
var Context3D = function(stage3D,renderSession) {
	this.totalGPUMemory = 0;
	this.profile = "baseline";
	this.driverInfo = "OpenGL (Direct blitting)";
	this.backBufferWidth = 0;
	this.backBufferHeight = 0;
	(openfl_events_EventDispatcher().default).call(this);
	this.__stage3D = stage3D;
	this.__renderSession = renderSession;
	(openfl__$internal_stage3D_opengl_GLContext3D().default).create(this);
}
// Meta
Context3D.__name__ = ["openfl","display3D","Context3D"];
Context3D.__super__ = (openfl_events_EventDispatcher().default);
Context3D.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	clear: function(red,green,blue,alpha,depth,stencil,mask) {
		if(mask == null) {
			mask = 7;
		}
		if(stencil == null) {
			stencil = 0;
		}
		if(depth == null) {
			depth = 1;
		}
		if(alpha == null) {
			alpha = 1;
		}
		if(blue == null) {
			blue = 0;
		}
		if(green == null) {
			green = 0;
		}
		if(red == null) {
			red = 0;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).clear(this,red,green,blue,alpha,depth,stencil,mask);
	},
	configureBackBuffer: function(width,height,antiAlias,enableDepthAndStencil,wantsBestResolution,wantsBestResolutionOnBrowserZoom) {
		if(wantsBestResolutionOnBrowserZoom == null) {
			wantsBestResolutionOnBrowserZoom = false;
		}
		if(wantsBestResolution == null) {
			wantsBestResolution = false;
		}
		if(enableDepthAndStencil == null) {
			enableDepthAndStencil = true;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).configureBackBuffer(this,width,height,antiAlias,enableDepthAndStencil,wantsBestResolution,wantsBestResolutionOnBrowserZoom);
	},
	createCubeTexture: function(size,format,optimizeForRenderToTexture,streamingLevels) {
		if(streamingLevels == null) {
			streamingLevels = 0;
		}
		return new (openfl_display3D_textures_CubeTexture().default)(this,size,format,optimizeForRenderToTexture,streamingLevels);
	},
	createIndexBuffer: function(numIndices,bufferUsage) {
		if(bufferUsage == null) {
			bufferUsage = "staticDraw";
		}
		return new (openfl_display3D_IndexBuffer3D().default)(this,numIndices,bufferUsage);
	},
	createProgram: function() {
		return new (openfl_display3D_Program3D().default)(this);
	},
	createRectangleTexture: function(width,height,format,optimizeForRenderToTexture) {
		return new (openfl_display3D_textures_RectangleTexture().default)(this,width,height,format,optimizeForRenderToTexture);
	},
	createTexture: function(width,height,format,optimizeForRenderToTexture,streamingLevels) {
		if(streamingLevels == null) {
			streamingLevels = 0;
		}
		return new (openfl_display3D_textures_Texture().default)(this,width,height,format,optimizeForRenderToTexture,streamingLevels);
	},
	createVertexBuffer: function(numVertices,data32PerVertex,bufferUsage) {
		if(bufferUsage == null) {
			bufferUsage = "staticDraw";
		}
		return new (openfl_display3D_VertexBuffer3D().default)(this,numVertices,data32PerVertex,bufferUsage);
	},
	createVideoTexture: function() {
		return new (openfl_display3D_textures_VideoTexture().default)(this);
	},
	dispose: function(recreate) {
		if(recreate == null) {
			recreate = true;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).dispose(this,recreate);
	},
	drawToBitmapData: function(destination) {
		if(destination == null) {
			return;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).drawToBitmapData(this,destination);
	},
	drawTriangles: function(indexBuffer,firstIndex,numTriangles) {
		if(numTriangles == null) {
			numTriangles = -1;
		}
		if(firstIndex == null) {
			firstIndex = 0;
		}
		if(this.__program == null) {
			return;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).drawTriangles(this,indexBuffer,firstIndex,numTriangles);
	},
	present: function() {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).present(this);
	},
	setBlendFactors: function(sourceFactor,destinationFactor) {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setBlendFactors(this,sourceFactor,destinationFactor);
	},
	setColorMask: function(red,green,blue,alpha) {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setColorMask(this,red,green,blue,alpha);
	},
	setCulling: function(triangleFaceToCull) {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setCulling(this,triangleFaceToCull);
	},
	setDepthTest: function(depthMask,passCompareMode) {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setDepthTest(this,depthMask,passCompareMode);
	},
	setProgram: function(program) {
		if(program == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setProgram(this,program);
	},
	setProgramConstantsFromByteArray: function(programType,firstRegister,numRegisters,data,byteArrayOffset) {
		if(numRegisters == 0) {
			return;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setProgramConstantsFromByteArray(this,programType,firstRegister,numRegisters,data,byteArrayOffset);
	},
	setProgramConstantsFromMatrix: function(programType,firstRegister,matrix,transposedMatrix) {
		if(transposedMatrix == null) {
			transposedMatrix = false;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setProgramConstantsFromMatrix(this,programType,firstRegister,matrix,transposedMatrix);
	},
	setProgramConstantsFromVector: function(programType,firstRegister,data,numRegisters) {
		if(numRegisters == null) {
			numRegisters = -1;
		}
		if(numRegisters == 0) {
			return;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setProgramConstantsFromVector(this,programType,firstRegister,data,numRegisters);
	},
	setRenderToBackBuffer: function() {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setRenderToBackBuffer(this);
	},
	setRenderToTexture: function(texture,enableDepthAndStencil,antiAlias,surfaceSelector) {
		if(surfaceSelector == null) {
			surfaceSelector = 0;
		}
		if(antiAlias == null) {
			antiAlias = 0;
		}
		if(enableDepthAndStencil == null) {
			enableDepthAndStencil = false;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setRenderToTexture(this,texture,enableDepthAndStencil,antiAlias,surfaceSelector);
	},
	setSamplerStateAt: function(sampler,wrap,filter,mipfilter) {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setSamplerStateAt(this,sampler,wrap,filter,mipfilter);
	},
	setScissorRectangle: function(rectangle) {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setScissorRectangle(this,rectangle);
	},
	setStencilActions: function(triangleFace,compareMode,actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail) {
		if(actionOnDepthPassStencilFail == null) {
			actionOnDepthPassStencilFail = "keep";
		}
		if(actionOnDepthFail == null) {
			actionOnDepthFail = "keep";
		}
		if(actionOnBothPass == null) {
			actionOnBothPass = "keep";
		}
		if(compareMode == null) {
			compareMode = "always";
		}
		if(triangleFace == null) {
			triangleFace = "frontAndBack";
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setStencilActions(this,triangleFace,compareMode,actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail);
	},
	setStencilReferenceValue: function(referenceValue,readMask,writeMask) {
		if(writeMask == null) {
			writeMask = 255;
		}
		if(readMask == null) {
			readMask = 255;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setStencilReferenceValue(this,referenceValue,readMask,writeMask);
	},
	setTextureAt: function(sampler,texture) {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setTextureAt(this,sampler,texture);
	},
	setVertexBufferAt: function(index,buffer,bufferOffset,format) {
		if(format == null) {
			format = "float4";
		}
		if(bufferOffset == null) {
			bufferOffset = 0;
		}
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setVertexBufferAt(this,index,buffer,bufferOffset,format);
	},
	__updateBackbufferViewport: function() {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).__updateBackbufferViewportTEMP(this);
	},
	__updateBlendFactors: function() {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).__updateBlendFactorsTEMP(this);
	},
	get_enableErrorChecking: function() {
		return this.__enableErrorChecking;
	},
	set_enableErrorChecking: function(value) {
		(openfl__$internal_stage3D_opengl_GLContext3D().default).setEnableErrorChecking(value);
		return this.__enableErrorChecking = value;
	}
});
Context3D.prototype.__class__ = $hxClasses["openfl.display3D.Context3D"] = Context3D;
// Init
// Statics
Context3D.supportsVideoTexture = true
Context3D.MAX_SAMPLERS = 8
Context3D.MAX_ATTRIBUTES = 16
Context3D.MAX_PROGRAM_REGISTERS = 128
Context3D.TEXTURE_MAX_ANISOTROPY_EXT = 0
Context3D.DEPTH_STENCIL = 0
Context3D.__stateCache = new (openfl__$internal_stage3D_Context3DStateCache().default)()
// Export
exports.default = Context3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app.Application
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_app_Module() {return __webpack_require__(241);}
function Reflect() {return __webpack_require__(5);}
function lime_ui_Window() {return __webpack_require__(147);}
function lime_graphics_Renderer() {return __webpack_require__(263);}
function HxOverrides() {return __webpack_require__(7);}
function lime_system_System() {return __webpack_require__(46);}
function lime_app__$Event_$Int_$Void() {return __webpack_require__(108);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
function lime__$backend_html5_HTML5Application() {return __webpack_require__(277);}
// Constructor
var Application = function() {
	this.onUpdate = new (lime_app__$Event_$Int_$Void().default)();
	(lime_app_Module().default).call(this);
	if(Application.current == null) {
		Application.current = this;
	}
	this.modules = [];
	this.windowByID = new (haxe_ds_IntMap().default)();
	this.backend = new (lime__$backend_html5_HTML5Application().default)(this);
	this.registerModule(this);
}
// Meta
Application.__name__ = ["lime","app","Application"];
Application.__super__ = (lime_app_Module().default);
Application.prototype = $extend((lime_app_Module().default).prototype, {
	addModule: function(module) {
		module.registerModule(this);
		this.modules.push(module);
		if(this.__renderers.length > 0) {
			var _g = 0;
			var _g1 = this.__renderers;
			while(_g < _g1.length) {
				var renderer = _g1[_g];
				++_g;
				module.addRenderer(renderer);
			}
		}
		if(this.__windows.length > 0) {
			var _g2 = 0;
			var _g11 = this.__windows;
			while(_g2 < _g11.length) {
				var $window = _g11[_g2];
				++_g2;
				module.addWindow($window);
			}
		}
		module.setPreloader(this.__preloader);
	},
	addRenderer: function(renderer) {
		(lime_app_Module().default).prototype.addRenderer.call(this,renderer);
		var _g = 0;
		var _g1 = this.modules;
		while(_g < _g1.length) {
			var module = _g1[_g];
			++_g;
			module.addRenderer(renderer);
		}
	},
	create: function(config) {
		this.config = config;
		this.backend.create(config);
		if(config != null) {
			if((Reflect().default).hasField(config,"fps")) {
				this.set_frameRate(config.fps);
			}
			if((Reflect().default).hasField(config,"windows")) {
				var _g = 0;
				var _g1 = config.windows;
				while(_g < _g1.length) {
					var windowConfig = _g1[_g];
					++_g;
					var $window = new (lime_ui_Window().default)(windowConfig);
					this.createWindow($window);
					break;
				}
			}
			if(this.__preloader == null || this.__preloader.complete) {
				this.setPreloader(this.__preloader);
				var _g2 = 0;
				var _g11 = this.modules;
				while(_g2 < _g11.length) {
					var module = _g11[_g2];
					++_g2;
					this.setPreloader(this.__preloader);
				}
			}
		}
	},
	createWindow: function(window) {
		(lime_app_Module().default).prototype.addWindow.call(this,window);
		var _g = 0;
		var _g1 = this.modules;
		while(_g < _g1.length) {
			var module = _g1[_g];
			++_g;
			module.addWindow(window);
		}
		if(window.renderer == null) {
			var renderer = new (lime_graphics_Renderer().default)(window);
			this.addRenderer(renderer);
		}
		window.create(this);
		this.windowByID.set(window.id,window);
		window.onCreate.dispatch();
	},
	exec: function() {
		Application.current = this;
		return this.backend.exec();
	},
	onModuleExit: function(code) {
		this.backend.exit();
	},
	onWindowClose: function(window) {
		this.removeWindow(window);
	},
	removeModule: function(module) {
		if(module != null) {
			module.unregisterModule(this);
			(HxOverrides().default).remove(this.modules,module);
		}
	},
	removeWindow: function(window) {
		if(window != null && this.windowByID.exists(window.id)) {
			(HxOverrides().default).remove(this.__windows,window);
			this.windowByID.remove(window.id);
			window.close();
			if(window.renderer != null) {
				this.removeRenderer(window.renderer);
			}
			if(this.get_window() == window) {
				this.window = null;
			}
			if(this.__windows.length == 0) {
				(lime_system_System().default).exit(0);
			}
		}
	},
	setPreloader: function(preloader) {
		(lime_app_Module().default).prototype.setPreloader.call(this,preloader);
		var _g = 0;
		var _g1 = this.modules;
		while(_g < _g1.length) {
			var module = _g1[_g];
			++_g;
			module.setPreloader(preloader);
		}
	},
	get_frameRate: function() {
		return this.backend.getFrameRate();
	},
	set_frameRate: function(value) {
		return this.backend.setFrameRate(value);
	},
	get_preloader: function() {
		return this.__preloader;
	},
	get_renderer: function() {
		return this.__renderers[0];
	},
	get_renderers: function() {
		return this.__renderers;
	},
	get_window: function() {
		return this.__windows[0];
	},
	get_windows: function() {
		return this.__windows;
	}
});
Application.prototype.__class__ = $hxClasses["lime.app.Application"] = Application;
// Init
{
	var init = (lime__$backend_html5_HTML5Application().default)
	var p = Application.prototype;
	Object.defineProperties(p,{ "frameRate" : { get : p.get_frameRate, set : p.set_frameRate}, "preloader" : { get : p.get_preloader}, "renderer" : { get : p.get_renderer}, "renderers" : { get : p.get_renderers}, "window" : { get : p.get_window}, "windows" : { get : p.get_windows}});
};
// Statics
// Export
exports.default = Application;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 64 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.system.Endian
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var Endian = $hxClasses["lime.system.Endian"] = { __ename__: ["lime","system","Endian"], __constructs__: ["LITTLE_ENDIAN","BIG_ENDIAN"] }
Endian.LITTLE_ENDIAN = ["LITTLE_ENDIAN",0];
Endian.LITTLE_ENDIAN.toString = $estr;
Endian.LITTLE_ENDIAN.__enum__ = Endian;
Endian.BIG_ENDIAN = ["BIG_ENDIAN",1];
Endian.BIG_ENDIAN.toString = $estr;
Endian.BIG_ENDIAN.__enum__ = Endian;
exports.default = Endian;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 65 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.utils.ImageDataUtil
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_utils__$ImageDataUtil_ImageDataView() {return __webpack_require__(259);}
function lime_math__$ColorMatrix_ColorMatrix_$Impl_$() {return __webpack_require__(150);}
function lime_math_color__$RGBA_RGBA_$Impl_$() {return __webpack_require__(151);}
function Type() {return __webpack_require__(10);}
function lime_math_Rectangle() {return __webpack_require__(41);}
function Std() {return __webpack_require__(4);}
function lime_math_Vector2() {return __webpack_require__(42);}
function _$UInt_UInt_$Impl_$() {return __webpack_require__(43);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function lime_graphics_ImageBuffer() {return __webpack_require__(110);}
function lime_system_Endian() {return __webpack_require__(64);}
// Constructor
var ImageDataUtil = function(){}
// Meta
ImageDataUtil.__name__ = ["lime","graphics","utils","ImageDataUtil"];
ImageDataUtil.prototype = {
	
};
ImageDataUtil.prototype.__class__ = $hxClasses["lime.graphics.utils.ImageDataUtil"] = ImageDataUtil;
// Init
// Statics
ImageDataUtil.colorTransform = function(image,rect,colorMatrix) {
	var data = image.buffer.data;
	if(data == null) {
		return;
	}
	var format = image.buffer.format;
	var premultiplied = image.buffer.premultiplied;
	var dataView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(image,rect);
	var alphaTable = (lime_math__$ColorMatrix_ColorMatrix_$Impl_$().default).getAlphaTable(colorMatrix);
	var redTable = (lime_math__$ColorMatrix_ColorMatrix_$Impl_$().default).getRedTable(colorMatrix);
	var greenTable = (lime_math__$ColorMatrix_ColorMatrix_$Impl_$().default).getGreenTable(colorMatrix);
	var blueTable = (lime_math__$ColorMatrix_ColorMatrix_$Impl_$().default).getBlueTable(colorMatrix);
	var row;
	var offset;
	var pixel;
	var _g1 = 0;
	var _g = dataView.height;
	while(_g1 < _g) {
		var y = _g1++;
		row = dataView.row(y);
		var _g3 = 0;
		var _g2 = dataView.width;
		while(_g3 < _g2) {
			var x = _g3++;
			offset = row + x * 4;
			switch(format) {
			case 0:
				pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
				break;
			case 1:
				pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
				break;
			case 2:
				pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
				break;
			}
			if(premultiplied) {
				if((pixel & 255) != 0 && (pixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (pixel & 255);
					pixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | pixel & 255 & 255;
				}
			}
			pixel = (redTable[pixel >>> 24 & 255] & 255) << 24 | (greenTable[pixel >>> 16 & 255] & 255) << 16 | (blueTable[pixel >>> 8 & 255] & 255) << 8 | alphaTable[pixel & 255] & 255;
			if(premultiplied) {
				if((pixel & 255) == 0) {
					if(pixel != 0) {
						pixel = 0;
					}
				} else if((pixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[pixel & 255];
					pixel = ((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | pixel & 255 & 255;
				}
			}
			switch(format) {
			case 0:
				data[offset] = pixel >>> 24 & 255;
				data[offset + 1] = pixel >>> 16 & 255;
				data[offset + 2] = pixel >>> 8 & 255;
				data[offset + 3] = pixel & 255;
				break;
			case 1:
				data[offset] = pixel & 255;
				data[offset + 1] = pixel >>> 24 & 255;
				data[offset + 2] = pixel >>> 16 & 255;
				data[offset + 3] = pixel >>> 8 & 255;
				break;
			case 2:
				data[offset] = pixel >>> 8 & 255;
				data[offset + 1] = pixel >>> 16 & 255;
				data[offset + 2] = pixel >>> 24 & 255;
				data[offset + 3] = pixel & 255;
				break;
			}
		}
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.copyChannel = function(image,sourceImage,sourceRect,destPoint,sourceChannel,destChannel) {
	var destIdx;
	switch((Type().default).enumIndex(destChannel)) {
	case 0:
		destIdx = 0;
		break;
	case 1:
		destIdx = 1;
		break;
	case 2:
		destIdx = 2;
		break;
	case 3:
		destIdx = 3;
		break;
	}
	var srcIdx;
	switch((Type().default).enumIndex(sourceChannel)) {
	case 0:
		srcIdx = 0;
		break;
	case 1:
		srcIdx = 1;
		break;
	case 2:
		srcIdx = 2;
		break;
	case 3:
		srcIdx = 3;
		break;
	}
	var srcData = sourceImage.buffer.data;
	var destData = image.buffer.data;
	if(srcData == null || destData == null) {
		return;
	}
	var srcView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(sourceImage,sourceRect);
	var destView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(image,new (lime_math_Rectangle().default)(destPoint.x,destPoint.y,srcView.width,srcView.height));
	var srcFormat = sourceImage.buffer.format;
	var destFormat = image.buffer.format;
	var srcPremultiplied = sourceImage.buffer.premultiplied;
	var destPremultiplied = image.buffer.premultiplied;
	var srcPosition;
	var destPosition;
	var srcPixel;
	var destPixel;
	var value = 0;
	var _g1 = 0;
	var _g = destView.height;
	while(_g1 < _g) {
		var y = _g1++;
		srcPosition = srcView.row(y);
		destPosition = destView.row(y);
		var _g3 = 0;
		var _g2 = destView.width;
		while(_g3 < _g2) {
			var x = _g3++;
			switch(srcFormat) {
			case 0:
				srcPixel = (srcData[srcPosition] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition + 2] & 255) << 8 | srcData[srcPosition + 3] & 255;
				break;
			case 1:
				srcPixel = (srcData[srcPosition + 1] & 255) << 24 | (srcData[srcPosition + 2] & 255) << 16 | (srcData[srcPosition + 3] & 255) << 8 | srcData[srcPosition] & 255;
				break;
			case 2:
				srcPixel = (srcData[srcPosition + 2] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition] & 255) << 8 | srcData[srcPosition + 3] & 255;
				break;
			}
			if(srcPremultiplied) {
				if((srcPixel & 255) != 0 && (srcPixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (srcPixel & 255);
					srcPixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((srcPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((srcPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((srcPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | srcPixel & 255 & 255;
				}
			}
			switch(destFormat) {
			case 0:
				destPixel = (destData[destPosition] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition + 2] & 255) << 8 | destData[destPosition + 3] & 255;
				break;
			case 1:
				destPixel = (destData[destPosition + 1] & 255) << 24 | (destData[destPosition + 2] & 255) << 16 | (destData[destPosition + 3] & 255) << 8 | destData[destPosition] & 255;
				break;
			case 2:
				destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255;
				break;
			}
			if(destPremultiplied) {
				if((destPixel & 255) != 0 && (destPixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (destPixel & 255);
					destPixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | destPixel & 255 & 255;
				}
			}
			switch(srcIdx) {
			case 0:
				value = srcPixel >>> 24 & 255;
				break;
			case 1:
				value = srcPixel >>> 16 & 255;
				break;
			case 2:
				value = srcPixel >>> 8 & 255;
				break;
			case 3:
				value = srcPixel & 255;
				break;
			}
			switch(destIdx) {
			case 0:
				destPixel = (value & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
				break;
			case 1:
				destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
				break;
			case 2:
				destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value & 255) << 8 | destPixel & 255 & 255;
				break;
			case 3:
				destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value & 255;
				break;
			}
			if(destPremultiplied) {
				if((destPixel & 255) == 0) {
					if(destPixel != 0) {
						destPixel = 0;
					}
				} else if((destPixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[destPixel & 255];
					destPixel = ((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
				}
			}
			switch(destFormat) {
			case 0:
				destData[destPosition] = destPixel >>> 24 & 255;
				destData[destPosition + 1] = destPixel >>> 16 & 255;
				destData[destPosition + 2] = destPixel >>> 8 & 255;
				destData[destPosition + 3] = destPixel & 255;
				break;
			case 1:
				destData[destPosition] = destPixel & 255;
				destData[destPosition + 1] = destPixel >>> 24 & 255;
				destData[destPosition + 2] = destPixel >>> 16 & 255;
				destData[destPosition + 3] = destPixel >>> 8 & 255;
				break;
			case 2:
				destData[destPosition] = destPixel >>> 8 & 255;
				destData[destPosition + 1] = destPixel >>> 16 & 255;
				destData[destPosition + 2] = destPixel >>> 24 & 255;
				destData[destPosition + 3] = destPixel & 255;
				break;
			}
			srcPosition += 4;
			destPosition += 4;
		}
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.copyPixels = function(image,sourceImage,sourceRect,destPoint,alphaImage,alphaPoint,mergeAlpha) {
	if(mergeAlpha == null) {
		mergeAlpha = false;
	}
	if(image.width == sourceImage.width && image.height == sourceImage.height && sourceRect.width == sourceImage.width && sourceRect.height == sourceImage.height && sourceRect.x == 0 && sourceRect.y == 0 && destPoint.x == 0 && destPoint.y == 0 && alphaImage == null && alphaPoint == null && mergeAlpha == false && image.get_format() == sourceImage.get_format()) {
		image.buffer.data.set(sourceImage.buffer.data);
	} else {
		var sourceData = sourceImage.buffer.data;
		var destData = image.buffer.data;
		if(sourceData == null || destData == null) {
			return;
		}
		var sourceView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(sourceImage,sourceRect);
		var destRect = new (lime_math_Rectangle().default)(destPoint.x,destPoint.y,sourceView.width,sourceView.height);
		var destView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(image,destRect);
		var sourceFormat = sourceImage.buffer.format;
		var destFormat = image.buffer.format;
		var sourcePosition;
		var destPosition;
		var sourceAlpha;
		var destAlpha;
		var oneMinusSourceAlpha;
		var blendAlpha;
		var sourcePixel;
		var destPixel;
		var sourcePremultiplied = sourceImage.buffer.premultiplied;
		var destPremultiplied = image.buffer.premultiplied;
		var sourceBytesPerPixel = (Std().default)["int"](sourceImage.buffer.bitsPerPixel / 8);
		var destBytesPerPixel = (Std().default)["int"](image.buffer.bitsPerPixel / 8);
		var useAlphaImage = alphaImage != null && alphaImage.get_transparent();
		var blend = mergeAlpha || useAlphaImage && !image.get_transparent();
		if(!useAlphaImage) {
			if(blend) {
				var _g1 = 0;
				var _g = destView.height;
				while(_g1 < _g) {
					var y = _g1++;
					sourcePosition = sourceView.row(y);
					destPosition = destView.row(y);
					var _g3 = 0;
					var _g2 = destView.width;
					while(_g3 < _g2) {
						var x = _g3++;
						switch(sourceFormat) {
						case 0:
							sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
							break;
						case 1:
							sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255;
							break;
						case 2:
							sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
							break;
						}
						if(sourcePremultiplied) {
							if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (sourcePixel & 255);
								sourcePixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | sourcePixel & 255 & 255;
							}
						}
						switch(destFormat) {
						case 0:
							destPixel = (destData[destPosition] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition + 2] & 255) << 8 | destData[destPosition + 3] & 255;
							break;
						case 1:
							destPixel = (destData[destPosition + 1] & 255) << 24 | (destData[destPosition + 2] & 255) << 16 | (destData[destPosition + 3] & 255) << 8 | destData[destPosition] & 255;
							break;
						case 2:
							destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255;
							break;
						}
						if(destPremultiplied) {
							if((destPixel & 255) != 0 && (destPixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (destPixel & 255);
								destPixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | destPixel & 255 & 255;
							}
						}
						sourceAlpha = (sourcePixel & 255) / 255.0;
						destAlpha = (destPixel & 255) / 255.0;
						oneMinusSourceAlpha = 1 - sourceAlpha;
						blendAlpha = sourceAlpha + destAlpha * oneMinusSourceAlpha;
						if(blendAlpha == 0) {
							destPixel = 0;
						} else {
							var value = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round(((sourcePixel >>> 24 & 255) * sourceAlpha + (destPixel >>> 24 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)];
							destPixel = (value & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
							var value1 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round(((sourcePixel >>> 16 & 255) * sourceAlpha + (destPixel >>> 16 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)];
							destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
							var value2 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round(((sourcePixel >>> 8 & 255) * sourceAlpha + (destPixel >>> 8 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)];
							destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255;
							var value3 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round(blendAlpha * 255.0)];
							destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255;
						}
						if(destPremultiplied) {
							if((destPixel & 255) == 0) {
								if(destPixel != 0) {
									destPixel = 0;
								}
							} else if((destPixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[destPixel & 255];
								destPixel = ((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
							}
						}
						switch(destFormat) {
						case 0:
							destData[destPosition] = destPixel >>> 24 & 255;
							destData[destPosition + 1] = destPixel >>> 16 & 255;
							destData[destPosition + 2] = destPixel >>> 8 & 255;
							destData[destPosition + 3] = destPixel & 255;
							break;
						case 1:
							destData[destPosition] = destPixel & 255;
							destData[destPosition + 1] = destPixel >>> 24 & 255;
							destData[destPosition + 2] = destPixel >>> 16 & 255;
							destData[destPosition + 3] = destPixel >>> 8 & 255;
							break;
						case 2:
							destData[destPosition] = destPixel >>> 8 & 255;
							destData[destPosition + 1] = destPixel >>> 16 & 255;
							destData[destPosition + 2] = destPixel >>> 24 & 255;
							destData[destPosition + 3] = destPixel & 255;
							break;
						}
						sourcePosition += 4;
						destPosition += 4;
					}
				}
			} else if(sourceFormat == destFormat && sourcePremultiplied == destPremultiplied && sourceBytesPerPixel == destBytesPerPixel) {
				var _g11 = 0;
				var _g4 = destView.height;
				while(_g11 < _g4) {
					var y1 = _g11++;
					sourcePosition = sourceView.row(y1);
					destPosition = destView.row(y1);
					destData.set(sourceData.subarray(sourcePosition,sourcePosition + destView.width * destBytesPerPixel),destPosition);
				}
			} else {
				var _g12 = 0;
				var _g5 = destView.height;
				while(_g12 < _g5) {
					var y2 = _g12++;
					sourcePosition = sourceView.row(y2);
					destPosition = destView.row(y2);
					var _g31 = 0;
					var _g21 = destView.width;
					while(_g31 < _g21) {
						var x1 = _g31++;
						switch(sourceFormat) {
						case 0:
							sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
							break;
						case 1:
							sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255;
							break;
						case 2:
							sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
							break;
						}
						if(sourcePremultiplied) {
							if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (sourcePixel & 255);
								sourcePixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | sourcePixel & 255 & 255;
							}
						}
						if(destPremultiplied) {
							if((sourcePixel & 255) == 0) {
								if(sourcePixel != 0) {
									sourcePixel = 0;
								}
							} else if((sourcePixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[sourcePixel & 255];
								sourcePixel = ((sourcePixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((sourcePixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((sourcePixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255;
							}
						}
						switch(destFormat) {
						case 0:
							destData[destPosition] = sourcePixel >>> 24 & 255;
							destData[destPosition + 1] = sourcePixel >>> 16 & 255;
							destData[destPosition + 2] = sourcePixel >>> 8 & 255;
							destData[destPosition + 3] = sourcePixel & 255;
							break;
						case 1:
							destData[destPosition] = sourcePixel & 255;
							destData[destPosition + 1] = sourcePixel >>> 24 & 255;
							destData[destPosition + 2] = sourcePixel >>> 16 & 255;
							destData[destPosition + 3] = sourcePixel >>> 8 & 255;
							break;
						case 2:
							destData[destPosition] = sourcePixel >>> 8 & 255;
							destData[destPosition + 1] = sourcePixel >>> 16 & 255;
							destData[destPosition + 2] = sourcePixel >>> 24 & 255;
							destData[destPosition + 3] = sourcePixel & 255;
							break;
						}
						sourcePosition += 4;
						destPosition += 4;
					}
				}
			}
		} else {
			if(alphaPoint == null) {
				alphaPoint = new (lime_math_Vector2().default)();
			}
			var alphaData = alphaImage.buffer.data;
			var alphaFormat = alphaImage.buffer.format;
			var alphaPosition;
			var alphaPixel;
			var alphaView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(alphaImage,new (lime_math_Rectangle().default)(alphaPoint.x,alphaPoint.y,alphaImage.width,alphaImage.height));
			alphaView.offset(sourceView.x,sourceView.y);
			destView.clip((Std().default)["int"](destPoint.x),(Std().default)["int"](destPoint.y),alphaView.width,alphaView.height);
			if(blend) {
				var _g13 = 0;
				var _g6 = destView.height;
				while(_g13 < _g6) {
					var y3 = _g13++;
					sourcePosition = sourceView.row(y3);
					destPosition = destView.row(y3);
					alphaPosition = alphaView.row(y3);
					var _g32 = 0;
					var _g22 = destView.width;
					while(_g32 < _g22) {
						var x2 = _g32++;
						switch(sourceFormat) {
						case 0:
							sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
							break;
						case 1:
							sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255;
							break;
						case 2:
							sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
							break;
						}
						if(sourcePremultiplied) {
							if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (sourcePixel & 255);
								sourcePixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | sourcePixel & 255 & 255;
							}
						}
						switch(destFormat) {
						case 0:
							destPixel = (destData[destPosition] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition + 2] & 255) << 8 | destData[destPosition + 3] & 255;
							break;
						case 1:
							destPixel = (destData[destPosition + 1] & 255) << 24 | (destData[destPosition + 2] & 255) << 16 | (destData[destPosition + 3] & 255) << 8 | destData[destPosition] & 255;
							break;
						case 2:
							destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255;
							break;
						}
						if(destPremultiplied) {
							if((destPixel & 255) != 0 && (destPixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (destPixel & 255);
								destPixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | destPixel & 255 & 255;
							}
						}
						switch(alphaFormat) {
						case 0:
							alphaPixel = (alphaData[alphaPosition] & 255) << 24 | (alphaData[alphaPosition + 1] & 255) << 16 | (alphaData[alphaPosition + 2] & 255) << 8 | alphaData[alphaPosition + 3] & 255;
							break;
						case 1:
							alphaPixel = (alphaData[alphaPosition + 1] & 255) << 24 | (alphaData[alphaPosition + 2] & 255) << 16 | (alphaData[alphaPosition + 3] & 255) << 8 | alphaData[alphaPosition] & 255;
							break;
						case 2:
							alphaPixel = (alphaData[alphaPosition + 2] & 255) << 24 | (alphaData[alphaPosition + 1] & 255) << 16 | (alphaData[alphaPosition] & 255) << 8 | alphaData[alphaPosition + 3] & 255;
							break;
						}
						sourceAlpha = (alphaPixel & 255) / 255.0 * ((sourcePixel & 255) / 255.0);
						if(sourceAlpha > 0) {
							destAlpha = (destPixel & 255) / 255.0;
							oneMinusSourceAlpha = 1 - sourceAlpha;
							blendAlpha = sourceAlpha + destAlpha * oneMinusSourceAlpha;
							var value4 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round(((sourcePixel >>> 24 & 255) * sourceAlpha + (destPixel >>> 24 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)];
							destPixel = (value4 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
							var value5 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round(((sourcePixel >>> 16 & 255) * sourceAlpha + (destPixel >>> 16 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)];
							destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value5 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
							var value6 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round(((sourcePixel >>> 8 & 255) * sourceAlpha + (destPixel >>> 8 & 255) * destAlpha * oneMinusSourceAlpha) / blendAlpha)];
							destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value6 & 255) << 8 | destPixel & 255 & 255;
							var value7 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round(blendAlpha * 255.0)];
							destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value7 & 255;
							if(destPremultiplied) {
								if((destPixel & 255) == 0) {
									if(destPixel != 0) {
										destPixel = 0;
									}
								} else if((destPixel & 255) != 255) {
									(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[destPixel & 255];
									destPixel = ((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
								}
							}
							switch(destFormat) {
							case 0:
								destData[destPosition] = destPixel >>> 24 & 255;
								destData[destPosition + 1] = destPixel >>> 16 & 255;
								destData[destPosition + 2] = destPixel >>> 8 & 255;
								destData[destPosition + 3] = destPixel & 255;
								break;
							case 1:
								destData[destPosition] = destPixel & 255;
								destData[destPosition + 1] = destPixel >>> 24 & 255;
								destData[destPosition + 2] = destPixel >>> 16 & 255;
								destData[destPosition + 3] = destPixel >>> 8 & 255;
								break;
							case 2:
								destData[destPosition] = destPixel >>> 8 & 255;
								destData[destPosition + 1] = destPixel >>> 16 & 255;
								destData[destPosition + 2] = destPixel >>> 24 & 255;
								destData[destPosition + 3] = destPixel & 255;
								break;
							}
						}
						sourcePosition += 4;
						destPosition += 4;
						alphaPosition += 4;
					}
				}
			} else {
				var _g14 = 0;
				var _g7 = destView.height;
				while(_g14 < _g7) {
					var y4 = _g14++;
					sourcePosition = sourceView.row(y4);
					destPosition = destView.row(y4);
					alphaPosition = alphaView.row(y4);
					var _g33 = 0;
					var _g23 = destView.width;
					while(_g33 < _g23) {
						var x3 = _g33++;
						switch(sourceFormat) {
						case 0:
							sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
							break;
						case 1:
							sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255;
							break;
						case 2:
							sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
							break;
						}
						if(sourcePremultiplied) {
							if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (sourcePixel & 255);
								sourcePixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | sourcePixel & 255 & 255;
							}
						}
						switch(alphaFormat) {
						case 0:
							alphaPixel = (alphaData[alphaPosition] & 255) << 24 | (alphaData[alphaPosition + 1] & 255) << 16 | (alphaData[alphaPosition + 2] & 255) << 8 | alphaData[alphaPosition + 3] & 255;
							break;
						case 1:
							alphaPixel = (alphaData[alphaPosition + 1] & 255) << 24 | (alphaData[alphaPosition + 2] & 255) << 16 | (alphaData[alphaPosition + 3] & 255) << 8 | alphaData[alphaPosition] & 255;
							break;
						case 2:
							alphaPixel = (alphaData[alphaPosition + 2] & 255) << 24 | (alphaData[alphaPosition + 1] & 255) << 16 | (alphaData[alphaPosition] & 255) << 8 | alphaData[alphaPosition + 3] & 255;
							break;
						}
						var value8 = Math.round((sourcePixel & 255) * ((alphaPixel & 255) / 255));
						sourcePixel = (sourcePixel >>> 24 & 255 & 255) << 24 | (sourcePixel >>> 16 & 255 & 255) << 16 | (sourcePixel >>> 8 & 255 & 255) << 8 | value8 & 255;
						if(destPremultiplied) {
							if((sourcePixel & 255) == 0) {
								if(sourcePixel != 0) {
									sourcePixel = 0;
								}
							} else if((sourcePixel & 255) != 255) {
								(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[sourcePixel & 255];
								sourcePixel = ((sourcePixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((sourcePixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((sourcePixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | sourcePixel & 255 & 255;
							}
						}
						switch(destFormat) {
						case 0:
							destData[destPosition] = sourcePixel >>> 24 & 255;
							destData[destPosition + 1] = sourcePixel >>> 16 & 255;
							destData[destPosition + 2] = sourcePixel >>> 8 & 255;
							destData[destPosition + 3] = sourcePixel & 255;
							break;
						case 1:
							destData[destPosition] = sourcePixel & 255;
							destData[destPosition + 1] = sourcePixel >>> 24 & 255;
							destData[destPosition + 2] = sourcePixel >>> 16 & 255;
							destData[destPosition + 3] = sourcePixel >>> 8 & 255;
							break;
						case 2:
							destData[destPosition] = sourcePixel >>> 8 & 255;
							destData[destPosition + 1] = sourcePixel >>> 16 & 255;
							destData[destPosition + 2] = sourcePixel >>> 24 & 255;
							destData[destPosition + 3] = sourcePixel & 255;
							break;
						}
						sourcePosition += 4;
						destPosition += 4;
						alphaPosition += 4;
					}
				}
			}
		}
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.fillRect = function(image,rect,color,format) {
	var fillColor;
	switch(format) {
	case 1:
		var argb = color;
		var this1 = 0;
		var rgba = this1;
		rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255;
		fillColor = rgba;
		break;
	case 2:
		var bgra = color;
		var this2 = 0;
		var rgba1 = this2;
		rgba1 = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
		fillColor = rgba1;
		break;
	default:
		fillColor = color;
	}
	if(!image.get_transparent()) {
		fillColor = (fillColor >>> 24 & 255 & 255) << 24 | (fillColor >>> 16 & 255 & 255) << 16 | (fillColor >>> 8 & 255 & 255) << 8 | 255;
	}
	var data = image.buffer.data;
	if(data == null) {
		return;
	}
	var format1 = image.buffer.format;
	var premultiplied = image.buffer.premultiplied;
	if(premultiplied) {
		if((fillColor & 255) == 0) {
			if(fillColor != 0) {
				fillColor = 0;
			}
		} else if((fillColor & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[fillColor & 255];
			fillColor = ((fillColor >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | fillColor & 255 & 255;
		}
	}
	var dataView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(image,rect);
	var row;
	var _g1 = 0;
	var _g = dataView.height;
	while(_g1 < _g) {
		var y = _g1++;
		row = dataView.row(y);
		var _g3 = 0;
		var _g2 = dataView.width;
		while(_g3 < _g2) {
			var x = _g3++;
			var offset = row + x * 4;
			switch(format1) {
			case 0:
				data[offset] = fillColor >>> 24 & 255;
				data[offset + 1] = fillColor >>> 16 & 255;
				data[offset + 2] = fillColor >>> 8 & 255;
				data[offset + 3] = fillColor & 255;
				break;
			case 1:
				data[offset] = fillColor & 255;
				data[offset + 1] = fillColor >>> 24 & 255;
				data[offset + 2] = fillColor >>> 16 & 255;
				data[offset + 3] = fillColor >>> 8 & 255;
				break;
			case 2:
				data[offset] = fillColor >>> 8 & 255;
				data[offset + 1] = fillColor >>> 16 & 255;
				data[offset + 2] = fillColor >>> 24 & 255;
				data[offset + 3] = fillColor & 255;
				break;
			}
		}
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.floodFill = function(image,x,y,color,format) {
	var data = image.buffer.data;
	if(data == null) {
		return;
	}
	if(format == 1) {
		color = (color & 16777215) << 8 | color >> 24 & 255;
	}
	var format1 = image.buffer.format;
	var premultiplied = image.buffer.premultiplied;
	var fillColor = color;
	var hitColor;
	var offset = (y + image.offsetY) * (image.buffer.width * 4) + (x + image.offsetX) * 4;
	switch(format1) {
	case 0:
		hitColor = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
		break;
	case 1:
		hitColor = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
		break;
	case 2:
		hitColor = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
		break;
	}
	if(premultiplied) {
		if((hitColor & 255) != 0 && (hitColor & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (hitColor & 255);
			hitColor = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((hitColor >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((hitColor >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((hitColor >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | hitColor & 255 & 255;
		}
	}
	if(!image.get_transparent()) {
		fillColor = (fillColor >>> 24 & 255 & 255) << 24 | (fillColor >>> 16 & 255 & 255) << 16 | (fillColor >>> 8 & 255 & 255) << 8 | 255;
		hitColor = (hitColor >>> 24 & 255 & 255) << 24 | (hitColor >>> 16 & 255 & 255) << 16 | (hitColor >>> 8 & 255 & 255) << 8 | 255;
	}
	if(fillColor == hitColor) {
		return;
	}
	if(premultiplied) {
		if((fillColor & 255) == 0) {
			if(fillColor != 0) {
				fillColor = 0;
			}
		} else if((fillColor & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[fillColor & 255];
			fillColor = ((fillColor >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((fillColor >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((fillColor >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | fillColor & 255 & 255;
		}
	}
	var dx = [0,-1,1,0];
	var dy = [-1,0,0,1];
	var minX = -image.offsetX;
	var minY = -image.offsetY;
	var maxX = minX + image.width;
	var maxY = minY + image.height;
	var queue = [];
	queue.push(x);
	queue.push(y);
	var curPointX;
	var curPointY;
	var nextPointX;
	var nextPointY;
	var nextPointOffset;
	var readColor;
	while(queue.length > 0) {
		curPointY = queue.pop();
		curPointX = queue.pop();
		var _g = 0;
		while(_g < 4) {
			var i = _g++;
			nextPointX = curPointX + dx[i];
			nextPointY = curPointY + dy[i];
			if(nextPointX < minX || nextPointY < minY || nextPointX >= maxX || nextPointY >= maxY) {
				continue;
			}
			nextPointOffset = (nextPointY * image.width + nextPointX) * 4;
			switch(format1) {
			case 0:
				readColor = (data[nextPointOffset] & 255) << 24 | (data[nextPointOffset + 1] & 255) << 16 | (data[nextPointOffset + 2] & 255) << 8 | data[nextPointOffset + 3] & 255;
				break;
			case 1:
				readColor = (data[nextPointOffset + 1] & 255) << 24 | (data[nextPointOffset + 2] & 255) << 16 | (data[nextPointOffset + 3] & 255) << 8 | data[nextPointOffset] & 255;
				break;
			case 2:
				readColor = (data[nextPointOffset + 2] & 255) << 24 | (data[nextPointOffset + 1] & 255) << 16 | (data[nextPointOffset] & 255) << 8 | data[nextPointOffset + 3] & 255;
				break;
			}
			if(premultiplied) {
				if((readColor & 255) != 0 && (readColor & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (readColor & 255);
					readColor = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((readColor >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((readColor >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((readColor >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | readColor & 255 & 255;
				}
			}
			if(readColor == hitColor) {
				switch(format1) {
				case 0:
					data[nextPointOffset] = fillColor >>> 24 & 255;
					data[nextPointOffset + 1] = fillColor >>> 16 & 255;
					data[nextPointOffset + 2] = fillColor >>> 8 & 255;
					data[nextPointOffset + 3] = fillColor & 255;
					break;
				case 1:
					data[nextPointOffset] = fillColor & 255;
					data[nextPointOffset + 1] = fillColor >>> 24 & 255;
					data[nextPointOffset + 2] = fillColor >>> 16 & 255;
					data[nextPointOffset + 3] = fillColor >>> 8 & 255;
					break;
				case 2:
					data[nextPointOffset] = fillColor >>> 8 & 255;
					data[nextPointOffset + 1] = fillColor >>> 16 & 255;
					data[nextPointOffset + 2] = fillColor >>> 24 & 255;
					data[nextPointOffset + 3] = fillColor & 255;
					break;
				}
				queue.push(nextPointX);
				queue.push(nextPointY);
			}
		}
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.gaussianBlur = function(image,sourceImage,sourceRect,destPoint,blurX,blurY,quality,strength) {
	if(strength == null) {
		strength = 1;
	}
	if(quality == null) {
		quality = 1;
	}
	if(blurY == null) {
		blurY = 4;
	}
	if(blurX == null) {
		blurX = 4;
	}
	var fromPreMult;
	if(image.buffer.premultiplied || sourceImage.buffer.premultiplied) {
		fromPreMult = function(col,alpha) {
			var col1 = (Std().default)["int"](col);
			if(col1 < 0) {
				return 0;
			} else if(col1 > 255) {
				return 255;
			} else {
				return col1;
			}
		};
	} else {
		fromPreMult = function(col2,alpha1) {
			var col3 = (Std().default)["int"](col2 / alpha1 * 255);
			if(col3 < 0) {
				return 0;
			} else if(col3 > 255) {
				return 255;
			} else {
				return col3;
			}
		};
	}
	var boxesForGauss = function(sigma,n) {
		var wIdeal = Math.sqrt(12 * sigma * sigma / n + 1);
		var wl = Math.floor(wIdeal);
		if(wl % 2 == 0) {
			--wl;
		}
		var wu = wl + 2;
		var mIdeal = (12 * sigma * sigma - n * wl * wl - 4 * n * wl - 3 * n) / (-4 * wl - 4);
		var m = Math.round(mIdeal);
		var sizes = [];
		var _g1 = 0;
		var _g = n;
		while(_g1 < _g) {
			var i = _g1++;
			sizes.push(i < m ? wl : wu);
		}
		return sizes;
	};
	var boxBlurH = function(imgA,imgB,w,h,r,off) {
		var iarr = 1 / (r + r + 1);
		var _g11 = 0;
		var _g2 = h;
		while(_g11 < _g2) {
			var i1 = _g11++;
			var ti = i1 * w;
			var li = ti;
			var ri = ti + r;
			var fv = imgA[ti * 4 + off];
			var lv = imgA[(ti + w - 1) * 4 + off];
			var val = (r + 1) * fv;
			var _g3 = 0;
			var _g21 = r;
			while(_g3 < _g21) {
				var j = _g3++;
				val = val + imgA[(ti + j) * 4 + off];
			}
			var _g31 = 0;
			var _g22 = r + 1;
			while(_g31 < _g22) {
				var j1 = _g31++;
				val = val + (imgA[ri * 4 + off] - fv);
				imgB[ti * 4 + off] = Math.round((_$UInt_UInt_$Impl_$().default).toFloat(val) * iarr);
				++ri;
				++ti;
			}
			var _g32 = r + 1;
			var _g23 = w - r;
			while(_g32 < _g23) {
				var j2 = _g32++;
				val = val + (imgA[ri * 4 + off] - imgA[li * 4 + off]);
				imgB[ti * 4 + off] = Math.round((_$UInt_UInt_$Impl_$().default).toFloat(val) * iarr);
				++ri;
				++li;
				++ti;
			}
			var _g33 = w - r;
			var _g24 = w;
			while(_g33 < _g24) {
				var j3 = _g33++;
				val = val + (lv - imgA[li * 4 + off]);
				imgB[ti * 4 + off] = Math.round((_$UInt_UInt_$Impl_$().default).toFloat(val) * iarr);
				++li;
				++ti;
			}
		}
	};
	var boxBlurT = function(imgA1,imgB1,w1,h1,r1,off1) {
		var iarr1 = 1 / (r1 + r1 + 1);
		var ws = w1 * 4;
		var _g12 = 0;
		var _g4 = w1;
		while(_g12 < _g4) {
			var i2 = _g12++;
			var ti1 = i2 * 4 + off1;
			var li1 = ti1;
			var ri1 = ti1 + r1 * ws;
			var fv1 = imgA1[ti1];
			var lv1 = imgA1[ti1 + ws * (h1 - 1)];
			var val1 = (r1 + 1) * fv1;
			var _g34 = 0;
			var _g25 = r1;
			while(_g34 < _g25) {
				var j4 = _g34++;
				val1 = val1 + imgA1[ti1 + j4 * ws];
			}
			var _g35 = 0;
			var _g26 = r1 + 1;
			while(_g35 < _g26) {
				var j5 = _g35++;
				val1 = val1 + (imgA1[ri1] - fv1);
				imgB1[ti1] = Math.round((_$UInt_UInt_$Impl_$().default).toFloat(val1) * iarr1);
				ri1 += ws;
				ti1 += ws;
			}
			var _g36 = r1 + 1;
			var _g27 = h1 - r1;
			while(_g36 < _g27) {
				var j6 = _g36++;
				val1 = val1 + (imgA1[ri1] - imgA1[li1]);
				imgB1[ti1] = Math.round((_$UInt_UInt_$Impl_$().default).toFloat(val1) * iarr1);
				li1 += ws;
				ri1 += ws;
				ti1 += ws;
			}
			var _g37 = h1 - r1;
			var _g28 = h1;
			while(_g37 < _g28) {
				var j7 = _g37++;
				val1 = val1 + (lv1 - imgA1[li1]);
				imgB1[ti1] = Math.round((_$UInt_UInt_$Impl_$().default).toFloat(val1) * iarr1);
				li1 += ws;
				ti1 += ws;
			}
		}
	};
	var boxBlur = function(imgA2,imgB2,w2,h2,bx,by) {
		var _g13 = 0;
		var _g5 = imgA2.length;
		while(_g13 < _g5) {
			var i3 = _g13++;
			imgB2[i3] = imgA2[i3];
		}
		var boxBlur1 = (Std().default)["int"](bx);
		boxBlurH(imgB2,imgA2,w2,h2,boxBlur1,0);
		var boxBlur2 = (Std().default)["int"](bx);
		boxBlurH(imgB2,imgA2,w2,h2,boxBlur2,1);
		var boxBlur3 = (Std().default)["int"](bx);
		boxBlurH(imgB2,imgA2,w2,h2,boxBlur3,2);
		var boxBlur4 = (Std().default)["int"](bx);
		boxBlurH(imgB2,imgA2,w2,h2,boxBlur4,3);
		var boxBlur5 = (Std().default)["int"](by);
		boxBlurT(imgA2,imgB2,w2,h2,boxBlur5,0);
		var boxBlur6 = (Std().default)["int"](by);
		boxBlurT(imgA2,imgB2,w2,h2,boxBlur6,1);
		var boxBlur7 = (Std().default)["int"](by);
		boxBlurT(imgA2,imgB2,w2,h2,boxBlur7,2);
		var boxBlur8 = (Std().default)["int"](by);
		boxBlurT(imgA2,imgB2,w2,h2,boxBlur8,3);
	};
	var imgB3 = image.get_data();
	var imgA3 = sourceImage.get_data();
	var w3 = (Std().default)["int"](sourceRect.width);
	var h3 = (Std().default)["int"](sourceRect.height);
	var bx1 = (Std().default)["int"](blurX);
	var by1 = (Std().default)["int"](blurY);
	var oX = (Std().default)["int"](destPoint.x);
	var oY = (Std().default)["int"](destPoint.y);
	var n1 = quality * 2 - 1;
	var rng = Math.pow(2,quality) * 0.125;
	var bxs = boxesForGauss(bx1 * rng,n1);
	var bys = boxesForGauss(by1 * rng,n1);
	var offset = (Std().default)["int"]((w3 * oY + oX) * 4);
	boxBlur(imgA3,imgB3,w3,h3,(bxs[0] - 1) / 2,(bys[0] - 1) / 2);
	var bIndex = 1;
	var _g14 = 0;
	var _g6 = (Std().default)["int"](n1 / 2);
	while(_g14 < _g6) {
		var i4 = _g14++;
		boxBlur(imgB3,imgA3,w3,h3,(bxs[bIndex] - 1) / 2,(bys[bIndex] - 1) / 2);
		boxBlur(imgA3,imgB3,w3,h3,(bxs[bIndex + 1] - 1) / 2,(bys[bIndex + 1] - 1) / 2);
		bIndex += 2;
	}
	var x;
	var y;
	if(offset <= 0) {
		y = 0;
		while(y < h3) {
			x = 0;
			while(x < w3) {
				ImageDataUtil.translatePixel(imgB3,sourceImage.get_rect(),image.get_rect(),destPoint,x,y,strength,fromPreMult);
				++x;
			}
			++y;
		}
	} else {
		y = h3 - 1;
		while(y >= 0) {
			x = w3 - 1;
			while(x >= 0) {
				ImageDataUtil.translatePixel(imgB3,sourceImage.get_rect(),image.get_rect(),destPoint,x,y,strength,fromPreMult);
				--x;
			}
			--y;
		}
	}
	image.dirty = true;
	image.version++;
	sourceImage.dirty = true;
	sourceImage.version++;
	if(imgB3 == image.get_data()) {
		return image;
	}
	return sourceImage;
}
ImageDataUtil.calculateSourceOffset = function(sourceRect,destPoint,destX,destY) {
	var sourceX = destX - (Std().default)["int"](destPoint.x);
	var sourceY = destY - (Std().default)["int"](destPoint.y);
	if(sourceX < 0 || sourceY < 0 || sourceX >= sourceRect.width || sourceY >= sourceRect.height) {
		return -1;
	} else {
		return 4 * (sourceY * (Std().default)["int"](sourceRect.width) + sourceX);
	}
}
ImageDataUtil.translatePixel = function(imgB,sourceRect,destRect,destPoint,destX,destY,strength,fromPreMult) {
	var d = 4 * (destY * (Std().default)["int"](destRect.width) + destX);
	var s = ImageDataUtil.calculateSourceOffset(sourceRect,destPoint,destX,destY);
	var a = s >= 0 ? (Std().default)["int"]((_$UInt_UInt_$Impl_$().default).toFloat(imgB[s + 3]) * strength) : 0;
	if(a < 0) {
		a = 0;
	} else if(a > 255) {
		a = 255;
	} else {
		a = a;
	}
	imgB[d] = s >= 0 ? fromPreMult((_$UInt_UInt_$Impl_$().default).toFloat(imgB[s]),a) : 0;
	imgB[d + 1] = s >= 0 ? fromPreMult((_$UInt_UInt_$Impl_$().default).toFloat(imgB[s + 1]),a) : 0;
	imgB[d + 2] = s >= 0 ? fromPreMult((_$UInt_UInt_$Impl_$().default).toFloat(imgB[s + 2]),a) : 0;
	imgB[d + 3] = a;
}
ImageDataUtil.getColorBoundsRect = function(image,mask,color,findColor,format) {
	var left = image.width + 1;
	var right = 0;
	var top = image.height + 1;
	var bottom = 0;
	var _color;
	var _mask;
	switch(format) {
	case 1:
		var argb = color;
		var this1 = 0;
		var rgba = this1;
		rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255;
		_color = rgba;
		var argb1 = mask;
		var this2 = 0;
		var rgba1 = this2;
		rgba1 = (argb1 >>> 16 & 255 & 255) << 24 | (argb1 >>> 8 & 255 & 255) << 16 | (argb1 & 255 & 255) << 8 | argb1 >>> 24 & 255 & 255;
		_mask = rgba1;
		break;
	case 2:
		var bgra = color;
		var this3 = 0;
		var rgba2 = this3;
		rgba2 = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
		_color = rgba2;
		var bgra1 = mask;
		var this4 = 0;
		var rgba3 = this4;
		rgba3 = (bgra1 >>> 8 & 255 & 255) << 24 | (bgra1 >>> 16 & 255 & 255) << 16 | (bgra1 >>> 24 & 255 & 255) << 8 | bgra1 & 255 & 255;
		_mask = rgba3;
		break;
	default:
		_color = color;
		_mask = mask;
	}
	if(!image.get_transparent()) {
		_color = (_color >>> 24 & 255 & 255) << 24 | (_color >>> 16 & 255 & 255) << 16 | (_color >>> 8 & 255 & 255) << 8 | 255;
		_mask = (_mask >>> 24 & 255 & 255) << 24 | (_mask >>> 16 & 255 & 255) << 16 | (_mask >>> 8 & 255 & 255) << 8 | 255;
	}
	var pixel;
	var hit;
	var _g1 = 0;
	var _g = image.width;
	while(_g1 < _g) {
		var x = _g1++;
		hit = false;
		var _g3 = 0;
		var _g2 = image.height;
		while(_g3 < _g2) {
			var y = _g3++;
			pixel = image.getPixel32(x,y,0);
			if(findColor) {
				hit = (pixel & _mask) == _color;
			} else {
				hit = (pixel & _mask) != _color;
			}
			if(hit) {
				if(x < left) {
					left = x;
				}
				break;
			}
		}
		if(hit) {
			break;
		}
	}
	var ix;
	var _g11 = 0;
	var _g4 = image.width;
	while(_g11 < _g4) {
		var x1 = _g11++;
		ix = image.width - 1 - x1;
		hit = false;
		var _g31 = 0;
		var _g21 = image.height;
		while(_g31 < _g21) {
			var y1 = _g31++;
			pixel = image.getPixel32(ix,y1,0);
			if(findColor) {
				hit = (pixel & _mask) == _color;
			} else {
				hit = (pixel & _mask) != _color;
			}
			if(hit) {
				if(ix > right) {
					right = ix;
				}
				break;
			}
		}
		if(hit) {
			break;
		}
	}
	var _g12 = 0;
	var _g5 = image.height;
	while(_g12 < _g5) {
		var y2 = _g12++;
		hit = false;
		var _g32 = 0;
		var _g22 = image.width;
		while(_g32 < _g22) {
			var x2 = _g32++;
			pixel = image.getPixel32(x2,y2,0);
			if(findColor) {
				hit = (pixel & _mask) == _color;
			} else {
				hit = (pixel & _mask) != _color;
			}
			if(hit) {
				if(y2 < top) {
					top = y2;
				}
				break;
			}
		}
		if(hit) {
			break;
		}
	}
	var iy;
	var _g13 = 0;
	var _g6 = image.height;
	while(_g13 < _g6) {
		var y3 = _g13++;
		iy = image.height - 1 - y3;
		hit = false;
		var _g33 = 0;
		var _g23 = image.width;
		while(_g33 < _g23) {
			var x3 = _g33++;
			pixel = image.getPixel32(x3,iy,0);
			if(findColor) {
				hit = (pixel & _mask) == _color;
			} else {
				hit = (pixel & _mask) != _color;
			}
			if(hit) {
				if(iy > bottom) {
					bottom = iy;
				}
				break;
			}
		}
		if(hit) {
			break;
		}
	}
	var w = right - left;
	var h = bottom - top;
	if(w > 0) {
		++w;
	}
	if(h > 0) {
		++h;
	}
	if(w < 0) {
		w = 0;
	}
	if(h < 0) {
		h = 0;
	}
	if(left == right) {
		w = 1;
	}
	if(top == bottom) {
		h = 1;
	}
	if(left > image.width) {
		left = 0;
	}
	if(top > image.height) {
		top = 0;
	}
	return new (lime_math_Rectangle().default)(left,top,w,h);
}
ImageDataUtil.getPixel = function(image,x,y,format) {
	var pixel;
	var data = image.buffer.data;
	var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
	var premultiplied = image.buffer.premultiplied;
	switch(image.buffer.format) {
	case 0:
		pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
		break;
	case 1:
		pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
		break;
	case 2:
		pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
		break;
	}
	if(premultiplied) {
		if((pixel & 255) != 0 && (pixel & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (pixel & 255);
			pixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | pixel & 255 & 255;
		}
	}
	pixel = (pixel >>> 24 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 8 & 255 & 255) << 8 | 0;
	switch(format) {
	case 1:
		var this1 = 0;
		var argb = this1;
		argb = (pixel & 255 & 255) << 24 | (pixel >>> 24 & 255 & 255) << 16 | (pixel >>> 16 & 255 & 255) << 8 | pixel >>> 8 & 255 & 255;
		return argb;
	case 2:
		var this2 = 0;
		var bgra = this2;
		bgra = (pixel >>> 8 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 24 & 255 & 255) << 8 | pixel & 255 & 255;
		return bgra;
	default:
		return pixel;
	}
}
ImageDataUtil.getPixel32 = function(image,x,y,format) {
	var pixel;
	var data = image.buffer.data;
	var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
	var premultiplied = image.buffer.premultiplied;
	switch(image.buffer.format) {
	case 0:
		pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
		break;
	case 1:
		pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
		break;
	case 2:
		pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
		break;
	}
	if(premultiplied) {
		if((pixel & 255) != 0 && (pixel & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (pixel & 255);
			pixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | pixel & 255 & 255;
		}
	}
	switch(format) {
	case 1:
		var this1 = 0;
		var argb = this1;
		argb = (pixel & 255 & 255) << 24 | (pixel >>> 24 & 255 & 255) << 16 | (pixel >>> 16 & 255 & 255) << 8 | pixel >>> 8 & 255 & 255;
		return argb;
	case 2:
		var this2 = 0;
		var bgra = this2;
		bgra = (pixel >>> 8 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 24 & 255 & 255) << 8 | pixel & 255 & 255;
		return bgra;
	default:
		return pixel;
	}
}
ImageDataUtil.getPixels = function(image,rect,format) {
	if(image.buffer.data == null) {
		return null;
	}
	var length = (Std().default)["int"](rect.width * rect.height);
	var bytes = (haxe_io_Bytes().default).alloc(length * 4);
	var data = image.buffer.data;
	var sourceFormat = image.buffer.format;
	var premultiplied = image.buffer.premultiplied;
	var dataView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(image,rect);
	var position;
	var argb;
	var bgra;
	var pixel;
	var destPosition = 0;
	var _g1 = 0;
	var _g = dataView.height;
	while(_g1 < _g) {
		var y = _g1++;
		position = dataView.row(y);
		var _g3 = 0;
		var _g2 = dataView.width;
		while(_g3 < _g2) {
			var x = _g3++;
			switch(sourceFormat) {
			case 0:
				pixel = (data[position] & 255) << 24 | (data[position + 1] & 255) << 16 | (data[position + 2] & 255) << 8 | data[position + 3] & 255;
				break;
			case 1:
				pixel = (data[position + 1] & 255) << 24 | (data[position + 2] & 255) << 16 | (data[position + 3] & 255) << 8 | data[position] & 255;
				break;
			case 2:
				pixel = (data[position + 2] & 255) << 24 | (data[position + 1] & 255) << 16 | (data[position] & 255) << 8 | data[position + 3] & 255;
				break;
			}
			if(premultiplied) {
				if((pixel & 255) != 0 && (pixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (pixel & 255);
					pixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | pixel & 255 & 255;
				}
			}
			switch(format) {
			case 1:
				var this1 = 0;
				var argb1 = this1;
				argb1 = (pixel & 255 & 255) << 24 | (pixel >>> 24 & 255 & 255) << 16 | (pixel >>> 16 & 255 & 255) << 8 | pixel >>> 8 & 255 & 255;
				argb = argb1;
				pixel = argb;
				break;
			case 2:
				var this2 = 0;
				var bgra1 = this2;
				bgra1 = (pixel >>> 8 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 24 & 255 & 255) << 8 | pixel & 255 & 255;
				bgra = bgra1;
				pixel = bgra;
				break;
			default:
			}
			bytes.set(destPosition++,pixel >>> 24 & 255);
			bytes.set(destPosition++,pixel >>> 16 & 255);
			bytes.set(destPosition++,pixel >>> 8 & 255);
			bytes.set(destPosition++,pixel & 255);
			position += 4;
		}
	}
	return bytes;
}
ImageDataUtil.merge = function(image,sourceImage,sourceRect,destPoint,redMultiplier,greenMultiplier,blueMultiplier,alphaMultiplier) {
	if(image.buffer.data == null || sourceImage.buffer.data == null) {
		return;
	}
	var sourceView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(sourceImage,sourceRect);
	var destView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(image,new (lime_math_Rectangle().default)(destPoint.x,destPoint.y,sourceView.width,sourceView.height));
	var sourceData = sourceImage.buffer.data;
	var destData = image.buffer.data;
	var sourceFormat = sourceImage.buffer.format;
	var destFormat = image.buffer.format;
	var sourcePremultiplied = sourceImage.buffer.premultiplied;
	var destPremultiplied = image.buffer.premultiplied;
	var sourcePosition;
	var destPosition;
	var sourcePixel;
	var destPixel;
	var _g1 = 0;
	var _g = destView.height;
	while(_g1 < _g) {
		var y = _g1++;
		sourcePosition = sourceView.row(y);
		destPosition = destView.row(y);
		var _g3 = 0;
		var _g2 = destView.width;
		while(_g3 < _g2) {
			var x = _g3++;
			switch(sourceFormat) {
			case 0:
				sourcePixel = (sourceData[sourcePosition] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition + 2] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
				break;
			case 1:
				sourcePixel = (sourceData[sourcePosition + 1] & 255) << 24 | (sourceData[sourcePosition + 2] & 255) << 16 | (sourceData[sourcePosition + 3] & 255) << 8 | sourceData[sourcePosition] & 255;
				break;
			case 2:
				sourcePixel = (sourceData[sourcePosition + 2] & 255) << 24 | (sourceData[sourcePosition + 1] & 255) << 16 | (sourceData[sourcePosition] & 255) << 8 | sourceData[sourcePosition + 3] & 255;
				break;
			}
			if(sourcePremultiplied) {
				if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (sourcePixel & 255);
					sourcePixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | sourcePixel & 255 & 255;
				}
			}
			switch(destFormat) {
			case 0:
				destPixel = (destData[destPosition] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition + 2] & 255) << 8 | destData[destPosition + 3] & 255;
				break;
			case 1:
				destPixel = (destData[destPosition + 1] & 255) << 24 | (destData[destPosition + 2] & 255) << 16 | (destData[destPosition + 3] & 255) << 8 | destData[destPosition] & 255;
				break;
			case 2:
				destPixel = (destData[destPosition + 2] & 255) << 24 | (destData[destPosition + 1] & 255) << 16 | (destData[destPosition] & 255) << 8 | destData[destPosition + 3] & 255;
				break;
			}
			if(destPremultiplied) {
				if((destPixel & 255) != 0 && (destPixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (destPixel & 255);
					destPixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | destPixel & 255 & 255;
				}
			}
			var value = (Std().default)["int"](((sourcePixel >>> 24 & 255) * redMultiplier + (destPixel >>> 24 & 255) * (256 - redMultiplier)) / 256);
			destPixel = (value & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
			var value1 = (Std().default)["int"](((sourcePixel >>> 16 & 255) * greenMultiplier + (destPixel >>> 16 & 255) * (256 - greenMultiplier)) / 256);
			destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
			var value2 = (Std().default)["int"](((sourcePixel >>> 8 & 255) * blueMultiplier + (destPixel >>> 8 & 255) * (256 - blueMultiplier)) / 256);
			destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255;
			var value3 = (Std().default)["int"](((sourcePixel & 255) * alphaMultiplier + (destPixel & 255) * (256 - alphaMultiplier)) / 256);
			destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255;
			if(destPremultiplied) {
				if((destPixel & 255) == 0) {
					if(destPixel != 0) {
						destPixel = 0;
					}
				} else if((destPixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[destPixel & 255];
					destPixel = ((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
				}
			}
			switch(destFormat) {
			case 0:
				destData[destPosition] = destPixel >>> 24 & 255;
				destData[destPosition + 1] = destPixel >>> 16 & 255;
				destData[destPosition + 2] = destPixel >>> 8 & 255;
				destData[destPosition + 3] = destPixel & 255;
				break;
			case 1:
				destData[destPosition] = destPixel & 255;
				destData[destPosition + 1] = destPixel >>> 24 & 255;
				destData[destPosition + 2] = destPixel >>> 16 & 255;
				destData[destPosition + 3] = destPixel >>> 8 & 255;
				break;
			case 2:
				destData[destPosition] = destPixel >>> 8 & 255;
				destData[destPosition + 1] = destPixel >>> 16 & 255;
				destData[destPosition + 2] = destPixel >>> 24 & 255;
				destData[destPosition + 3] = destPixel & 255;
				break;
			}
			sourcePosition += 4;
			destPosition += 4;
		}
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.multiplyAlpha = function(image) {
	var data = image.buffer.data;
	if(data == null || !image.buffer.transparent) {
		return;
	}
	var format = image.buffer.format;
	var length = (Std().default)["int"](data.length / 4);
	var pixel;
	var _g1 = 0;
	var _g = length;
	while(_g1 < _g) {
		var i = _g1++;
		var offset = i * 4;
		switch(format) {
		case 0:
			pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
			break;
		case 1:
			pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
			break;
		case 2:
			pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
			break;
		}
		var offset1 = i * 4;
		if((pixel & 255) == 0) {
			if(pixel != 0) {
				pixel = 0;
			}
		} else if((pixel & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[pixel & 255];
			pixel = ((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | pixel & 255 & 255;
		}
		switch(format) {
		case 0:
			data[offset1] = pixel >>> 24 & 255;
			data[offset1 + 1] = pixel >>> 16 & 255;
			data[offset1 + 2] = pixel >>> 8 & 255;
			data[offset1 + 3] = pixel & 255;
			break;
		case 1:
			data[offset1] = pixel & 255;
			data[offset1 + 1] = pixel >>> 24 & 255;
			data[offset1 + 2] = pixel >>> 16 & 255;
			data[offset1 + 3] = pixel >>> 8 & 255;
			break;
		case 2:
			data[offset1] = pixel >>> 8 & 255;
			data[offset1 + 1] = pixel >>> 16 & 255;
			data[offset1 + 2] = pixel >>> 24 & 255;
			data[offset1 + 3] = pixel & 255;
			break;
		}
	}
	image.buffer.premultiplied = true;
	image.dirty = true;
	image.version++;
}
ImageDataUtil.resize = function(image,newWidth,newHeight) {
	var buffer = image.buffer;
	if(buffer.width == newWidth && buffer.height == newHeight) {
		return;
	}
	var elements = newWidth * newHeight * 4;
	var this1;
	if(elements != null) {
		this1 = new Uint8Array(elements);
	} else {
		this1 = null;
	}
	var newBuffer = new (lime_graphics_ImageBuffer().default)(this1,newWidth,newHeight);
	var imageWidth = image.width;
	var imageHeight = image.height;
	var data = image.get_data();
	var newData = newBuffer.data;
	var sourceIndex;
	var sourceIndexX;
	var sourceIndexY;
	var sourceIndexXY;
	var index;
	var sourceX;
	var sourceY;
	var u;
	var v;
	var uRatio;
	var vRatio;
	var uOpposite;
	var vOpposite;
	var _g1 = 0;
	var _g = newHeight;
	while(_g1 < _g) {
		var y = _g1++;
		var _g3 = 0;
		var _g2 = newWidth;
		while(_g3 < _g2) {
			var x = _g3++;
			u = (x + 0.5) / newWidth * imageWidth - 0.5;
			v = (y + 0.5) / newHeight * imageHeight - 0.5;
			sourceX = (Std().default)["int"](u);
			sourceY = (Std().default)["int"](v);
			sourceIndex = (sourceY * imageWidth + sourceX) * 4;
			if(sourceX < imageWidth - 1) {
				sourceIndexX = sourceIndex + 4;
			} else {
				sourceIndexX = sourceIndex;
			}
			if(sourceY < imageHeight - 1) {
				sourceIndexY = sourceIndex + imageWidth * 4;
			} else {
				sourceIndexY = sourceIndex;
			}
			if(sourceIndexX != sourceIndex) {
				sourceIndexXY = sourceIndexY + 4;
			} else {
				sourceIndexXY = sourceIndexY;
			}
			index = (y * newWidth + x) * 4;
			uRatio = u - sourceX;
			vRatio = v - sourceY;
			uOpposite = 1 - uRatio;
			vOpposite = 1 - vRatio;
			newData[index] = (Std().default)["int"](((_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndex]) * uOpposite + (_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexX]) * uRatio) * vOpposite + ((_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexY]) * uOpposite + (_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexXY]) * uRatio) * vRatio);
			newData[index + 1] = (Std().default)["int"](((_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndex + 1]) * uOpposite + (_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexX + 1]) * uRatio) * vOpposite + ((_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexY + 1]) * uOpposite + (_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexXY + 1]) * uRatio) * vRatio);
			newData[index + 2] = (Std().default)["int"](((_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndex + 2]) * uOpposite + (_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexX + 2]) * uRatio) * vOpposite + ((_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexY + 2]) * uOpposite + (_$UInt_UInt_$Impl_$().default).toFloat(data[sourceIndexXY + 2]) * uRatio) * vRatio);
			if(data[sourceIndexX + 3] == 0 || data[sourceIndexY + 3] == 0 || data[sourceIndexXY + 3] == 0) {
				newData[index + 3] = 0;
			} else {
				newData[index + 3] = data[sourceIndex + 3];
			}
		}
	}
	buffer.data = newBuffer.data;
	buffer.width = newWidth;
	buffer.height = newHeight;
	buffer.__srcImage = null;
	buffer.__srcImageData = null;
	buffer.__srcCanvas = null;
	buffer.__srcContext = null;
	image.dirty = true;
	image.version++;
}
ImageDataUtil.resizeBuffer = function(image,newWidth,newHeight) {
	var buffer = image.buffer;
	var data = image.get_data();
	var elements = newWidth * newHeight * 4;
	var this1;
	if(elements != null) {
		this1 = new Uint8Array(elements);
	} else {
		this1 = null;
	}
	var newData = this1;
	var sourceIndex;
	var index;
	var _g1 = 0;
	var _g = buffer.height;
	while(_g1 < _g) {
		var y = _g1++;
		var _g3 = 0;
		var _g2 = buffer.width;
		while(_g3 < _g2) {
			var x = _g3++;
			sourceIndex = (y * buffer.width + x) * 4;
			index = (y * newWidth + x) * 4;
			newData[index] = data[sourceIndex];
			newData[index + 1] = data[sourceIndex + 1];
			newData[index + 2] = data[sourceIndex + 2];
			newData[index + 3] = data[sourceIndex + 3];
		}
	}
	buffer.data = newData;
	buffer.width = newWidth;
	buffer.height = newHeight;
}
ImageDataUtil.setFormat = function(image,format) {
	var data = image.buffer.data;
	if(data == null) {
		return;
	}
	var index;
	var a16;
	var length = (Std().default)["int"](data.length / 4);
	var r1;
	var g1;
	var b1;
	var a1;
	var r2;
	var g2;
	var b2;
	var a2;
	var r;
	var g;
	var b;
	var a;
	var _g = image.get_format();
	switch(_g) {
	case 0:
		r1 = 0;
		g1 = 1;
		b1 = 2;
		a1 = 3;
		break;
	case 1:
		r1 = 1;
		g1 = 2;
		b1 = 3;
		a1 = 0;
		break;
	case 2:
		r1 = 2;
		g1 = 1;
		b1 = 0;
		a1 = 3;
		break;
	}
	switch(format) {
	case 0:
		r2 = 0;
		g2 = 1;
		b2 = 2;
		a2 = 3;
		break;
	case 1:
		r2 = 1;
		g2 = 2;
		b2 = 3;
		a2 = 0;
		break;
	case 2:
		r2 = 2;
		g2 = 1;
		b2 = 0;
		a2 = 3;
		break;
	}
	var _g2 = 0;
	var _g1 = length;
	while(_g2 < _g1) {
		var i = _g2++;
		index = i * 4;
		r = data[index + r1];
		g = data[index + g1];
		b = data[index + b1];
		a = data[index + a1];
		data[index + r2] = r;
		data[index + g2] = g;
		data[index + b2] = b;
		data[index + a2] = a;
	}
	image.buffer.format = format;
	image.dirty = true;
	image.version++;
}
ImageDataUtil.setPixel = function(image,x,y,color,format) {
	var pixel;
	switch(format) {
	case 1:
		var argb = color;
		var this1 = 0;
		var rgba = this1;
		rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255;
		pixel = rgba;
		break;
	case 2:
		var bgra = color;
		var this2 = 0;
		var rgba1 = this2;
		rgba1 = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
		pixel = rgba1;
		break;
	default:
		pixel = color;
	}
	var this3 = 0;
	var source = this3;
	var data = image.buffer.data;
	var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
	var premultiplied = image.buffer.premultiplied;
	switch(image.buffer.format) {
	case 0:
		source = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
		break;
	case 1:
		source = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
		break;
	case 2:
		source = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
		break;
	}
	if(premultiplied) {
		if((source & 255) != 0 && (source & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (source & 255);
			source = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((source >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((source >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((source >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | source & 255 & 255;
		}
	}
	var value = source & 255;
	pixel = (pixel >>> 24 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 8 & 255 & 255) << 8 | value & 255;
	var data1 = image.buffer.data;
	var offset1 = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
	if(image.buffer.premultiplied) {
		if((pixel & 255) == 0) {
			if(pixel != 0) {
				pixel = 0;
			}
		} else if((pixel & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[pixel & 255];
			pixel = ((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | pixel & 255 & 255;
		}
	}
	switch(image.buffer.format) {
	case 0:
		data1[offset1] = pixel >>> 24 & 255;
		data1[offset1 + 1] = pixel >>> 16 & 255;
		data1[offset1 + 2] = pixel >>> 8 & 255;
		data1[offset1 + 3] = pixel & 255;
		break;
	case 1:
		data1[offset1] = pixel & 255;
		data1[offset1 + 1] = pixel >>> 24 & 255;
		data1[offset1 + 2] = pixel >>> 16 & 255;
		data1[offset1 + 3] = pixel >>> 8 & 255;
		break;
	case 2:
		data1[offset1] = pixel >>> 8 & 255;
		data1[offset1 + 1] = pixel >>> 16 & 255;
		data1[offset1 + 2] = pixel >>> 24 & 255;
		data1[offset1 + 3] = pixel & 255;
		break;
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.setPixel32 = function(image,x,y,color,format) {
	var pixel;
	switch(format) {
	case 1:
		var argb = color;
		var this1 = 0;
		var rgba = this1;
		rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255;
		pixel = rgba;
		break;
	case 2:
		var bgra = color;
		var this2 = 0;
		var rgba1 = this2;
		rgba1 = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
		pixel = rgba1;
		break;
	default:
		pixel = color;
	}
	if(!image.get_transparent()) {
		pixel = (pixel >>> 24 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 8 & 255 & 255) << 8 | 255;
	}
	var data = image.buffer.data;
	var offset = 4 * (y + image.offsetY) * image.buffer.width + (x + image.offsetX) * 4;
	if(image.buffer.premultiplied) {
		if((pixel & 255) == 0) {
			if(pixel != 0) {
				pixel = 0;
			}
		} else if((pixel & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[pixel & 255];
			pixel = ((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | pixel & 255 & 255;
		}
	}
	switch(image.buffer.format) {
	case 0:
		data[offset] = pixel >>> 24 & 255;
		data[offset + 1] = pixel >>> 16 & 255;
		data[offset + 2] = pixel >>> 8 & 255;
		data[offset + 3] = pixel & 255;
		break;
	case 1:
		data[offset] = pixel & 255;
		data[offset + 1] = pixel >>> 24 & 255;
		data[offset + 2] = pixel >>> 16 & 255;
		data[offset + 3] = pixel >>> 8 & 255;
		break;
	case 2:
		data[offset] = pixel >>> 8 & 255;
		data[offset + 1] = pixel >>> 16 & 255;
		data[offset + 2] = pixel >>> 24 & 255;
		data[offset + 3] = pixel & 255;
		break;
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.setPixels = function(image,rect,bytePointer,format,endian) {
	if(image.buffer.data == null) {
		return;
	}
	var data = image.buffer.data;
	var sourceFormat = image.buffer.format;
	var premultiplied = image.buffer.premultiplied;
	var dataView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(image,rect);
	var row;
	var color;
	var pixel;
	var transparent = image.get_transparent();
	var bytes = bytePointer.bytes;
	var dataPosition = bytePointer.offset;
	var littleEndian = endian != (lime_system_Endian().default).BIG_ENDIAN;
	var _g1 = 0;
	var _g = dataView.height;
	while(_g1 < _g) {
		var y = _g1++;
		row = dataView.row(y);
		var _g3 = 0;
		var _g2 = dataView.width;
		while(_g3 < _g2) {
			var x = _g3++;
			if(littleEndian) {
				color = bytes.getInt32(dataPosition);
			} else {
				color = bytes.get(dataPosition + 3) | bytes.get(dataPosition + 2) << 8 | bytes.get(dataPosition + 1) << 16 | bytes.get(dataPosition) << 24;
			}
			dataPosition += 4;
			switch(format) {
			case 1:
				var argb = color;
				var this1 = 0;
				var rgba = this1;
				rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255;
				pixel = rgba;
				break;
			case 2:
				var bgra = color;
				var this2 = 0;
				var rgba1 = this2;
				rgba1 = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
				pixel = rgba1;
				break;
			default:
				pixel = color;
			}
			if(!transparent) {
				pixel = (pixel >>> 24 & 255 & 255) << 24 | (pixel >>> 16 & 255 & 255) << 16 | (pixel >>> 8 & 255 & 255) << 8 | 255;
			}
			var offset = row + x * 4;
			if(premultiplied) {
				if((pixel & 255) == 0) {
					if(pixel != 0) {
						pixel = 0;
					}
				} else if((pixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[pixel & 255];
					pixel = ((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | pixel & 255 & 255;
				}
			}
			switch(sourceFormat) {
			case 0:
				data[offset] = pixel >>> 24 & 255;
				data[offset + 1] = pixel >>> 16 & 255;
				data[offset + 2] = pixel >>> 8 & 255;
				data[offset + 3] = pixel & 255;
				break;
			case 1:
				data[offset] = pixel & 255;
				data[offset + 1] = pixel >>> 24 & 255;
				data[offset + 2] = pixel >>> 16 & 255;
				data[offset + 3] = pixel >>> 8 & 255;
				break;
			case 2:
				data[offset] = pixel >>> 8 & 255;
				data[offset + 1] = pixel >>> 16 & 255;
				data[offset + 2] = pixel >>> 24 & 255;
				data[offset + 3] = pixel & 255;
				break;
			}
		}
	}
	image.dirty = true;
	image.version++;
}
ImageDataUtil.threshold = function(image,sourceImage,sourceRect,destPoint,operation,threshold,color,mask,copySource,format) {
	var _color;
	var _mask;
	var _threshold;
	switch(format) {
	case 1:
		var argb = color;
		var this1 = 0;
		var rgba = this1;
		rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255;
		_color = rgba;
		var argb1 = mask;
		var this2 = 0;
		var rgba1 = this2;
		rgba1 = (argb1 >>> 16 & 255 & 255) << 24 | (argb1 >>> 8 & 255 & 255) << 16 | (argb1 & 255 & 255) << 8 | argb1 >>> 24 & 255 & 255;
		_mask = rgba1;
		var argb2 = threshold;
		var this3 = 0;
		var rgba2 = this3;
		rgba2 = (argb2 >>> 16 & 255 & 255) << 24 | (argb2 >>> 8 & 255 & 255) << 16 | (argb2 & 255 & 255) << 8 | argb2 >>> 24 & 255 & 255;
		_threshold = rgba2;
		break;
	case 2:
		var bgra = color;
		var this4 = 0;
		var rgba3 = this4;
		rgba3 = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
		_color = rgba3;
		var bgra1 = mask;
		var this5 = 0;
		var rgba4 = this5;
		rgba4 = (bgra1 >>> 8 & 255 & 255) << 24 | (bgra1 >>> 16 & 255 & 255) << 16 | (bgra1 >>> 24 & 255 & 255) << 8 | bgra1 & 255 & 255;
		_mask = rgba4;
		var bgra2 = threshold;
		var this6 = 0;
		var rgba5 = this6;
		rgba5 = (bgra2 >>> 8 & 255 & 255) << 24 | (bgra2 >>> 16 & 255 & 255) << 16 | (bgra2 >>> 24 & 255 & 255) << 8 | bgra2 & 255 & 255;
		_threshold = rgba5;
		break;
	default:
		_color = color;
		_mask = mask;
		_threshold = threshold;
	}
	var _operation;
	switch(operation) {
	case "!=":
		_operation = 0;
		break;
	case "<":
		_operation = 2;
		break;
	case "<=":
		_operation = 3;
		break;
	case "==":
		_operation = 1;
		break;
	case ">":
		_operation = 4;
		break;
	case ">=":
		_operation = 5;
		break;
	default:
		_operation = -1;
	}
	if(_operation == -1) {
		return 0;
	}
	var srcData = sourceImage.buffer.data;
	var destData = image.buffer.data;
	if(srcData == null || destData == null) {
		return 0;
	}
	var hits = 0;
	var srcView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(sourceImage,sourceRect);
	var destView = new (lime_graphics_utils__$ImageDataUtil_ImageDataView().default)(image,new (lime_math_Rectangle().default)(destPoint.x,destPoint.y,srcView.width,srcView.height));
	var srcFormat = sourceImage.buffer.format;
	var destFormat = image.buffer.format;
	var srcPremultiplied = sourceImage.buffer.premultiplied;
	var destPremultiplied = image.buffer.premultiplied;
	var srcPosition;
	var destPosition;
	var srcPixel;
	var destPixel;
	var pixelMask;
	var test;
	var value;
	var _g1 = 0;
	var _g = destView.height;
	while(_g1 < _g) {
		var y = _g1++;
		srcPosition = srcView.row(y);
		destPosition = destView.row(y);
		var _g3 = 0;
		var _g2 = destView.width;
		while(_g3 < _g2) {
			var x = _g3++;
			switch(srcFormat) {
			case 0:
				srcPixel = (srcData[srcPosition] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition + 2] & 255) << 8 | srcData[srcPosition + 3] & 255;
				break;
			case 1:
				srcPixel = (srcData[srcPosition + 1] & 255) << 24 | (srcData[srcPosition + 2] & 255) << 16 | (srcData[srcPosition + 3] & 255) << 8 | srcData[srcPosition] & 255;
				break;
			case 2:
				srcPixel = (srcData[srcPosition + 2] & 255) << 24 | (srcData[srcPosition + 1] & 255) << 16 | (srcData[srcPosition] & 255) << 8 | srcData[srcPosition + 3] & 255;
				break;
			}
			if(srcPremultiplied) {
				if((srcPixel & 255) != 0 && (srcPixel & 255) != 255) {
					(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (srcPixel & 255);
					srcPixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((srcPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((srcPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((srcPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | srcPixel & 255 & 255;
				}
			}
			pixelMask = srcPixel & _mask;
			value = ImageDataUtil.__pixelCompare(pixelMask,_threshold);
			switch(_operation) {
			case 0:
				test = value != 0;
				break;
			case 1:
				test = value == 0;
				break;
			case 2:
				test = value == -1;
				break;
			case 3:
				if(value != 0) {
					test = value == -1;
				} else {
					test = true;
				}
				break;
			case 4:
				test = value == 1;
				break;
			case 5:
				if(value != 0) {
					test = value == 1;
				} else {
					test = true;
				}
				break;
			default:
				test = false;
			}
			if(test) {
				if(destPremultiplied) {
					if((_color & 255) == 0) {
						if(_color != 0) {
							_color = 0;
						}
					} else if((_color & 255) != 255) {
						(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[_color & 255];
						_color = ((_color >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((_color >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((_color >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | _color & 255 & 255;
					}
				}
				switch(destFormat) {
				case 0:
					destData[destPosition] = _color >>> 24 & 255;
					destData[destPosition + 1] = _color >>> 16 & 255;
					destData[destPosition + 2] = _color >>> 8 & 255;
					destData[destPosition + 3] = _color & 255;
					break;
				case 1:
					destData[destPosition] = _color & 255;
					destData[destPosition + 1] = _color >>> 24 & 255;
					destData[destPosition + 2] = _color >>> 16 & 255;
					destData[destPosition + 3] = _color >>> 8 & 255;
					break;
				case 2:
					destData[destPosition] = _color >>> 8 & 255;
					destData[destPosition + 1] = _color >>> 16 & 255;
					destData[destPosition + 2] = _color >>> 24 & 255;
					destData[destPosition + 3] = _color & 255;
					break;
				}
				++hits;
			} else if(copySource) {
				if(destPremultiplied) {
					if((srcPixel & 255) == 0) {
						if(srcPixel != 0) {
							srcPixel = 0;
						}
					} else if((srcPixel & 255) != 255) {
						(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[srcPixel & 255];
						srcPixel = ((srcPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((srcPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((srcPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | srcPixel & 255 & 255;
					}
				}
				switch(destFormat) {
				case 0:
					destData[destPosition] = srcPixel >>> 24 & 255;
					destData[destPosition + 1] = srcPixel >>> 16 & 255;
					destData[destPosition + 2] = srcPixel >>> 8 & 255;
					destData[destPosition + 3] = srcPixel & 255;
					break;
				case 1:
					destData[destPosition] = srcPixel & 255;
					destData[destPosition + 1] = srcPixel >>> 24 & 255;
					destData[destPosition + 2] = srcPixel >>> 16 & 255;
					destData[destPosition + 3] = srcPixel >>> 8 & 255;
					break;
				case 2:
					destData[destPosition] = srcPixel >>> 8 & 255;
					destData[destPosition + 1] = srcPixel >>> 16 & 255;
					destData[destPosition + 2] = srcPixel >>> 24 & 255;
					destData[destPosition + 3] = srcPixel & 255;
					break;
				}
			}
			srcPosition += 4;
			destPosition += 4;
		}
	}
	if(hits > 0) {
		image.dirty = true;
		image.version++;
	}
	return hits;
}
ImageDataUtil.unmultiplyAlpha = function(image) {
	var data = image.buffer.data;
	if(data == null) {
		return;
	}
	var format = image.buffer.format;
	var length = (Std().default)["int"](data.length / 4);
	var pixel;
	var _g1 = 0;
	var _g = length;
	while(_g1 < _g) {
		var i = _g1++;
		var offset = i * 4;
		switch(format) {
		case 0:
			pixel = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
			break;
		case 1:
			pixel = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
			break;
		case 2:
			pixel = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
			break;
		}
		if((pixel & 255) != 0 && (pixel & 255) != 255) {
			(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (pixel & 255);
			pixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((pixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | pixel & 255 & 255;
		}
		var offset1 = i * 4;
		switch(format) {
		case 0:
			data[offset1] = pixel >>> 24 & 255;
			data[offset1 + 1] = pixel >>> 16 & 255;
			data[offset1 + 2] = pixel >>> 8 & 255;
			data[offset1 + 3] = pixel & 255;
			break;
		case 1:
			data[offset1] = pixel & 255;
			data[offset1 + 1] = pixel >>> 24 & 255;
			data[offset1 + 2] = pixel >>> 16 & 255;
			data[offset1 + 3] = pixel >>> 8 & 255;
			break;
		case 2:
			data[offset1] = pixel >>> 8 & 255;
			data[offset1 + 1] = pixel >>> 16 & 255;
			data[offset1 + 2] = pixel >>> 24 & 255;
			data[offset1 + 3] = pixel & 255;
			break;
		}
	}
	image.buffer.premultiplied = false;
	image.dirty = true;
	image.version++;
}
ImageDataUtil.__pixelCompare = function(n1,n2) {
	var tmp1;
	var tmp2;
	tmp1 = n1 >>> 24 & 255;
	tmp2 = n2 >>> 24 & 255;
	if(tmp1 != tmp2) {
		if((_$UInt_UInt_$Impl_$().default).gt(tmp1,tmp2)) {
			return 1;
		} else {
			return -1;
		}
	} else {
		tmp1 = n1 >>> 16 & 255;
		tmp2 = n2 >>> 16 & 255;
		if(tmp1 != tmp2) {
			if((_$UInt_UInt_$Impl_$().default).gt(tmp1,tmp2)) {
				return 1;
			} else {
				return -1;
			}
		} else {
			tmp1 = n1 >>> 8 & 255;
			tmp2 = n2 >>> 8 & 255;
			if(tmp1 != tmp2) {
				if((_$UInt_UInt_$Impl_$().default).gt(tmp1,tmp2)) {
					return 1;
				} else {
					return -1;
				}
			} else {
				tmp1 = n1 & 255;
				tmp2 = n2 & 255;
				if(tmp1 != tmp2) {
					if((_$UInt_UInt_$Impl_$().default).gt(tmp1,tmp2)) {
						return 1;
					} else {
						return -1;
					}
				} else {
					return 0;
				}
			}
		}
	}
}
// Export
exports.default = ImageDataUtil;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 66 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.IShaderDrawable
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IShaderDrawable = function() {}
// Meta
IShaderDrawable.__name__ = ["openfl","display","IShaderDrawable"];
IShaderDrawable.prototype = {
	
};
IShaderDrawable.prototype.__class__ = $hxClasses["openfl.display.IShaderDrawable"] = IShaderDrawable;
// Init
// Statics
// Export
exports.default = IShaderDrawable;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 67 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.ObjectPool
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_ObjectMap() {return __webpack_require__(57);}
function List() {return __webpack_require__(48);}
// Constructor
var ObjectPool = function(create,clean,size) {
	if(create != null) {
		this.create = create;
	}
	if(clean != null) {
		this.clean = clean;
	}
	if(size != null) {
		this.set_size(size);
	}
	this.__pool = new (haxe_ds_ObjectMap().default)();
	this.activeObjects = 0;
	this.inactiveObjects = 0;
	this.__inactiveObject0 = null;
	this.__inactiveObject1 = null;
	this.__inactiveObjectList = new (List().default)();
}
// Meta
ObjectPool.__name__ = ["lime","utils","ObjectPool"];
ObjectPool.prototype = {
	add: function(object) {
		if(!this.__pool.exists(object)) {
			this.__pool.set(object,false);
			this.clean(object);
			this.__addInactive(object);
		}
	},
	clean: function(object) {
	},
	clear: function() {
		this.__pool = new (haxe_ds_ObjectMap().default)();
		this.activeObjects = 0;
		this.inactiveObjects = 0;
		this.__inactiveObject0 = null;
		this.__inactiveObject1 = null;
		this.__inactiveObjectList.clear();
	},
	create: function() {
		return null;
	},
	get: function() {
		var object = null;
		if(this.inactiveObjects > 0) {
			object = this.__getInactive();
		} else if(this.__size == null || this.activeObjects < this.__size) {
			object = this.create();
			if(object != null) {
				this.__pool.set(object,true);
				this.activeObjects++;
			}
		}
		return object;
	},
	release: function(object) {
		this.activeObjects--;
		if(this.__size == null || this.activeObjects + this.inactiveObjects < this.__size) {
			this.clean(object);
			this.__addInactive(object);
		} else {
			this.__pool.remove(object);
		}
	},
	__addInactive: function(object) {
		if(this.__inactiveObject0 == null) {
			this.__inactiveObject0 = object;
		} else if(this.__inactiveObject1 == null) {
			this.__inactiveObject1 = object;
		} else {
			this.__inactiveObjectList.add(object);
		}
		this.inactiveObjects++;
	},
	__getInactive: function() {
		var object = null;
		if(this.__inactiveObject0 != null) {
			object = this.__inactiveObject0;
			this.__inactiveObject0 = null;
		} else if(this.__inactiveObject1 != null) {
			object = this.__inactiveObject1;
			this.__inactiveObject1 = null;
		} else {
			object = this.__inactiveObjectList.pop();
			if(this.__inactiveObjectList.length > 0) {
				this.__inactiveObject0 = this.__inactiveObjectList.pop();
			}
			if(this.__inactiveObjectList.length > 0) {
				this.__inactiveObject1 = this.__inactiveObjectList.pop();
			}
		}
		this.inactiveObjects--;
		this.activeObjects++;
		return object;
	},
	__removeInactive: function(count) {
		if(count <= 0 || this.inactiveObjects == 0) {
			return;
		}
		if(this.__inactiveObject0 != null) {
			this.__pool.remove(this.__inactiveObject0);
			this.__inactiveObject0 = null;
			this.inactiveObjects--;
			--count;
		}
		if(count == 0 || this.inactiveObjects == 0) {
			return;
		}
		if(this.__inactiveObject1 != null) {
			this.__pool.remove(this.__inactiveObject1);
			this.__inactiveObject1 = null;
			this.inactiveObjects--;
			--count;
		}
		if(count == 0 || this.inactiveObjects == 0) {
			return;
		}
		var object = this.__inactiveObjectList.iterator();
		while(object.hasNext()) {
			var object1 = object.next();
			this.__pool.remove(object1);
			this.__inactiveObjectList.remove(object1);
			this.inactiveObjects--;
			--count;
			if(count == 0 || this.inactiveObjects == 0) {
				return;
			}
		}
	},
	get_size: function() {
		return this.__size;
	},
	set_size: function(value) {
		if(value == null) {
			this.__size = null;
		} else {
			var current = this.inactiveObjects + this.activeObjects;
			this.__size = value;
			if(current > value) {
				this.__removeInactive(current - value);
			} else if(value > current) {
				var object;
				var _g1 = 0;
				var _g = value - current;
				while(_g1 < _g) {
					var i = _g1++;
					object = this.create();
					if(object != null) {
						this.__pool.set(object,false);
						this.__inactiveObjectList.add(object);
						this.inactiveObjects++;
					} else {
						break;
					}
				}
			}
		}
		return value;
	}
};
ObjectPool.prototype.__class__ = $hxClasses["lime.utils.ObjectPool"] = ObjectPool;
// Init
// Statics
// Export
exports.default = ObjectPool;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 68 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasRenderer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractRenderer() {return __webpack_require__(118);}
function openfl__$internal_renderer_RenderSession() {return __webpack_require__(91);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function openfl__$internal_renderer_canvas_CanvasBlendModeManager() {return __webpack_require__(160);}
function openfl__$internal_renderer_canvas_CanvasMaskManager() {return __webpack_require__(161);}
function Reflect() {return __webpack_require__(5);}
// Constructor
var CanvasRenderer = function(stage,context) {
	(openfl__$internal_renderer_AbstractRenderer().default).call(this,stage);
	this.context = context;
	this.renderSession = new (openfl__$internal_renderer_RenderSession().default)();
	this.renderSession.clearRenderDirty = true;
	this.renderSession.context = context;
	this.renderSession.renderer = this;
	this.renderSession.renderType = (lime_graphics_RendererType().default).CANVAS;
	this.renderSession.blendModeManager = new (openfl__$internal_renderer_canvas_CanvasBlendModeManager().default)(this.renderSession);
	this.renderSession.maskManager = new (openfl__$internal_renderer_canvas_CanvasMaskManager().default)(this.renderSession);
	var config = stage.window.config;
	if(config != null && (Reflect().default).hasField(config,"allowHighDPI") && config.allowHighDPI) {
		CanvasRenderer.scale = window.devicePixelRatio || 1;
	}
}
// Meta
CanvasRenderer.__name__ = ["openfl","_internal","renderer","canvas","CanvasRenderer"];
CanvasRenderer.__super__ = (openfl__$internal_renderer_AbstractRenderer().default);
CanvasRenderer.prototype = $extend((openfl__$internal_renderer_AbstractRenderer().default).prototype, {
	clear: function() {
		this.renderSession.blendModeManager.setBlendMode("normal");
		this.context.setTransform(1,0,0,1,0,0);
		this.context.globalAlpha = 1;
		if(!this.stage.__transparent && this.stage.__clearBeforeRender) {
			this.context.fillStyle = this.stage.__colorString;
			this.context.fillRect(0,0,this.stage.stageWidth * this.stage.window.get_scale(),this.stage.stageHeight * this.stage.window.get_scale());
		} else if(this.stage.__transparent && this.stage.__clearBeforeRender) {
			this.context.clearRect(0,0,this.stage.stageWidth * this.stage.window.get_scale(),this.stage.stageHeight * this.stage.window.get_scale());
		}
	},
	render: function() {
		this.renderSession.allowSmoothing = this.stage.quality != "low";
		this.stage.__renderCanvas(this.renderSession);
	},
	renderStage3D: function() {
		var _g = 0;
		var _g1 = this.stage.stage3Ds;
		while(_g < _g1.get_length()) {
			var stage3D = _g1.get(_g);
			++_g;
			stage3D.__renderCanvas(this.stage,this.renderSession);
		}
	}
});
CanvasRenderer.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasRenderer"] = CanvasRenderer;
// Init
// Statics
CanvasRenderer.scale = 1
// Export
exports.default = CanvasRenderer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 69 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Graphics
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_GraphicsDataType() {return __webpack_require__(50);}
function openfl_display_GraphicsFillType() {return __webpack_require__(70);}
function Std() {return __webpack_require__(4);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_ArgumentError() {return __webpack_require__(71);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl__$internal_renderer_canvas_CanvasGraphics() {return __webpack_require__(58);}
function openfl__$internal_renderer_DrawCommandReader() {return __webpack_require__(116);}
function Type() {return __webpack_require__(10);}
function openfl_display_GraphicsPath() {return __webpack_require__(164);}
function openfl_display_GraphicsBitmapFill() {return __webpack_require__(166);}
function openfl_display_GraphicsSolidFill() {return __webpack_require__(167);}
function openfl_display_GraphicsGradientFill() {return __webpack_require__(168);}
function openfl_display_GraphicsEndFill() {return __webpack_require__(169);}
function openfl_display_GraphicsStroke() {return __webpack_require__(170);}
function openfl__$internal_renderer_DrawCommandBuffer() {return __webpack_require__(159);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
// Constructor
var Graphics = function(owner) {
	this.__dirty = true;
	this.__owner = owner;
	this.__commands = new (openfl__$internal_renderer_DrawCommandBuffer().default)();
	this.__strokePadding = 0;
	this.__positionX = 0;
	this.__positionY = 0;
	this.__renderTransform = new (openfl_geom_Matrix().default)();
	this.__worldTransform = new (openfl_geom_Matrix().default)();
	this.__width = 0;
	this.__height = 0;
	this.moveTo(0,0);
}
// Meta
Graphics.__name__ = ["openfl","display","Graphics"];
Graphics.prototype = {
	beginBitmapFill: function(bitmap,matrix,repeat,smooth) {
		if(smooth == null) {
			smooth = false;
		}
		if(repeat == null) {
			repeat = true;
		}
		this.__commands.beginBitmapFill(bitmap,matrix != null ? matrix.clone() : null,repeat,smooth);
		this.__visible = true;
	},
	beginFill: function(color,alpha) {
		if(alpha == null) {
			alpha = 1;
		}
		if(color == null) {
			color = 0;
		}
		this.__commands.beginFill(color & 16777215,alpha);
		if(alpha > 0) {
			this.__visible = true;
		}
	},
	beginGradientFill: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
		if(focalPointRatio == null) {
			focalPointRatio = 0;
		}
		if(interpolationMethod == null) {
			interpolationMethod = "rgb";
		}
		if(spreadMethod == null) {
			spreadMethod = "pad";
		}
		this.__commands.beginGradientFill(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio);
		var _g = 0;
		while(_g < alphas.length) {
			var alpha = alphas[_g];
			++_g;
			if(alpha > 0) {
				this.__visible = true;
				break;
			}
		}
	},
	clear: function() {
		this.__commands.clear();
		this.__strokePadding = 0;
		if(this.__bounds != null) {
			this.set___dirty(true);
			this.__transformDirty = true;
			this.__bounds = null;
		}
		this.__visible = false;
		this.moveTo(0,0);
	},
	copyFrom: function(sourceGraphics) {
		this.__bounds = sourceGraphics.__bounds != null ? sourceGraphics.__bounds.clone() : null;
		this.__commands = sourceGraphics.__commands.copy();
		this.set___dirty(true);
		this.__strokePadding = sourceGraphics.__strokePadding;
		this.__positionX = sourceGraphics.__positionX;
		this.__positionY = sourceGraphics.__positionY;
		this.__transformDirty = true;
		this.__visible = sourceGraphics.__visible;
	},
	cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) {
		this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding);
		this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding);
		var ix1;
		var iy1;
		var ix2;
		var iy2;
		ix1 = anchorX;
		ix2 = anchorX;
		if(!((controlX1 < anchorX && controlX1 > this.__positionX || controlX1 > anchorX && controlX1 < this.__positionX) && (controlX2 < anchorX && controlX2 > this.__positionX || controlX2 > anchorX && controlX2 < this.__positionX))) {
			var u = 2 * this.__positionX - 4 * controlX1 + 2 * controlX2;
			var v = controlX1 - this.__positionX;
			var w = -this.__positionX + 3 * controlX1 + anchorX - 3 * controlX2;
			var t1 = (-u + Math.sqrt(u * u - 4 * v * w)) / (2 * w);
			var t2 = (-u - Math.sqrt(u * u - 4 * v * w)) / (2 * w);
			if(t1 > 0 && t1 < 1) {
				ix1 = this.__calculateBezierCubicPoint(t1,this.__positionX,controlX1,controlX2,anchorX);
			}
			if(t2 > 0 && t2 < 1) {
				ix2 = this.__calculateBezierCubicPoint(t2,this.__positionX,controlX1,controlX2,anchorX);
			}
		}
		iy1 = anchorY;
		iy2 = anchorY;
		if(!((controlY1 < anchorY && controlY1 > this.__positionX || controlY1 > anchorY && controlY1 < this.__positionX) && (controlY2 < anchorY && controlY2 > this.__positionX || controlY2 > anchorY && controlY2 < this.__positionX))) {
			var u1 = 2 * this.__positionX - 4 * controlY1 + 2 * controlY2;
			var v1 = controlY1 - this.__positionX;
			var w1 = -this.__positionX + 3 * controlY1 + anchorY - 3 * controlY2;
			var t11 = (-u1 + Math.sqrt(u1 * u1 - 4 * v1 * w1)) / (2 * w1);
			var t21 = (-u1 - Math.sqrt(u1 * u1 - 4 * v1 * w1)) / (2 * w1);
			if(t11 > 0 && t11 < 1) {
				iy1 = this.__calculateBezierCubicPoint(t11,this.__positionX,controlY1,controlY2,anchorY);
			}
			if(t21 > 0 && t21 < 1) {
				iy2 = this.__calculateBezierCubicPoint(t21,this.__positionX,controlY1,controlY2,anchorY);
			}
		}
		this.__inflateBounds(ix1 - this.__strokePadding,iy1 - this.__strokePadding);
		this.__inflateBounds(ix1 + this.__strokePadding,iy1 + this.__strokePadding);
		this.__inflateBounds(ix2 - this.__strokePadding,iy2 - this.__strokePadding);
		this.__inflateBounds(ix2 + this.__strokePadding,iy2 + this.__strokePadding);
		this.__positionX = anchorX;
		this.__positionY = anchorY;
		this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding);
		this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding);
		this.__commands.cubicCurveTo(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY);
		this.set___dirty(true);
	},
	curveTo: function(controlX,controlY,anchorX,anchorY) {
		this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding);
		this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding);
		var ix;
		var iy;
		if(controlX < anchorX && controlX > this.__positionX || controlX > anchorX && controlX < this.__positionX) {
			ix = anchorX;
		} else {
			var tx = (this.__positionX - controlX) / (this.__positionX - 2 * controlX + anchorX);
			ix = this.__calculateBezierQuadPoint(tx,this.__positionX,controlX,anchorX);
		}
		if(controlY < anchorY && controlY > this.__positionY || controlY > anchorY && controlY < this.__positionY) {
			iy = anchorY;
		} else {
			var ty = (this.__positionY - controlY) / (this.__positionY - 2 * controlY + anchorY);
			iy = this.__calculateBezierQuadPoint(ty,this.__positionY,controlY,anchorY);
		}
		this.__inflateBounds(ix - this.__strokePadding,iy - this.__strokePadding);
		this.__inflateBounds(ix + this.__strokePadding,iy + this.__strokePadding);
		this.__positionX = anchorX;
		this.__positionY = anchorY;
		this.__commands.curveTo(controlX,controlY,anchorX,anchorY);
		this.set___dirty(true);
	},
	drawCircle: function(x,y,radius) {
		if(radius <= 0) {
			return;
		}
		this.__inflateBounds(x - radius - this.__strokePadding,y - radius - this.__strokePadding);
		this.__inflateBounds(x + radius + this.__strokePadding,y + radius + this.__strokePadding);
		this.__commands.drawCircle(x,y,radius);
		this.set___dirty(true);
	},
	drawEllipse: function(x,y,width,height) {
		if(width <= 0 || height <= 0) {
			return;
		}
		this.__inflateBounds(x - this.__strokePadding,y - this.__strokePadding);
		this.__inflateBounds(x + width + this.__strokePadding,y + height + this.__strokePadding);
		this.__commands.drawEllipse(x,y,width,height);
		this.set___dirty(true);
	},
	drawGraphicsData: function(graphicsData) {
		var fill;
		var bitmapFill;
		var gradientFill;
		var stroke;
		var path;
		var trianglePath;
		var _g = 0;
		while(_g < graphicsData.get_length()) {
			var graphics = graphicsData.get(_g);
			++_g;
			var _g1 = graphics.__graphicsDataType;
			switch(_g1) {
			case (openfl_display_GraphicsDataType().default).STROKE:
				stroke = graphics;
				if(stroke.fill != null) {
					var thickness = stroke.thickness;
					if(isNaN(thickness)) {
						thickness = null;
					}
					var _g11 = stroke.fill.__graphicsFillType;
					switch(_g11) {
					case (openfl_display_GraphicsFillType().default).SOLID_FILL:
						fill = stroke.fill;
						this.lineStyle(thickness,fill.color,fill.alpha,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit);
						break;
					case (openfl_display_GraphicsFillType().default).GRADIENT_FILL:
						gradientFill = stroke.fill;
						this.lineStyle(thickness,0,1,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit);
						this.lineGradientStyle(gradientFill.type,gradientFill.colors,gradientFill.alphas,gradientFill.ratios,gradientFill.matrix,gradientFill.spreadMethod,gradientFill.interpolationMethod,gradientFill.focalPointRatio);
						break;
					case (openfl_display_GraphicsFillType().default).BITMAP_FILL:
						bitmapFill = stroke.fill;
						this.lineStyle(thickness,0,1,stroke.pixelHinting,stroke.scaleMode,stroke.caps,stroke.joints,stroke.miterLimit);
						this.lineBitmapStyle(bitmapFill.bitmapData,bitmapFill.matrix,bitmapFill.repeat,bitmapFill.smooth);
						break;
					default:
					}
				} else {
					this.lineStyle();
				}
				break;
			case (openfl_display_GraphicsDataType().default).SOLID:
				fill = graphics;
				this.beginFill(fill.color,fill.alpha);
				break;
			case (openfl_display_GraphicsDataType().default).GRADIENT:
				gradientFill = graphics;
				this.beginGradientFill(gradientFill.type,gradientFill.colors,gradientFill.alphas,gradientFill.ratios,gradientFill.matrix,gradientFill.spreadMethod,gradientFill.interpolationMethod,gradientFill.focalPointRatio);
				break;
			case (openfl_display_GraphicsDataType().default).PATH:
				path = graphics;
				this.drawPath(path.commands,path.data,path.winding);
				break;
			case (openfl_display_GraphicsDataType().default).BITMAP:
				bitmapFill = graphics;
				this.beginBitmapFill(bitmapFill.bitmapData,bitmapFill.matrix,bitmapFill.repeat,bitmapFill.smooth);
				break;
			case (openfl_display_GraphicsDataType().default).END:
				this.endFill();
				break;
			case (openfl_display_GraphicsDataType().default).TRIANGLE_PATH:
				trianglePath = graphics;
				this.drawTriangles(trianglePath.vertices,trianglePath.indices,trianglePath.uvtData,trianglePath.culling);
				break;
			}
		}
	},
	drawPath: function(commands,data,winding) {
		if(winding == null) {
			winding = "evenOdd";
		}
		var dataIndex = 0;
		if(winding == "nonZero") {
			this.__commands.windingNonZero();
		}
		var _g = 0;
		try {
			while(_g < commands.get_length()) {
				var command = commands.get(_g);
				++_g;
				switch(command) {
				case 1:
					this.moveTo(data.get(dataIndex),data.get(dataIndex + 1));
					dataIndex += 2;
					break;
				case 2:
					this.lineTo(data.get(dataIndex),data.get(dataIndex + 1));
					dataIndex += 2;
					break;
				case 3:
					this.curveTo(data.get(dataIndex),data.get(dataIndex + 1),data.get(dataIndex + 2),data.get(dataIndex + 3));
					dataIndex += 4;
					break;
				case 4:
					this.moveTo(data.get(dataIndex + 2),data.get(dataIndex + 3));
					throw "__break__";
					break;
				case 5:
					this.lineTo(data.get(dataIndex + 2),data.get(dataIndex + 3));
					throw "__break__";
					break;
				case 6:
					this.cubicCurveTo(data.get(dataIndex),data.get(dataIndex + 1),data.get(dataIndex + 2),data.get(dataIndex + 3),data.get(dataIndex + 4),data.get(dataIndex + 5));
					dataIndex += 6;
					break;
				default:
				}
			}
		} catch( e ) { if( e != "__break__" ) throw e; }
	},
	drawRect: function(x,y,width,height) {
		if(width <= 0 || height <= 0) {
			return;
		}
		this.__inflateBounds(x - this.__strokePadding,y - this.__strokePadding);
		this.__inflateBounds(x + width + this.__strokePadding,y + height + this.__strokePadding);
		this.__commands.drawRect(x,y,width,height);
		this.set___dirty(true);
	},
	drawRoundRect: function(x,y,width,height,ellipseWidth,ellipseHeight) {
		if(width <= 0 || height <= 0) {
			return;
		}
		this.__inflateBounds(x - this.__strokePadding,y - this.__strokePadding);
		this.__inflateBounds(x + width + this.__strokePadding,y + height + this.__strokePadding);
		this.__commands.drawRoundRect(x,y,width,height,ellipseWidth,ellipseHeight);
		this.set___dirty(true);
	},
	drawRoundRectComplex: function(x,y,width,height,topLeftRadius,topRightRadius,bottomLeftRadius,bottomRightRadius) {
		if(width <= 0 || height <= 0) {
			return;
		}
		this.__inflateBounds(x - this.__strokePadding,y - this.__strokePadding);
		this.__inflateBounds(x + width + this.__strokePadding,y + height + this.__strokePadding);
		var xw = x + width;
		var yh = y + height;
		var minSize = width < height ? width * 2 : height * 2;
		if(topLeftRadius < minSize) {
			topLeftRadius = topLeftRadius;
		} else {
			topLeftRadius = minSize;
		}
		if(topRightRadius < minSize) {
			topRightRadius = topRightRadius;
		} else {
			topRightRadius = minSize;
		}
		if(bottomLeftRadius < minSize) {
			bottomLeftRadius = bottomLeftRadius;
		} else {
			bottomLeftRadius = minSize;
		}
		if(bottomRightRadius < minSize) {
			bottomRightRadius = bottomRightRadius;
		} else {
			bottomRightRadius = minSize;
		}
		var anchor = 1 - Math.sin(45 * (Math.PI / 180));
		var control = 1 - Math.tan(22.5 * (Math.PI / 180));
		var a = bottomRightRadius * anchor;
		var s = bottomRightRadius * control;
		this.moveTo(xw,yh - bottomRightRadius);
		this.curveTo(xw,yh - s,xw - a,yh - a);
		this.curveTo(xw - s,yh,xw - bottomRightRadius,yh);
		a = bottomLeftRadius * anchor;
		s = bottomLeftRadius * control;
		this.lineTo(x + bottomLeftRadius,yh);
		this.curveTo(x + s,yh,x + a,yh - a);
		this.curveTo(x,yh - s,x,yh - bottomLeftRadius);
		a = topLeftRadius * anchor;
		s = topLeftRadius * control;
		this.lineTo(x,y + topLeftRadius);
		this.curveTo(x,y + s,x + a,y + a);
		this.curveTo(x + s,y,x + topLeftRadius,y);
		a = topRightRadius * anchor;
		s = topRightRadius * control;
		this.lineTo(xw - topRightRadius,y);
		this.curveTo(xw - s,y,xw - a,y + a);
		this.curveTo(xw,y + s,xw,y + topRightRadius);
		this.lineTo(xw,yh - bottomRightRadius);
		this.set___dirty(true);
	},
	drawTriangles: function(vertices,indices,uvtData,culling) {
		if(culling == null) {
			culling = "none";
		}
		if(vertices == null) {
			return;
		}
		var vlen = (Std().default)["int"](vertices.get_length() / 2);
		if(culling == null) {
			culling = "none";
		}
		if(indices == null) {
			if(vlen % 3 != 0) {
				throw new (js__$Boot_HaxeError().default)(new (openfl_errors_ArgumentError().default)("Not enough vertices to close a triangle."));
			}
			indices = (openfl__$Vector_Vector_$Impl_$().default)._new();
			var _g1 = 0;
			var _g = vlen;
			while(_g1 < _g) {
				var i = _g1++;
				indices.push(i);
			}
		}
		this.__inflateBounds(0,0);
		var tmpx = -Infinity;
		var tmpy = -Infinity;
		var maxX = -Infinity;
		var maxY = -Infinity;
		var _g11 = 0;
		var _g2 = vlen;
		while(_g11 < _g2) {
			var i1 = _g11++;
			tmpx = vertices.get(i1 * 2);
			tmpy = vertices.get(i1 * 2 + 1);
			if(maxX < tmpx) {
				maxX = tmpx;
			}
			if(maxY < tmpy) {
				maxY = tmpy;
			}
		}
		this.__inflateBounds(maxX,maxY);
		this.__commands.drawTriangles(vertices,indices,uvtData,culling);
		this.set___dirty(true);
		this.__visible = true;
	},
	endFill: function() {
		this.__commands.endFill();
	},
	lineBitmapStyle: function(bitmap,matrix,repeat,smooth) {
		if(smooth == null) {
			smooth = false;
		}
		if(repeat == null) {
			repeat = true;
		}
		this.__commands.lineBitmapStyle(bitmap,matrix != null ? matrix.clone() : null,repeat,smooth);
	},
	lineGradientStyle: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
		if(focalPointRatio == null) {
			focalPointRatio = 0;
		}
		if(interpolationMethod == null) {
			interpolationMethod = "rgb";
		}
		if(spreadMethod == null) {
			spreadMethod = "pad";
		}
		this.__commands.lineGradientStyle(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio);
	},
	lineStyle: function(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit) {
		if(miterLimit == null) {
			miterLimit = 3;
		}
		if(scaleMode == null) {
			scaleMode = "normal";
		}
		if(pixelHinting == null) {
			pixelHinting = false;
		}
		if(alpha == null) {
			alpha = 1;
		}
		if(color == null) {
			color = 0;
		}
		if(thickness != null) {
			if(joints == "miter") {
				if(thickness > this.__strokePadding) {
					this.__strokePadding = thickness;
				}
			} else if(thickness / 2 > this.__strokePadding) {
				this.__strokePadding = thickness / 2;
			}
		}
		this.__commands.lineStyle(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit);
		if(thickness != null) {
			this.__visible = true;
		}
	},
	lineTo: function(x,y) {
		if(!isFinite(x) || !isFinite(y)) {
			return;
		}
		this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding);
		this.__inflateBounds(this.__positionX + this.__strokePadding,this.__positionY + this.__strokePadding);
		this.__positionX = x;
		this.__positionY = y;
		this.__inflateBounds(this.__positionX - this.__strokePadding,this.__positionY - this.__strokePadding);
		this.__inflateBounds(this.__positionX + this.__strokePadding * 2,this.__positionY + this.__strokePadding);
		this.__commands.lineTo(x,y);
		this.set___dirty(true);
	},
	moveTo: function(x,y) {
		this.__positionX = x;
		this.__positionY = y;
		this.__commands.moveTo(x,y);
	},
	readGraphicsData: function(recurse) {
		if(recurse == null) {
			recurse = true;
		}
		var graphicsData = (openfl__$Vector_Vector_$Impl_$().default)._new();
		this.__owner.__readGraphicsData(graphicsData,recurse);
		return graphicsData;
	},
	__calculateBezierCubicPoint: function(t,p1,p2,p3,p4) {
		var iT = 1 - t;
		return p1 * (iT * iT * iT) + 3 * p2 * t * (iT * iT) + 3 * p3 * iT * (t * t) + p4 * (t * t * t);
	},
	__calculateBezierQuadPoint: function(t,p1,p2,p3) {
		var iT = 1 - t;
		return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;
	},
	__cleanup: function() {
		if(this.__bounds != null) {
			this.set___dirty(true);
			this.__transformDirty = true;
		}
		this.__bitmap = null;
		this.__canvas = null;
		this.__context = null;
	},
	__getBounds: function(rect,matrix) {
		if(this.__bounds == null) {
			return;
		}
		var bounds = (openfl_geom_Rectangle().default).__pool.get();
		this.__bounds.__transform(bounds,matrix);
		rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
		(openfl_geom_Rectangle().default).__pool.release(bounds);
	},
	__hitTest: function(x,y,shapeFlag,matrix) {
		if(this.__bounds == null) {
			return false;
		}
		var px = matrix.__transformInverseX(x,y);
		var py = matrix.__transformInverseY(x,y);
		if(px > this.__bounds.x && py > this.__bounds.y && this.__bounds.contains(px,py)) {
			if(shapeFlag) {
				return (openfl__$internal_renderer_canvas_CanvasGraphics().default).hitTest(this,px,py);
			}
			return true;
		}
		return false;
	},
	__inflateBounds: function(x,y) {
		if(this.__bounds == null) {
			this.__bounds = new (openfl_geom_Rectangle().default)(x,y,0,0);
			this.__transformDirty = true;
			return;
		}
		if(x < this.__bounds.x) {
			this.__bounds.width += this.__bounds.x - x;
			this.__bounds.x = x;
			this.__transformDirty = true;
		}
		if(y < this.__bounds.y) {
			this.__bounds.height += this.__bounds.y - y;
			this.__bounds.y = y;
			this.__transformDirty = true;
		}
		if(x > this.__bounds.x + this.__bounds.width) {
			this.__bounds.width = x - this.__bounds.x;
		}
		if(y > this.__bounds.y + this.__bounds.height) {
			this.__bounds.height = y - this.__bounds.y;
		}
	},
	__readGraphicsData: function(graphicsData) {
		var data = new (openfl__$internal_renderer_DrawCommandReader().default)(this.__commands);
		var path = null;
		var stroke;
		var _g = 0;
		var _g1 = this.__commands.types;
		while(_g < _g1.length) {
			var type = _g1[_g];
			++_g;
			switch((Type().default).enumIndex(type)) {
			case 3:case 4:case 5:case 6:case 7:case 8:case 15:case 16:
				if(path == null) {
					path = new (openfl_display_GraphicsPath().default)();
				}
				break;
			default:
				if(path != null) {
					graphicsData.push(path);
					path = null;
				}
			}
			switch((Type().default).enumIndex(type)) {
			case 0:
				var c = data.readBeginBitmapFill();
				graphicsData.push(new (openfl_display_GraphicsBitmapFill().default)(c.obj(0),c.obj(1),c.bool(0),c.bool(1)));
				break;
			case 1:
				var c1 = data.readBeginFill();
				graphicsData.push(new (openfl_display_GraphicsSolidFill().default)(c1["int"](0),1));
				break;
			case 2:
				var c2 = data.readBeginGradientFill();
				graphicsData.push(new (openfl_display_GraphicsGradientFill().default)(c2.obj(0),c2.iArr(0),c2.fArr(0),c2.iArr(1),c2.obj(1),c2.obj(2),c2.obj(3),c2["float"](0)));
				break;
			case 3:
				var c3 = data.readCubicCurveTo();
				path.cubicCurveTo(c3["float"](0),c3["float"](1),c3["float"](2),c3["float"](3),c3["float"](4),c3["float"](5));
				break;
			case 4:
				var c4 = data.readCurveTo();
				path.curveTo(c4["float"](0),c4["float"](1),c4["float"](2),c4["float"](3));
				break;
			case 5:
				var c5 = data.readDrawCircle();
				path.__drawCircle(c5["float"](0),c5["float"](1),c5["float"](2));
				break;
			case 6:
				var c6 = data.readDrawEllipse();
				path.__drawEllipse(c6["float"](0),c6["float"](1),c6["float"](2),c6["float"](3));
				break;
			case 7:
				var c7 = data.readDrawRect();
				path.__drawRect(c7["float"](0),c7["float"](1),c7["float"](2),c7["float"](3));
				break;
			case 8:
				var c8 = data.readDrawRoundRect();
				path.__drawRoundRect(c8["float"](0),c8["float"](1),c8["float"](2),c8["float"](3),c8["float"](4),c8.obj(0) != null ? c8.obj(0) : c8["float"](4));
				break;
			case 11:
				data.readEndFill();
				graphicsData.push(new (openfl_display_GraphicsEndFill().default)());
				break;
			case 12:
				var c9 = data.readLineBitmapStyle();
				path = null;
				break;
			case 13:
				var c10 = data.readLineGradientStyle();
				break;
			case 14:
				var c11 = data.readLineStyle();
				stroke = new (openfl_display_GraphicsStroke().default)(c11.obj(0),c11.bool(0),c11.obj(1),c11.obj(2),c11.obj(3),c11["float"](1));
				stroke.fill = new (openfl_display_GraphicsSolidFill().default)(c11["int"](0),c11["float"](0));
				graphicsData.push(stroke);
				break;
			case 15:
				var c12 = data.readLineTo();
				path.lineTo(c12["float"](0),c12["float"](1));
				break;
			case 16:
				var c13 = data.readMoveTo();
				path.moveTo(c13["float"](0),c13["float"](1));
				break;
			default:
				data.skip(type);
			}
		}
		if(path != null) {
			graphicsData.push(path);
		}
	},
	__update: function() {
		if(this.__bounds == null || this.__bounds.width <= 0 || this.__bounds.height <= 0) {
			return;
		}
		var parentTransform = this.__owner.__renderTransform;
		var scaleX = 1.0;
		var scaleY = 1.0;
		if(parentTransform != null) {
			if(parentTransform.b == 0) {
				scaleX = Math.abs(parentTransform.a);
			} else {
				scaleX = Math.sqrt(parentTransform.a * parentTransform.a + parentTransform.b * parentTransform.b);
			}
			if(parentTransform.c == 0) {
				scaleY = Math.abs(parentTransform.d);
			} else {
				scaleY = Math.sqrt(parentTransform.c * parentTransform.c + parentTransform.d * parentTransform.d);
			}
		} else {
			return;
		}
		var width = this.__bounds.width * scaleX;
		var height = this.__bounds.height * scaleY;
		if(width < 1 || height < 1) {
			if(this.__width >= 1 || this.__height >= 1) {
				this.set___dirty(true);
			}
			this.__width = 0;
			this.__height = 0;
			return;
		}
		if(Graphics.maxTextureWidth != null && width > Graphics.maxTextureWidth) {
			width = Graphics.maxTextureWidth;
			scaleX = Graphics.maxTextureWidth / this.__bounds.width;
		}
		if(Graphics.maxTextureWidth != null && height > Graphics.maxTextureHeight) {
			height = Graphics.maxTextureHeight;
			scaleY = Graphics.maxTextureHeight / this.__bounds.height;
		}
		this.__renderTransform.a = width / this.__bounds.width;
		this.__renderTransform.d = height / this.__bounds.height;
		var inverseA = 1 / this.__renderTransform.a;
		var inverseD = 1 / this.__renderTransform.d;
		this.__worldTransform.a = inverseA * parentTransform.a;
		this.__worldTransform.b = inverseA * parentTransform.b;
		this.__worldTransform.c = inverseD * parentTransform.c;
		this.__worldTransform.d = inverseD * parentTransform.d;
		var x = this.__bounds.x;
		var y = this.__bounds.y;
		var tx = x * parentTransform.a + y * parentTransform.c + parentTransform.tx;
		var ty = x * parentTransform.b + y * parentTransform.d + parentTransform.ty;
		this.__worldTransform.tx = Math.floor(tx);
		this.__worldTransform.ty = Math.floor(ty);
		this.__renderTransform.tx = this.__worldTransform.__transformInverseX(tx,ty);
		this.__renderTransform.ty = this.__worldTransform.__transformInverseY(tx,ty);
		var newWidth = Math.ceil(width + this.__renderTransform.tx);
		var newHeight = Math.ceil(height + this.__renderTransform.ty);
		if(newWidth != this.__width || newHeight != this.__height) {
			this.set___dirty(true);
		}
		this.__width = newWidth;
		this.__height = newHeight;
	},
	set___dirty: function(value) {
		if(value && this.__owner != null) {
			this.__owner.__setRenderDirty();
		}
		return this.__dirty = value;
	}
};
Graphics.prototype.__class__ = $hxClasses["openfl.display.Graphics"] = Graphics;
// Init
// Statics
Graphics.maxTextureHeight = null
Graphics.maxTextureWidth = null
// Export
exports.default = Graphics;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 70 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: openfl.display.GraphicsFillType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var GraphicsFillType = $hxClasses["openfl.display.GraphicsFillType"] = { __ename__: ["openfl","display","GraphicsFillType"], __constructs__: ["SOLID_FILL","GRADIENT_FILL","BITMAP_FILL","END_FILL"] }
GraphicsFillType.BITMAP_FILL = ["BITMAP_FILL",2];
GraphicsFillType.BITMAP_FILL.toString = $estr;
GraphicsFillType.BITMAP_FILL.__enum__ = GraphicsFillType;
GraphicsFillType.GRADIENT_FILL = ["GRADIENT_FILL",1];
GraphicsFillType.GRADIENT_FILL.toString = $estr;
GraphicsFillType.GRADIENT_FILL.__enum__ = GraphicsFillType;
GraphicsFillType.END_FILL = ["END_FILL",3];
GraphicsFillType.END_FILL.toString = $estr;
GraphicsFillType.END_FILL.__enum__ = GraphicsFillType;
GraphicsFillType.SOLID_FILL = ["SOLID_FILL",0];
GraphicsFillType.SOLID_FILL.toString = $estr;
GraphicsFillType.SOLID_FILL.__enum__ = GraphicsFillType;
exports.default = GraphicsFillType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 71 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.errors.ArgumentError
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_errors_Error() {return __webpack_require__(30);}
// Constructor
var ArgumentError = function(message) {
	if(message == null) {
		message = "";
	}
	(openfl_errors_Error().default).call(this,message);
	this.name = "ArgumentError";
}
// Meta
ArgumentError.__name__ = ["openfl","errors","ArgumentError"];
ArgumentError.__super__ = (openfl_errors_Error().default);
ArgumentError.prototype = $extend((openfl_errors_Error().default).prototype, {
	
});
ArgumentError.prototype.__class__ = $hxClasses["openfl.errors.ArgumentError"] = ArgumentError;
// Init
// Statics
// Export
exports.default = ArgumentError;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 72 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.IGraphicsFill
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IGraphicsFill = function() {}
// Meta
IGraphicsFill.__name__ = ["openfl","display","IGraphicsFill"];
IGraphicsFill.prototype = {
	
};
IGraphicsFill.prototype.__class__ = $hxClasses["openfl.display.IGraphicsFill"] = IGraphicsFill;
// Init
// Statics
// Export
exports.default = IGraphicsFill;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 73 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.BytePointerData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var BytePointerData = function(bytes,offset) {
	this.bytes = bytes;
	this.offset = offset;
}
// Meta
BytePointerData.__name__ = ["lime","utils","BytePointerData"];
BytePointerData.prototype = {
	
};
BytePointerData.prototype.__class__ = $hxClasses["lime.utils.BytePointerData"] = BytePointerData;
// Init
// Statics
// Export
exports.default = BytePointerData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 74 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils._Bytes.Bytes_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_io_Bytes() {return __webpack_require__(16);}
function lime_app_Future() {return __webpack_require__(24);}
function lime_net__$HTTPRequest_$lime_$utils_$Bytes() {return __webpack_require__(306);}
// Constructor
var Bytes_Impl_ = function(){}
// Meta
Bytes_Impl_.__name__ = ["lime","utils","_Bytes","Bytes_Impl_"];
Bytes_Impl_.prototype = {
	
};
Bytes_Impl_.prototype.__class__ = $hxClasses["lime.utils._Bytes.Bytes_Impl_"] = Bytes_Impl_;
// Init
// Statics
Bytes_Impl_._new = function(length,bytesData) {
	var this1 = new (haxe_io_Bytes().default)(bytesData);
	return this1;
}
Bytes_Impl_.alloc = function(length) {
	var bytes = (haxe_io_Bytes().default).alloc(length);
	return Bytes_Impl_._new(bytes.get_length(),bytes.getData());
}
Bytes_Impl_.fastGet = function(b,pos) {
	return (haxe_io_Bytes().default).fastGet(b,pos);
}
Bytes_Impl_.fromBytes = function(bytes) {
	if(bytes == null) {
		return null;
	}
	return Bytes_Impl_._new(bytes.get_length(),bytes.getData());
}
Bytes_Impl_.fromFile = function(path) {
	return null;
}
Bytes_Impl_.loadFromBytes = function(bytes) {
	return (lime_app_Future().default).withValue(Bytes_Impl_.fromBytes(bytes));
}
Bytes_Impl_.loadFromFile = function(path) {
	var request = new (lime_net__$HTTPRequest_$lime_$utils_$Bytes().default)();
	return request.load(path);
}
Bytes_Impl_.ofData = function(b) {
	var bytes = (haxe_io_Bytes().default).ofData(b);
	return Bytes_Impl_._new(bytes.get_length(),bytes.getData());
}
Bytes_Impl_.ofString = function(s) {
	var bytes = (haxe_io_Bytes().default).ofString(s);
	return Bytes_Impl_._new(bytes.get_length(),bytes.getData());
}
// Export
exports.default = Bytes_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 75 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.InteractiveObject
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
// Constructor
var InteractiveObject = function() {
	(openfl_display_DisplayObject().default).call(this);
	this.doubleClickEnabled = false;
	this.mouseEnabled = true;
	this.needsSoftKeyboard = false;
	this.__tabEnabled = null;
	this.__tabIndex = -1;
}
// Meta
InteractiveObject.__name__ = ["openfl","display","InteractiveObject"];
InteractiveObject.__super__ = (openfl_display_DisplayObject().default);
InteractiveObject.prototype = $extend((openfl_display_DisplayObject().default).prototype, {
	requestSoftKeyboard: function() {
		(openfl__$internal_Lib().default).notImplemented({ fileName : "InteractiveObject.hx", lineNumber : 55, className : "openfl.display.InteractiveObject", methodName : "requestSoftKeyboard"});
		return false;
	},
	__allowMouseFocus: function() {
		return this.get_tabEnabled();
	},
	__getInteractive: function(stack) {
		if(stack != null) {
			stack.push(this);
			if(this.parent != null) {
				this.parent.__getInteractive(stack);
			}
		}
		return true;
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled) {
			return false;
		}
		return (openfl_display_DisplayObject().default).prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly,hitObject);
	},
	get_tabEnabled: function() {
		if(this.__tabEnabled == true) {
			return true;
		} else {
			return false;
		}
	},
	set_tabEnabled: function(value) {
		return this.__tabEnabled = value;
	},
	get_tabIndex: function() {
		return this.__tabIndex;
	},
	set_tabIndex: function(value) {
		return this.__tabIndex = value;
	}
});
InteractiveObject.prototype.__class__ = $hxClasses["openfl.display.InteractiveObject"] = InteractiveObject;
// Init
Object.defineProperties(InteractiveObject.prototype,{ "tabEnabled" : { get : function () { return this.get_tabEnabled (); }, set : function (v) { return this.set_tabEnabled (v); }}, "tabIndex" : { get : function () { return this.get_tabIndex (); }, set : function (v) { return this.set_tabIndex (v); }}});
// Statics
// Export
exports.default = InteractiveObject;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 76 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.ui.MouseCursor
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var MouseCursor = $hxClasses["lime.ui.MouseCursor"] = { __ename__: ["lime","ui","MouseCursor"], __constructs__: ["ARROW","CROSSHAIR","DEFAULT","MOVE","POINTER","RESIZE_NESW","RESIZE_NS","RESIZE_NWSE","RESIZE_WE","TEXT","WAIT","WAIT_ARROW","CUSTOM"] }
MouseCursor.MOVE = ["MOVE",3];
MouseCursor.MOVE.toString = $estr;
MouseCursor.MOVE.__enum__ = MouseCursor;
MouseCursor.RESIZE_NESW = ["RESIZE_NESW",5];
MouseCursor.RESIZE_NESW.toString = $estr;
MouseCursor.RESIZE_NESW.__enum__ = MouseCursor;
MouseCursor.ARROW = ["ARROW",0];
MouseCursor.ARROW.toString = $estr;
MouseCursor.ARROW.__enum__ = MouseCursor;
MouseCursor.POINTER = ["POINTER",4];
MouseCursor.POINTER.toString = $estr;
MouseCursor.POINTER.__enum__ = MouseCursor;
MouseCursor.RESIZE_NWSE = ["RESIZE_NWSE",7];
MouseCursor.RESIZE_NWSE.toString = $estr;
MouseCursor.RESIZE_NWSE.__enum__ = MouseCursor;
MouseCursor.CROSSHAIR = ["CROSSHAIR",1];
MouseCursor.CROSSHAIR.toString = $estr;
MouseCursor.CROSSHAIR.__enum__ = MouseCursor;
MouseCursor.RESIZE_NS = ["RESIZE_NS",6];
MouseCursor.RESIZE_NS.toString = $estr;
MouseCursor.RESIZE_NS.__enum__ = MouseCursor;
MouseCursor.RESIZE_WE = ["RESIZE_WE",8];
MouseCursor.RESIZE_WE.toString = $estr;
MouseCursor.RESIZE_WE.__enum__ = MouseCursor;
MouseCursor.TEXT = ["TEXT",9];
MouseCursor.TEXT.toString = $estr;
MouseCursor.TEXT.__enum__ = MouseCursor;
MouseCursor.WAIT = ["WAIT",10];
MouseCursor.WAIT.toString = $estr;
MouseCursor.WAIT.__enum__ = MouseCursor;
MouseCursor.DEFAULT = ["DEFAULT",2];
MouseCursor.DEFAULT.toString = $estr;
MouseCursor.DEFAULT.__enum__ = MouseCursor;
MouseCursor.CUSTOM = ["CUSTOM",12];
MouseCursor.CUSTOM.toString = $estr;
MouseCursor.CUSTOM.__enum__ = MouseCursor;
MouseCursor.WAIT_ARROW = ["WAIT_ARROW",11];
MouseCursor.WAIT_ARROW.toString = $estr;
MouseCursor.WAIT_ARROW.__enum__ = MouseCursor;
exports.default = MouseCursor;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 77 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.TextEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var TextEvent = function(type,bubbles,cancelable,text) {
	if(text == null) {
		text = "";
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.text = text;
}
// Meta
TextEvent.__name__ = ["openfl","events","TextEvent"];
TextEvent.__super__ = (openfl_events_Event().default);
TextEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new TextEvent(this.type,this.bubbles,this.cancelable,this.text);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("TextEvent",["type","bubbles","cancelable","text"]);
	}
});
TextEvent.prototype.__class__ = $hxClasses["openfl.events.TextEvent"] = TextEvent;
// Init
// Statics
TextEvent.LINK = "link"
TextEvent.TEXT_INPUT = "textInput"
// Export
exports.default = TextEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 78 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.filters.BitmapFilter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var BitmapFilter = function() {
	this.__bottomExtension = 0;
	this.__leftExtension = 0;
	this.__needSecondBitmapData = true;
	this.__numShaderPasses = 0;
	this.__preserveObject = false;
	this.__rightExtension = 0;
	this.__topExtension = 0;
}
// Meta
BitmapFilter.__name__ = ["openfl","filters","BitmapFilter"];
BitmapFilter.prototype = {
	clone: function() {
		return new BitmapFilter();
	},
	__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) {
		return sourceBitmapData;
	},
	__initShader: function(renderSession,pass) {
		return renderSession.shaderManager.defaultShader;
	}
};
BitmapFilter.prototype.__class__ = $hxClasses["openfl.filters.BitmapFilter"] = BitmapFilter;
// Init
// Statics
// Export
exports.default = BitmapFilter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 79 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.URLLoader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function lime_net__$HTTPRequest_$openfl_$utils_$ByteArray() {return __webpack_require__(335);}
function openfl_events_Event() {return __webpack_require__(9);}
function lime_net__$HTTPRequest_$String() {return __webpack_require__(192);}
function openfl_events_HTTPStatusEvent() {return __webpack_require__(193);}
function openfl_net_URLRequestHeader() {return __webpack_require__(194);}
function Std() {return __webpack_require__(4);}
function openfl_net_URLVariables() {return __webpack_require__(134);}
function Reflect() {return __webpack_require__(5);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function lime_net_HTTPRequestHeader() {return __webpack_require__(155);}
function openfl_events_SecurityErrorEvent() {return __webpack_require__(195);}
function openfl_events_IOErrorEvent() {return __webpack_require__(101);}
function openfl_events_ProgressEvent() {return __webpack_require__(53);}
// Constructor
var URLLoader = function(request) {
	(openfl_events_EventDispatcher().default).call(this);
	this.bytesLoaded = 0;
	this.bytesTotal = 0;
	this.dataFormat = "text";
	if(request != null) {
		this.load(request);
	}
}
// Meta
URLLoader.__name__ = ["openfl","net","URLLoader"];
URLLoader.__super__ = (openfl_events_EventDispatcher().default);
URLLoader.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	close: function() {
		if(this.__httpRequest != null) {
			this.__httpRequest.cancel();
		}
	},
	load: function(request) {
		var _gthis = this;
		if(this.dataFormat == "binary") {
			var httpRequest = new (lime_net__$HTTPRequest_$openfl_$utils_$ByteArray().default)();
			this.__prepareRequest(httpRequest,request);
			httpRequest.load().onProgress($bind(this,this.httpRequest_onProgress)).onError($bind(this,this.httpRequest_onError)).onComplete(function(data) {
				_gthis.__dispatchStatus();
				_gthis.data = data;
				var event = new (openfl_events_Event().default)("complete");
				_gthis.dispatchEvent(event);
			});
		} else {
			var httpRequest1 = new (lime_net__$HTTPRequest_$String().default)();
			this.__prepareRequest(httpRequest1,request);
			httpRequest1.load().onProgress($bind(this,this.httpRequest_onProgress)).onError($bind(this,this.httpRequest_onError)).onComplete(function(data1) {
				_gthis.__dispatchStatus();
				_gthis.data = data1;
				var event1 = new (openfl_events_Event().default)("complete");
				_gthis.dispatchEvent(event1);
			});
		}
	},
	__dispatchStatus: function() {
		var event = new (openfl_events_HTTPStatusEvent().default)("httpStatus",false,false,this.__httpRequest.responseStatus);
		event.responseURL = this.__httpRequest.uri;
		var headers = [];
		if(this.__httpRequest.enableResponseHeaders && this.__httpRequest.responseHeaders != null) {
			var _g = 0;
			var _g1 = this.__httpRequest.responseHeaders;
			while(_g < _g1.length) {
				var header = _g1[_g];
				++_g;
				headers.push(new (openfl_net_URLRequestHeader().default)(header.name,header.value));
			}
		}
		event.responseHeaders = headers;
		this.dispatchEvent(event);
	},
	__prepareRequest: function(httpRequest,request) {
		this.__httpRequest = httpRequest;
		this.__httpRequest.uri = request.url;
		var _g = request.method;
		var tmp;
		switch(_g) {
		case "DELETE":
			tmp = "DELETE";
			break;
		case "HEAD":
			tmp = "HEAD";
			break;
		case "OPTIONS":
			tmp = "OPTIONS";
			break;
		case "POST":
			tmp = "POST";
			break;
		case "PUT":
			tmp = "PUT";
			break;
		default:
			tmp = "GET";
		}
		this.__httpRequest.method = tmp;
		if(request.data != null) {
			if((Std().default)["is"](request.data,(openfl_net_URLVariables().default))) {
				var fields = (Reflect().default).fields(request.data);
				var _g1 = 0;
				while(_g1 < fields.length) {
					var field = fields[_g1];
					++_g1;
					this.__httpRequest.formData.set(field,(Reflect().default).field(request.data,field));
				}
			} else if((Std().default)["is"](request.data,(haxe_io_Bytes().default))) {
				this.__httpRequest.data = request.data;
			} else {
				this.__httpRequest.data = (haxe_io_Bytes().default).ofString((Std().default).string(request.data));
			}
		}
		this.__httpRequest.contentType = request.contentType;
		if(request.requestHeaders != null) {
			var _g11 = 0;
			var _g2 = request.requestHeaders;
			while(_g11 < _g2.length) {
				var header = _g2[_g11];
				++_g11;
				this.__httpRequest.headers.push(new (lime_net_HTTPRequestHeader().default)(header.name,header.value));
			}
		}
		this.__httpRequest.followRedirects = request.followRedirects;
		this.__httpRequest.timeout = (Std().default)["int"](request.idleTimeout);
		this.__httpRequest.withCredentials = request.manageCookies;
		var userAgent = request.userAgent;
		if(userAgent == null) {
			userAgent = "Mozilla/5.0 (Windows; U; en) AppleWebKit/420+ (KHTML, like Gecko) OpenFL/1.0";
		}
		this.__httpRequest.userAgent = request.userAgent;
		this.__httpRequest.enableResponseHeaders = true;
	},
	httpRequest_onError: function(error) {
		this.__dispatchStatus();
		if(error == 403) {
			var event = new (openfl_events_SecurityErrorEvent().default)("securityError");
			event.text = (Std().default).string(error);
			this.dispatchEvent(event);
		} else {
			var event1 = new (openfl_events_IOErrorEvent().default)("ioError");
			event1.text = (Std().default).string(error);
			this.dispatchEvent(event1);
		}
	},
	httpRequest_onProgress: function(bytesLoaded,bytesTotal) {
		var event = new (openfl_events_ProgressEvent().default)("progress");
		event.bytesLoaded = bytesLoaded;
		event.bytesTotal = bytesTotal;
		this.dispatchEvent(event);
	}
});
URLLoader.prototype.__class__ = $hxClasses["openfl.net.URLLoader"] = URLLoader;
// Init
// Statics
// Export
exports.default = URLLoader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 80 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.io.Path
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var Path = function(path) {
	switch(path) {
	case ".":case "..":
		this.dir = path;
		this.file = "";
		return;
	}
	var c1 = path.lastIndexOf("/");
	var c2 = path.lastIndexOf("\\");
	if(c1 < c2) {
		this.dir = (HxOverrides().default).substr(path,0,c2);
		path = (HxOverrides().default).substr(path,c2 + 1,null);
		this.backslash = true;
	} else if(c2 < c1) {
		this.dir = (HxOverrides().default).substr(path,0,c1);
		path = (HxOverrides().default).substr(path,c1 + 1,null);
	} else {
		this.dir = null;
	}
	var cp = path.lastIndexOf(".");
	if(cp != -1) {
		this.ext = (HxOverrides().default).substr(path,cp + 1,null);
		this.file = (HxOverrides().default).substr(path,0,cp);
	} else {
		this.ext = null;
		this.file = path;
	}
}
// Meta
Path.__name__ = ["haxe","io","Path"];
Path.prototype = {
	toString: function() {
		return (this.dir == null ? "" : this.dir + (this.backslash ? "\\" : "/")) + this.file + (this.ext == null ? "" : "." + this.ext);
	}
};
Path.prototype.__class__ = $hxClasses["haxe.io.Path"] = Path;
// Init
// Statics
Path.withoutDirectory = function(path) {
	var s = new Path(path);
	s.dir = null;
	return s.toString();
}
Path.directory = function(path) {
	var s = new Path(path);
	if(s.dir == null) {
		return "";
	}
	return s.dir;
}
Path.extension = function(path) {
	var s = new Path(path);
	if(s.ext == null) {
		return "";
	}
	return s.ext;
}
// Export
exports.default = Path;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 81 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.media.SoundTransform
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var SoundTransform = function(vol,panning) {
	if(panning == null) {
		panning = 0;
	}
	if(vol == null) {
		vol = 1;
	}
	this.volume = vol;
	this.pan = panning;
	this.leftToLeft = 0;
	this.leftToRight = 0;
	this.rightToLeft = 0;
	this.rightToRight = 0;
}
// Meta
SoundTransform.__name__ = ["openfl","media","SoundTransform"];
SoundTransform.prototype = {
	clone: function() {
		return new SoundTransform(this.volume,this.pan);
	}
};
SoundTransform.prototype.__class__ = $hxClasses["openfl.media.SoundTransform"] = SoundTransform;
// Init
// Statics
// Export
exports.default = SoundTransform;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 82 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.textures.TextureBase
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl__$internal_stage3D_opengl_GLTextureBase() {return __webpack_require__(105);}
// Constructor
var TextureBase = function(context) {
	(openfl_events_EventDispatcher().default).call(this);
	this.__context = context;
	(openfl__$internal_stage3D_opengl_GLTextureBase().default).create(this,this.__context.__renderSession);
}
// Meta
TextureBase.__name__ = ["openfl","display3D","textures","TextureBase"];
TextureBase.__super__ = (openfl_events_EventDispatcher().default);
TextureBase.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	dispose: function() {
		(openfl__$internal_stage3D_opengl_GLTextureBase().default).dispose(this,this.__context.__renderSession);
	},
	__getImage: function(bitmapData) {
		return (openfl__$internal_stage3D_opengl_GLTextureBase().default).getImage(this,this.__context.__renderSession,bitmapData);
	},
	__getTexture: function() {
		return this.__textureID;
	},
	__setSamplerState: function(state) {
		(openfl__$internal_stage3D_opengl_GLTextureBase().default).setSamplerState(this,this.__context.__renderSession,state);
	}
});
TextureBase.prototype.__class__ = $hxClasses["openfl.display3D.textures.TextureBase"] = TextureBase;
// Init
// Statics
// Export
exports.default = TextureBase;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 83 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.AGALConverter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D__$AGALConverter_ProgramType() {return __webpack_require__(143);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
function haxe__$Int64__$_$_$Int64() {return __webpack_require__(54);}
function openfl__$internal_stage3D_RegisterMap() {return __webpack_require__(402);}
function StringBuf() {return __webpack_require__(31);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl__$internal_stage3D__$AGALConverter_DestRegister() {return __webpack_require__(404);}
function openfl__$internal_stage3D__$AGALConverter_SourceRegister() {return __webpack_require__(405);}
function openfl__$internal_stage3D__$AGALConverter_RegisterUsage() {return __webpack_require__(218);}
function openfl__$internal_stage3D__$AGALConverter_SamplerRegister() {return __webpack_require__(406);}
function lime_graphics_opengl_GL() {return __webpack_require__(49);}
// Constructor
var AGALConverter = function(){}
// Meta
AGALConverter.__name__ = ["openfl","_internal","stage3D","AGALConverter"];
AGALConverter.prototype = {
	
};
AGALConverter.prototype.__class__ = $hxClasses["openfl._internal.stage3D.AGALConverter"] = AGALConverter;
// Init
// Statics
AGALConverter.prefixFromType = function(regType,programType) {
	switch(regType) {
	case 0:
		return "va";
	case 1:
		if(programType == (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).VERTEX) {
			return "vc";
		} else {
			return "fc";
		}
		break;
	case 2:
		if(programType == (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).VERTEX) {
			return "vt";
		} else {
			return "ft";
		}
		break;
	case 3:
		return "output_";
	case 4:
		return "v";
	case 5:
		return "sampler";
	default:
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Invalid data!"));
	}
}
AGALConverter.readUInt64 = function(byteArray) {
	var low = byteArray.readInt();
	var high = byteArray.readInt();
	var this1 = new (haxe__$Int64__$_$_$Int64().default)(high,low);
	return this1;
}
AGALConverter.convertToGLSL = function(agal,samplerState) {
	agal.position = 0;
	agal.set_endian("littleEndian");
	var magic = agal.readByte() & 255;
	if(magic == 176) {
		return agal.readUTF();
	}
	if(magic != 160) {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Magic value must be 0xA0, may not be AGAL"));
	}
	var version = agal.readInt();
	if(version != 1) {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Version must be 1"));
	}
	var shaderTypeID = agal.readByte() & 255;
	if(shaderTypeID != 161) {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Shader type ID must be 0xA1"));
	}
	var programType = (agal.readByte() & 255) == 0 ? (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).VERTEX : (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).FRAGMENT;
	var map = new (openfl__$internal_stage3D_RegisterMap().default)();
	var sb = new (StringBuf().default)();
	while(agal.position < (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(agal)) {
		var opcode = agal.readInt();
		var dest = agal.readUnsignedInt();
		var source1 = AGALConverter.readUInt64(agal);
		var source2 = AGALConverter.readUInt64(agal);
		var dr = (openfl__$internal_stage3D__$AGALConverter_DestRegister().default).parse(dest,programType);
		var sr1 = (openfl__$internal_stage3D__$AGALConverter_SourceRegister().default).parse(source1,programType,dr.mask);
		var sr2 = (openfl__$internal_stage3D__$AGALConverter_SourceRegister().default).parse(source2,programType,dr.mask);
		sb.add("\t");
		switch(opcode) {
		case 0:
			sb.add(dr.toGLSL() + " = " + sr1.toGLSL() + "; // mov");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 1:
			sb.add(dr.toGLSL() + " = " + sr1.toGLSL() + " + " + sr2.toGLSL() + "; // add");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 2:
			sb.add(dr.toGLSL() + " = " + sr1.toGLSL() + " - " + sr2.toGLSL() + "; // sub");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 3:
			sb.add(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL() + "; // mul");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 4:
			sb.add(dr.toGLSL() + " = " + sr1.toGLSL() + " / " + sr2.toGLSL() + "; // div");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 5:
			var sr = sr1.toGLSL();
			if(sr.indexOf(".") > -1) {
				sb.add(dr.toGLSL() + " = 1.0 / " + sr1.toGLSL() + "; // rcp");
			} else {
				sb.add(dr.toGLSL() + " = vec4(1) / " + sr1.toGLSL() + "; // rcp");
			}
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 6:
			sb.add(dr.toGLSL() + " = min(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // min");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 7:
			sb.add(dr.toGLSL() + " = max(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // max");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 8:
			sb.add(dr.toGLSL() + " = fract(" + sr1.toGLSL() + "); // frc");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 9:
			sb.add(dr.toGLSL() + " = sqrt(" + sr1.toGLSL() + "); // sqrt");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 10:
			sb.add(dr.toGLSL() + " = inversesqrt(" + sr1.toGLSL() + "); // rsq");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 11:
			sb.add(dr.toGLSL() + " = pow(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "); // pow");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 12:
			sb.add(dr.toGLSL() + " = log2(" + sr1.toGLSL() + "); // log");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 13:
			sb.add(dr.toGLSL() + " = exp2(" + sr1.toGLSL() + "); // exp");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 14:
			sb.add(dr.toGLSL() + " = normalize(" + sr1.toGLSL() + "); // normalize");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 15:
			sb.add(dr.toGLSL() + " = sin(" + sr1.toGLSL() + "); // sin");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 16:
			sb.add(dr.toGLSL() + " = cos(" + sr1.toGLSL() + "); // cos");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 17:
			sr1.sourceMask = sr2.sourceMask = 7;
			sb.add(dr.toGLSL() + " = cross(vec3(" + sr1.toGLSL() + "), vec3(" + sr2.toGLSL() + ")); // crs");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 18:
			sr1.sourceMask = sr2.sourceMask = 7;
			sb.add(dr.toGLSL() + " = vec4(dot(vec3(" + sr1.toGLSL() + "), vec3(" + sr2.toGLSL() + ")))" + dr.getWriteMask() + "; // dp3");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 19:
			sr1.sourceMask = sr2.sourceMask = 15;
			sb.add(dr.toGLSL() + " = vec4(dot(vec4(" + sr1.toGLSL() + "), vec4(" + sr2.toGLSL() + ")))" + dr.getWriteMask() + "; // dp4");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 20:
			sb.add(dr.toGLSL() + " = abs(" + sr1.toGLSL() + "); // abs");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 21:
			sb.add(dr.toGLSL() + " = -" + sr1.toGLSL() + "; // neg");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 22:
			sb.add(dr.toGLSL() + " = clamp(" + sr1.toGLSL() + ", 0.0, 1.0); // saturate");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 23:
			var existingUsage = map.getRegisterUsage(sr2);
			if(existingUsage != (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4 && existingUsage != (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4_ARRAY) {
				sb.add(dr.toGLSL() + " = " + sr1.toGLSL() + " * mat3(" + sr2.toGLSL(false) + "); // m33");
				map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).MATRIX_4_4);
			} else {
				sr1.sourceMask = sr2.sourceMask = 7;
				sb.add(dr.toGLSL() + " = vec3(" + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,0) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,1) + ")," + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,2) + ")); // m33");
				map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,0);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,1);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,2);
			}
			break;
		case 24:
			var existingUsage1 = map.getRegisterUsage(sr2);
			if(existingUsage1 != (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4 && existingUsage1 != (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4_ARRAY) {
				sb.add(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL(false) + "; // m44");
				map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).MATRIX_4_4);
			} else {
				sr1.sourceMask = sr2.sourceMask = 15;
				sb.add(dr.toGLSL() + " = vec4(" + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,0) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,1) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,2) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,3) + ")); // m44");
				map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,0);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,1);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,2);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,3);
			}
			break;
		case 25:
			dr.mask &= 7;
			var existingUsage2 = map.getRegisterUsage(sr2);
			if(existingUsage2 != (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4 && existingUsage2 != (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4_ARRAY) {
				sb.add(dr.toGLSL() + " = " + sr1.toGLSL() + " * " + sr2.toGLSL(false) + "; // m34");
				map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).MATRIX_4_4);
			} else {
				sr1.sourceMask = sr2.sourceMask = 15;
				sb.add(dr.toGLSL() + " = vec3(" + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,0) + "), " + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,1) + ")," + "dot(" + sr1.toGLSL(true) + "," + sr2.toGLSL(true,2) + ")); // m34");
				map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,0);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,1);
				map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4,2);
			}
			break;
		case 39:
			sr1.sourceMask = 15;
			sb.add("if (any(lessThan(" + sr1.toGLSL() + ", vec4(0)))) discard;");
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 40:
			var sampler = (openfl__$internal_stage3D__$AGALConverter_SamplerRegister().default).parse(source2,programType);
			var _g = sampler.d;
			switch(_g) {
			case 0:
				if(sampler.t == 2) {
					sr1.sourceMask = 3;
					map.addSaR(sampler,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).SAMPLER_2D_ALPHA);
					sb.add("if (" + sampler.toGLSL() + "_alphaEnabled) {\n");
					sb.add("\t\t" + dr.toGLSL() + " = vec4(texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + ").xyz, texture2D(" + sampler.toGLSL() + "_alpha, " + sr1.toGLSL() + ").x); // tex + alpha\n");
					sb.add("\t} else {\n");
					sb.add("\t\t" + dr.toGLSL() + " = texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex\n");
					sb.add("\t}");
				} else {
					sr1.sourceMask = 3;
					map.addSaR(sampler,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).SAMPLER_2D);
					sb.add(dr.toGLSL() + " = texture2D(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex");
				}
				break;
			case 1:
				if(sampler.t == 2) {
					sr1.sourceMask = 7;
					map.addSaR(sampler,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).SAMPLER_CUBE_ALPHA);
					sb.add("if (" + sampler.toGLSL() + "_alphaEnabled) {\n");
					sb.add("\t\t" + dr.toGLSL() + " = vec4(textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + ").xyz, textureCube(" + sampler.toGLSL() + "_alpha, " + sr1.toGLSL() + ").x); // tex + alpha\n");
					sb.add("\t} else {\n");
					sb.add("\t\t" + dr.toGLSL() + " = textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex");
					sb.add("\t}");
				} else {
					sr1.sourceMask = 7;
					sb.add(dr.toGLSL() + " = textureCube(" + sampler.toGLSL() + ", " + sr1.toGLSL() + "); // tex");
					map.addSaR(sampler,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).SAMPLER_CUBE);
				}
				break;
			}
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			if(samplerState != null) {
				samplerState[sampler.n] = sampler.toSamplerState();
			}
			break;
		case 41:
			sr1.sourceMask = sr2.sourceMask = 15;
			sb.add(dr.toGLSL() + " = vec4(greaterThanEqual(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // ste");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 42:
			sr1.sourceMask = sr2.sourceMask = 15;
			sb.add(dr.toGLSL() + " = vec4(lessThan(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // slt");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 44:
			sr1.sourceMask = sr2.sourceMask = 15;
			sb.add(dr.toGLSL() + " = vec4(equal(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // seq");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		case 45:
			sr1.sourceMask = sr2.sourceMask = 15;
			sb.add(dr.toGLSL() + " = vec4(notEqual(" + sr1.toGLSL() + ", " + sr2.toGLSL() + "))" + dr.getWriteMask() + "; // sne");
			map.addDR(dr,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr1,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			map.addSR(sr2,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			break;
		default:
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Opcode " + opcode));
		}
		sb.add("\n");
	}
	if(AGALConverter.limitedProfile == null) {
		var version1 = (lime_graphics_opengl_GL().default).getParameter(7938);
		AGALConverter.limitedProfile = version1.indexOf("OpenGL ES") > -1 || version1.indexOf("WebGL") > -1;
	}
	var glsl = new (StringBuf().default)();
	glsl.add("// AGAL " + (programType == (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).VERTEX ? "vertex" : "fragment") + " shader\n");
	if(AGALConverter.limitedProfile) {
		glsl.add("#version 100\n");
		glsl.add("precision highp float;\n");
	} else {
		glsl.add("#version 120\n");
	}
	glsl.add(map.toGLSL(false));
	if(programType == (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).VERTEX) {
		glsl.add("uniform vec4 vcPositionScale;\n");
	}
	glsl.add("void main() {\n");
	glsl.add(map.toGLSL(true));
	glsl.add(sb.toString());
	if(programType == (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).VERTEX) {
		glsl.add("\tgl_Position *= vcPositionScale;\n");
	}
	glsl.add("}\n");
	return glsl.toString();
}
AGALConverter.limitedProfile = true
// Export
exports.default = AGALConverter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 84 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system.Clipboard
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
function lime_app_Application() {return __webpack_require__(63);}
// Constructor
var Clipboard = function(){}
// Meta
Clipboard.__name__ = ["lime","system","Clipboard"];
Clipboard.prototype = {
	
};
Clipboard.prototype.__class__ = $hxClasses["lime.system.Clipboard"] = Clipboard;
// Init
// Statics
Clipboard.__update = function() {
	var cacheText = Clipboard._text;
	if(Clipboard._text != cacheText) {
		Clipboard.onUpdate.dispatch();
	}
}
Clipboard.get_text = function() {
	return Clipboard._text;
}
Clipboard.set_text = function(value) {
	var cacheText = Clipboard._text;
	Clipboard._text = value;
	var $window = (lime_app_Application().default).current.get_window();
	if($window != null) {
		$window.backend.setClipboard(value);
	}
	if(Clipboard._text != cacheText) {
		Clipboard.onUpdate.dispatch();
	}
	return value;
}
Clipboard.onUpdate = new (lime_app__$Event_$Void_$Void().default)()
// Export
exports.default = Clipboard;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 85 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.ui.Gamepad
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_ui_Joystick() {return __webpack_require__(86);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
function lime_app__$Event_$lime_$ui_$Gamepad_$Void() {return __webpack_require__(246);}
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
function lime_app__$Event_$lime_$ui_$GamepadButton_$Void() {return __webpack_require__(247);}
function lime_app__$Event_$lime_$ui_$GamepadAxis_$Float_$Void() {return __webpack_require__(248);}
// Constructor
var Gamepad = function(id) {
	this.onDisconnect = new (lime_app__$Event_$Void_$Void().default)();
	this.onButtonUp = new (lime_app__$Event_$lime_$ui_$GamepadButton_$Void().default)();
	this.onButtonDown = new (lime_app__$Event_$lime_$ui_$GamepadButton_$Void().default)();
	this.onAxisMove = new (lime_app__$Event_$lime_$ui_$GamepadAxis_$Float_$Void().default)();
	this.id = id;
	this.connected = true;
}
// Meta
Gamepad.__name__ = ["lime","ui","Gamepad"];
Gamepad.prototype = {
	get_guid: function() {
		var devices = (lime_ui_Joystick().default).__getDeviceData();
		return devices[this.id].id;
	},
	get_name: function() {
		var devices = (lime_ui_Joystick().default).__getDeviceData();
		return devices[this.id].id;
	}
};
Gamepad.prototype.__class__ = $hxClasses["lime.ui.Gamepad"] = Gamepad;
// Init
// Statics
Gamepad.addMappings = function(mappings) {
}
Gamepad.__connect = function(id) {
	if(!Gamepad.devices.exists(id)) {
		var gamepad = new Gamepad(id);
		Gamepad.devices.set(id,gamepad);
		Gamepad.onConnect.dispatch(gamepad);
	}
}
Gamepad.__disconnect = function(id) {
	var gamepad = Gamepad.devices.get(id);
	if(gamepad != null) {
		gamepad.connected = false;
	}
	Gamepad.devices.remove(id);
	if(gamepad != null) {
		gamepad.onDisconnect.dispatch();
	}
}
Gamepad.devices = new (haxe_ds_IntMap().default)()
Gamepad.onConnect = new (lime_app__$Event_$lime_$ui_$Gamepad_$Void().default)()
// Export
exports.default = Gamepad;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 86 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.ui.Joystick
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_IntMap() {return __webpack_require__(22);}
function lime_app__$Event_$lime_$ui_$Joystick_$Void() {return __webpack_require__(242);}
function lime_app__$Event_$Int_$Float_$Float_$Void() {return __webpack_require__(243);}
function lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void() {return __webpack_require__(244);}
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
function lime_app__$Event_$Int_$Void() {return __webpack_require__(108);}
function lime_app__$Event_$Int_$Float_$Void() {return __webpack_require__(245);}
// Constructor
var Joystick = function(id) {
	this.onTrackballMove = new (lime_app__$Event_$Int_$Float_$Float_$Void().default)();
	this.onHatMove = new (lime_app__$Event_$Int_$lime_$ui_$JoystickHatPosition_$Void().default)();
	this.onDisconnect = new (lime_app__$Event_$Void_$Void().default)();
	this.onButtonUp = new (lime_app__$Event_$Int_$Void().default)();
	this.onButtonDown = new (lime_app__$Event_$Int_$Void().default)();
	this.onAxisMove = new (lime_app__$Event_$Int_$Float_$Void().default)();
	this.id = id;
	this.connected = true;
}
// Meta
Joystick.__name__ = ["lime","ui","Joystick"];
Joystick.prototype = {
	get_guid: function() {
		var devices = Joystick.__getDeviceData();
		return devices[this.id].id;
	},
	get_name: function() {
		var devices = Joystick.__getDeviceData();
		return devices[this.id].id;
	},
	get_numAxes: function() {
		var devices = Joystick.__getDeviceData();
		return devices[this.id].axes.length;
	},
	get_numButtons: function() {
		var devices = Joystick.__getDeviceData();
		return devices[this.id].buttons.length;
	},
	get_numHats: function() {
		return 0;
	},
	get_numTrackballs: function() {
		return 0;
	}
};
Joystick.prototype.__class__ = $hxClasses["lime.ui.Joystick"] = Joystick;
// Init
// Statics
Joystick.__connect = function(id) {
	if(!Joystick.devices.exists(id)) {
		var joystick = new Joystick(id);
		Joystick.devices.set(id,joystick);
		Joystick.onConnect.dispatch(joystick);
	}
}
Joystick.__disconnect = function(id) {
	var joystick = Joystick.devices.get(id);
	if(joystick != null) {
		joystick.connected = false;
	}
	Joystick.devices.remove(id);
	if(joystick != null) {
		joystick.onDisconnect.dispatch();
	}
}
Joystick.__getDeviceData = function() {
	if(navigator.getGamepads) {
		return navigator.getGamepads();
	} else if(navigator.webkitGetGamepads) {
		return navigator.webkitGetGamepads();
	} else {
		return null;
	}
}
Joystick.devices = new (haxe_ds_IntMap().default)()
Joystick.onConnect = new (lime_app__$Event_$lime_$ui_$Joystick_$Void().default)()
// Export
exports.default = Joystick;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 87 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.graphics.opengl.GLContextType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var GLContextType = $hxClasses["lime.graphics.opengl.GLContextType"] = { __ename__: ["lime","graphics","opengl","GLContextType"], __constructs__: ["OPENGL","GLES","WEBGL"] }
GLContextType.OPENGL = ["OPENGL",0];
GLContextType.OPENGL.toString = $estr;
GLContextType.OPENGL.__enum__ = GLContextType;
GLContextType.WEBGL = ["WEBGL",2];
GLContextType.WEBGL.toString = $estr;
GLContextType.WEBGL.__enum__ = GLContextType;
GLContextType.GLES = ["GLES",1];
GLContextType.GLES.toString = $estr;
GLContextType.GLES.__enum__ = GLContextType;
exports.default = GLContextType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 88 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.media.AudioBuffer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_crypto_Base64() {return __webpack_require__(282);}
function lime_media_howlerjs_Howl() {return __webpack_require__(283);}
function lime_app_Promise() {return __webpack_require__(39);}
function lime_utils_Log() {return __webpack_require__(23);}
// Constructor
var AudioBuffer = function() {
}
// Meta
AudioBuffer.__name__ = ["lime","media","AudioBuffer"];
AudioBuffer.prototype = {
	dispose: function() {
		this.__srcHowl.unload();
	},
	get_src: function() {
		return this.__srcHowl;
	},
	set_src: function(value) {
		return this.__srcHowl = value;
	}
};
AudioBuffer.prototype.__class__ = $hxClasses["lime.media.AudioBuffer"] = AudioBuffer;
// Init
{
	var p = AudioBuffer.prototype;
	Object.defineProperties(p,{ "src" : { get : p.get_src, set : p.set_src}});
};
// Statics
AudioBuffer.fromBase64 = function(base64String) {
	if(base64String == null) {
		return null;
	}
	if(base64String.indexOf(",") == -1) {
		base64String = "data:" + AudioBuffer.__getCodec((haxe_crypto_Base64().default).decode(base64String)) + ";base64," + base64String;
	}
	var audioBuffer = new AudioBuffer();
	audioBuffer.set_src(new (lime_media_howlerjs_Howl().Howl)({ src : [base64String], html5 : true, preload : false}));
	return audioBuffer;
}
AudioBuffer.fromBytes = function(bytes) {
	if(bytes == null) {
		return null;
	}
	var audioBuffer = new AudioBuffer();
	audioBuffer.set_src(new (lime_media_howlerjs_Howl().Howl)({ src : ["data:" + AudioBuffer.__getCodec(bytes) + ";base64," + (haxe_crypto_Base64().default).encode(bytes)], html5 : true, preload : false}));
	return audioBuffer;
}
AudioBuffer.fromFile = function(path) {
	if(path == null) {
		return null;
	}
	var audioBuffer = new AudioBuffer();
	audioBuffer.__srcHowl = new (lime_media_howlerjs_Howl().Howl)({ src : [path], preload : false});
	return audioBuffer;
}
AudioBuffer.fromFiles = function(paths) {
	var audioBuffer = new AudioBuffer();
	audioBuffer.__srcHowl = new (lime_media_howlerjs_Howl().Howl)({ src : paths, preload : false});
	return audioBuffer;
}
AudioBuffer.fromVorbisFile = function(vorbisFile) {
	return null;
}
AudioBuffer.loadFromFile = function(path) {
	var promise = new (lime_app_Promise().default)();
	var audioBuffer = AudioBuffer.fromFile(path);
	if(audioBuffer != null) {
		if(audioBuffer != null) {
			audioBuffer.__srcHowl.on("load",function() {
				promise.complete(audioBuffer);
			});
			audioBuffer.__srcHowl.on("loaderror",function(id,msg) {
				promise.error(msg);
			});
			audioBuffer.__srcHowl.load();
		}
	} else {
		promise.error(null);
	}
	return promise.future;
}
AudioBuffer.loadFromFiles = function(paths) {
	var promise = new (lime_app_Promise().default)();
	var audioBuffer = AudioBuffer.fromFiles(paths);
	if(audioBuffer != null) {
		audioBuffer.__srcHowl.on("load",function() {
			promise.complete(audioBuffer);
		});
		audioBuffer.__srcHowl.on("loaderror",function() {
			promise.error(null);
		});
		audioBuffer.__srcHowl.load();
	} else {
		promise.error(null);
	}
	return promise.future;
}
AudioBuffer.__getCodec = function(bytes) {
	var signature = bytes.getString(0,4);
	switch(signature) {
	case "OggS":
		return "audio/ogg";
	case "RIFF":
		if(bytes.getString(8,4) == "WAVE") {
			return "audio/wav";
		} else {
			var _g = bytes.get(2);
			var _g1 = bytes.get(1);
			var _g2 = bytes.get(0);
			switch(_g2) {
			case 73:
				if(_g1 == 68) {
					if(_g == 51) {
						return "audio/mp3";
					}
				}
				break;
			case 255:
				switch(_g1) {
				case 250:case 251:
					return "audio/mp3";
				default:
				}
				break;
			default:
			}
		}
		break;
	case "fLaC":
		return "audio/flac";
	default:
		var _g3 = bytes.get(2);
		var _g11 = bytes.get(1);
		var _g21 = bytes.get(0);
		switch(_g21) {
		case 73:
			if(_g11 == 68) {
				if(_g3 == 51) {
					return "audio/mp3";
				}
			}
			break;
		case 255:
			switch(_g11) {
			case 250:case 251:
				return "audio/mp3";
			default:
			}
			break;
		default:
		}
	}
	(lime_utils_Log().default).error("Unsupported sound format",{ fileName : "AudioBuffer.hx", lineNumber : 493, className : "lime.media.AudioBuffer", methodName : "__getCodec"});
	return null;
}
// Export
exports.default = AudioBuffer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 89 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Bitmap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_IShaderDrawable() {return __webpack_require__(66);}
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl__$internal_renderer_canvas_CanvasBitmap() {return __webpack_require__(115);}
function openfl__$internal_renderer_dom_DOMBitmap() {return __webpack_require__(95);}
function openfl__$internal_renderer_opengl_GLBitmap() {return __webpack_require__(126);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
// Constructor
var Bitmap = function(bitmapData,pixelSnapping,smoothing) {
	if(smoothing == null) {
		smoothing = false;
	}
	(openfl_display_DisplayObject().default).call(this);
	this.__bitmapData = bitmapData;
	this.pixelSnapping = pixelSnapping;
	this.smoothing = smoothing;
	if(pixelSnapping == null) {
		this.pixelSnapping = "auto";
	}
}
// Meta
Bitmap.__name__ = ["openfl","display","Bitmap"];
Bitmap.__interfaces__ = [(openfl_display_IShaderDrawable().default)];
Bitmap.__super__ = (openfl_display_DisplayObject().default);
Bitmap.prototype = $extend((openfl_display_DisplayObject().default).prototype, {
	__enterFrame: function(deltaTime) {
		if(this.__bitmapData != null && this.__bitmapData.image != null) {
			var image = this.__bitmapData.image;
			if(this.__bitmapData.image.version != this.__imageVersion) {
				this.__setRenderDirty();
				this.__imageVersion = image.version;
			}
		}
	},
	__getBounds: function(rect,matrix) {
		if(this.__bitmapData != null) {
			var bounds = (openfl_geom_Rectangle().default).__pool.get();
			bounds.setTo(0,0,this.__bitmapData.width,this.__bitmapData.height);
			bounds.__transform(bounds,matrix);
			rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
			(openfl_geom_Rectangle().default).__pool.release(bounds);
		}
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(!hitObject.get_visible() || this.__isMask || this.__bitmapData == null) {
			return false;
		}
		if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
			return false;
		}
		this.__getRenderTransform();
		var px = this.__renderTransform.__transformInverseX(x,y);
		var py = this.__renderTransform.__transformInverseY(x,y);
		if(px > 0 && py > 0 && px <= this.__bitmapData.width && py <= this.__bitmapData.height) {
			if(this.__scrollRect != null && !this.__scrollRect.contains(px,py)) {
				return false;
			}
			if(stack != null && !interactiveOnly) {
				stack.push(hitObject);
			}
			return true;
		}
		return false;
	},
	__hitTestMask: function(x,y) {
		if(this.__bitmapData == null) {
			return false;
		}
		this.__getRenderTransform();
		var px = this.__renderTransform.__transformInverseX(x,y);
		var py = this.__renderTransform.__transformInverseY(x,y);
		if(px > 0 && py > 0 && px <= this.__bitmapData.width && py <= this.__bitmapData.height) {
			return true;
		}
		return false;
	},
	__renderCairo: function(renderSession) {
	},
	__renderCairoMask: function(renderSession) {
		renderSession.cairo.rectangle(0,0,this.get_width(),this.get_height());
	},
	__renderCanvas: function(renderSession) {
		this.__updateCacheBitmap(renderSession,!this.__worldColorTransform.__isDefault());
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			(openfl__$internal_renderer_canvas_CanvasBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_canvas_CanvasBitmap().default).render(this,renderSession);
		}
	},
	__renderCanvasMask: function(renderSession) {
		renderSession.context.rect(0,0,this.get_width(),this.get_height());
	},
	__renderDOM: function(renderSession) {
		this.__updateCacheBitmap(renderSession,!this.__worldColorTransform.__isDefault());
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			this.__renderDOMClear(renderSession);
			this.__cacheBitmap.stage = this.stage;
			(openfl__$internal_renderer_dom_DOMBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_dom_DOMBitmap().default).render(this,renderSession);
		}
	},
	__renderDOMClear: function(renderSession) {
		(openfl__$internal_renderer_dom_DOMBitmap().default).clear(this,renderSession);
	},
	__renderGL: function(renderSession) {
		this.__updateCacheBitmap(renderSession,false);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			(openfl__$internal_renderer_opengl_GLBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_opengl_GLBitmap().default).render(this,renderSession);
		}
	},
	__renderGLMask: function(renderSession) {
		this.__updateCacheBitmap(renderSession,false);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			(openfl__$internal_renderer_opengl_GLBitmap().default).renderMask(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_opengl_GLBitmap().default).renderMask(this,renderSession);
		}
	},
	__updateCacheBitmap: function(renderSession,force) {
		if(this.get_filters() == null) {
			return false;
		}
		return (openfl_display_DisplayObject().default).prototype.__updateCacheBitmap.call(this,renderSession,force);
	},
	__updateMask: function(maskGraphics) {
		if(this.__bitmapData == null) {
			return;
		}
		maskGraphics.__commands.overrideMatrix(this.__worldTransform);
		maskGraphics.beginFill(0);
		maskGraphics.drawRect(0,0,this.__bitmapData.width,this.__bitmapData.height);
		if(maskGraphics.__bounds == null) {
			maskGraphics.__bounds = new (openfl_geom_Rectangle().default)();
		}
		this.__getBounds(maskGraphics.__bounds,(openfl_geom_Matrix().default).__identity);
		(openfl_display_DisplayObject().default).prototype.__updateMask.call(this,maskGraphics);
	},
	get_bitmapData: function() {
		return this.__bitmapData;
	},
	set_bitmapData: function(value) {
		this.__bitmapData = value;
		this.smoothing = false;
		this.__setRenderDirty();
		var tmp = this.__filters != null && this.__filters.length > 0;
		this.__imageVersion = -1;
		return this.__bitmapData;
	},
	get_height: function() {
		if(this.__bitmapData != null) {
			return this.__bitmapData.height * Math.abs(this.get_scaleY());
		}
		return 0;
	},
	set_height: function(value) {
		if(this.__bitmapData != null) {
			if(value != this.__bitmapData.height) {
				this.__setRenderDirty();
				this.set_scaleY(value / this.__bitmapData.height);
			}
			return value;
		}
		return 0;
	},
	get_width: function() {
		if(this.__bitmapData != null) {
			return this.__bitmapData.width * Math.abs(this.__scaleX);
		}
		return 0;
	},
	set_width: function(value) {
		if(this.__bitmapData != null) {
			if(value != this.__bitmapData.width) {
				this.__setRenderDirty();
				this.set_scaleX(value / this.__bitmapData.width);
			}
			return value;
		}
		return 0;
	}
});
Bitmap.prototype.__class__ = $hxClasses["openfl.display.Bitmap"] = Bitmap;
// Init
Object.defineProperty(Bitmap.prototype,"bitmapData",{ get : function () { return this.get_bitmapData (); }, set : function (v) { return this.set_bitmapData (v); }});
// Statics
// Export
exports.default = Bitmap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 90 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.VectorData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$Vector_VectorIterator() {return __webpack_require__(292);}
// Constructor
var VectorData = function(length,fixed,array) {
	this.construct(this,length,fixed);
}
// Meta
VectorData.__name__ = ["openfl","VectorData"];
VectorData.prototype = {
	construct: function(instance,length,fixed) {
		if(length != null) {
			instance.length = length;
		}
		instance.fixed = fixed == true;
		return instance;
	},
	concat: function(a) {
		return VectorData.ofArray(Array.prototype.concat.call (this, a));
	},
	copy: function() {
		return VectorData.ofArray(this);
	},
	get: function(index) {
		return this[index];
	},
	indexOf: function(x,from) {
		if(from == null) {
			from = 0;
		}
		return -1;
	},
	insertAt: function(index,element) {
		if(!this.fixed || index < this.length) {
			Array.prototype.splice.call (this, index, 0, element);
		}
	},
	iterator: function() {
		return new (openfl__$Vector_VectorIterator().default)(this);
	},
	join: function(sep) {
		if(sep == null) {
			sep = ",";
		}
		return null;
	},
	lastIndexOf: function(x,from) {
		if(from == null) {
			return Array.prototype.lastIndexOf.call (this, x);
		} else {
			return Array.prototype.lastIndexOf.call (this, x, from);
		}
	},
	pop: function() {
		if(!this.fixed) {
			return Array.prototype.pop.call (this);
		} else {
			return null;
		}
	},
	push: function(x) {
		if(!this.fixed) {
			return Array.prototype.push.call (this, x);
		} else {
			return this.length;
		}
	},
	removeAt: function(index) {
		if(!this.fixed || index < this.length) {
			return Array.prototype.splice.call (this, index, 1)[0];
		}
		return null;
	},
	reverse: function() {
		return this;
	},
	set: function(index,value) {
		if(!this.fixed || index < this.length) {
			return this[index] = value;
		} else {
			return value;
		}
	},
	shift: function() {
		if(!this.fixed) {
			return Array.prototype.shift.call (this);
		} else {
			return null;
		}
	},
	slice: function(startIndex,endIndex) {
		if(endIndex == null) {
			endIndex = 16777215;
		}
		if(startIndex == null) {
			startIndex = 0;
		}
		return VectorData.ofArray(Array.prototype.slice.call (this, startIndex, endIndex));
	},
	sort: function(f) {
	},
	splice: function(pos,len) {
		return VectorData.ofArray(Array.prototype.splice.call (this, pos, len));
	},
	toString: function() {
		return null;
	},
	unshift: function(x) {
		if(!this.fixed) {
			Array.prototype.unshift.call (this, x);
		}
	},
	get_length: function() {
		return this.length;
	},
	set_length: function(value) {
		if(!this.fixed) {
			this.length = value;
		}
		return value;
	}
};
VectorData.prototype.__class__ = $hxClasses["openfl.VectorData"] = VectorData;
// Init
var prefix = (typeof openfl_VectorData !== 'undefined');
		var ref = (prefix ? openfl_VectorData : VectorData);
		var p = ref.prototype;
		var construct = p.construct;
		var _VectorDataDescriptor = {
			constructor: { value: null },
			concat: { value: p.concat },
			copy: { value: p.copy },
			get: { value: p.get },
			insertAt: { value: p.insertAt },
			iterator: { value: p.iterator },
			lastIndexOf: { value: p.lastIndexOf },
			pop: { value: p.pop },
			push: { value: p.push },
			removeAt: { value: p.removeAt },
			set: { value: p.set },
			shift: { value: p.shift },
			slice: { value: p.slice },
			splice: { value: p.splice },
			unshift: { value: p.unshift },
			get_length: { value: p.get_length },
			set_length: { value: p.set_length },
		}
		var _VectorData = function (length, fixed) {
			return Object.defineProperties (construct ([], length, fixed), _VectorDataDescriptor);
		}
		_VectorDataDescriptor.constructor.value = _VectorData;
		_VectorData.__name__ = ref.__name__;
		_VectorData.ofArray = ref.ofArray;
		$hxClasses['openfl.VectorData'] = _VectorData;
		_VectorData.prototype = Array.prototype
		if (prefix) openfl_VectorData = _VectorData; else VectorData = _VectorData;
		;
// Statics
VectorData.ofArray = function(a) {
	if(a == null) {
		return null;
	}
	var data = new VectorData();
	var _g1 = 0;
	var _g = a.length;
	while(_g1 < _g) {
		var i = _g1++;
		data[i] = a[i];
	}
	return data;
}
// Export
exports.default = VectorData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 91 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.RenderSession
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var RenderSession = function() {
	this.activeTextures = 0;
	this.allowSmoothing = true;
	this.clearRenderDirty = false;
}
// Meta
RenderSession.__name__ = ["openfl","_internal","renderer","RenderSession"];
RenderSession.prototype = {
	
};
RenderSession.prototype.__class__ = $hxClasses["openfl._internal.renderer.RenderSession"] = RenderSession;
// Init
// Statics
// Export
exports.default = RenderSession;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 92 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.IDataInput
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IDataInput = function() {}
// Meta
IDataInput.__name__ = ["openfl","utils","IDataInput"];
IDataInput.prototype = {
	
};
IDataInput.prototype.__class__ = $hxClasses["openfl.utils.IDataInput"] = IDataInput;
// Init
// Statics
// Export
exports.default = IDataInput;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 93 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_93__;
/***/ }),
/* 94 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.opengl._WebGLContext.WebGLContext_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_opengl_GL() {return __webpack_require__(49);}
// Constructor
var WebGLContext_Impl_ = function(){}
// Meta
WebGLContext_Impl_.__name__ = ["lime","graphics","opengl","_WebGLContext","WebGLContext_Impl_"];
WebGLContext_Impl_.prototype = {
	
};
WebGLContext_Impl_.prototype.__class__ = $hxClasses["lime.graphics.opengl._WebGLContext.WebGLContext_Impl_"] = WebGLContext_Impl_;
// Init
// Statics
WebGLContext_Impl_.bufferData = function(this1,target,srcData,usage) {
	this1.bufferDataWEBGL(target,srcData,usage,null,null);
}
WebGLContext_Impl_.bufferSubData = function(this1,target,offset,srcData) {
	this1.bufferSubDataWEBGL(target,offset,srcData,null,null);
}
WebGLContext_Impl_.compressedTexImage2D = function(this1,target,level,internalformat,width,height,border,srcData) {
	this1.compressedTexImage2DWEBGL(target,level,internalformat,width,height,border,srcData,null,null);
}
WebGLContext_Impl_.compressedTexSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,srcData) {
	this1.compressedTexSubImage2DWEBGL(target,level,xoffset,yoffset,width,height,format,srcData,null,null);
}
WebGLContext_Impl_.readPixels = function(this1,x,y,width,height,format,type,pixels) {
	this1.readPixelsWEBGL(x,y,width,height,format,type,pixels,null);
}
WebGLContext_Impl_.texImage2D = function(this1,target,level,internalformat,width,height,border,format,type,srcData) {
	this1.texImage2DWEBGL(target,level,internalformat,width,height,border,format,type,srcData,null);
}
WebGLContext_Impl_.texSubImage2D = function(this1,target,level,xoffset,yoffset,width,height,format,type,srcData) {
	this1.texSubImage2DWEBGL(target,level,xoffset,yoffset,width,height,format,type,srcData,null);
}
WebGLContext_Impl_.uniformMatrix2fv = function(this1,location,transpose,v) {
	this1.uniformMatrix2fvWEBGL(location,transpose,v,null,null);
}
WebGLContext_Impl_.uniformMatrix3fv = function(this1,location,transpose,v) {
	this1.uniformMatrix3fvWEBGL(location,transpose,v,null,null);
}
WebGLContext_Impl_.uniformMatrix4fv = function(this1,location,transpose,v) {
	this1.uniformMatrix4fvWEBGL(location,transpose,v,null,null);
}
WebGLContext_Impl_.fromGL = function(gl) {
	return (lime_graphics_opengl_GL().default).context;
}
WebGLContext_Impl_.fromGLES2Context = function(gl) {
	return gl;
}
WebGLContext_Impl_.fromGLES3Context = function(gl) {
	return gl;
}
// Export
exports.default = WebGLContext_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 95 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMBitmap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js_Browser() {return __webpack_require__(11);}
function openfl__$internal_renderer_dom_DOMRenderer() {return __webpack_require__(52);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
// Constructor
var DOMBitmap = function(){}
// Meta
DOMBitmap.__name__ = ["openfl","_internal","renderer","dom","DOMBitmap"];
DOMBitmap.prototype = {
	
};
DOMBitmap.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMBitmap"] = DOMBitmap;
// Init
// Statics
DOMBitmap.clear = function(bitmap,renderSession) {
	if(bitmap.__image != null) {
		renderSession.element.removeChild(bitmap.__image);
		bitmap.__image = null;
		bitmap.__style = null;
	}
	if(bitmap.__canvas != null) {
		renderSession.element.removeChild(bitmap.__canvas);
		bitmap.__canvas = null;
		bitmap.__style = null;
	}
}
DOMBitmap.render = function(bitmap,renderSession) {
	if(bitmap.stage != null && bitmap.__worldVisible && bitmap.__renderable && bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
		renderSession.maskManager.pushObject(bitmap);
		if(bitmap.__bitmapData.image.buffer.__srcImage != null) {
			DOMBitmap.renderImage(bitmap,renderSession);
		} else {
			DOMBitmap.renderCanvas(bitmap,renderSession);
		}
		renderSession.maskManager.popObject(bitmap);
	} else {
		DOMBitmap.clear(bitmap,renderSession);
	}
}
DOMBitmap.renderCanvas = function(bitmap,renderSession) {
	if(bitmap.__image != null) {
		renderSession.element.removeChild(bitmap.__image);
		bitmap.__image = null;
	}
	if(bitmap.__canvas == null) {
		bitmap.__canvas = (js_Browser().default).get_document().createElement("canvas");
		bitmap.__context = bitmap.__canvas.getContext("2d");
		bitmap.__imageVersion = -1;
		if(!renderSession.allowSmoothing || !bitmap.smoothing) {
			bitmap.__context.mozImageSmoothingEnabled = false;
			bitmap.__context.msImageSmoothingEnabled = false;
			bitmap.__context.imageSmoothingEnabled = false;
		}
		(openfl__$internal_renderer_dom_DOMRenderer().default).initializeElement(bitmap,bitmap.__canvas,renderSession);
	}
	if(bitmap.__imageVersion != bitmap.__bitmapData.image.version) {
		(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(bitmap.__bitmapData.image);
		bitmap.__canvas.width = bitmap.__bitmapData.width + 1;
		bitmap.__canvas.width = bitmap.__bitmapData.width;
		bitmap.__canvas.height = bitmap.__bitmapData.height;
		bitmap.__context.drawImage(bitmap.__bitmapData.image.buffer.__srcCanvas,0,0);
		bitmap.__imageVersion = bitmap.__bitmapData.image.version;
	}
	(openfl__$internal_renderer_dom_DOMRenderer().default).updateClip(bitmap,renderSession);
	(openfl__$internal_renderer_dom_DOMRenderer().default).applyStyle(bitmap,renderSession,true,true,true);
}
DOMBitmap.renderImage = function(bitmap,renderSession) {
	if(bitmap.__canvas != null) {
		renderSession.element.removeChild(bitmap.__canvas);
		bitmap.__canvas = null;
	}
	if(bitmap.__image == null) {
		bitmap.__image = (js_Browser().default).get_document().createElement("img");
		bitmap.__image.crossOrigin = "Anonymous";
		bitmap.__image.src = bitmap.__bitmapData.image.buffer.__srcImage.src;
		(openfl__$internal_renderer_dom_DOMRenderer().default).initializeElement(bitmap,bitmap.__image,renderSession);
	}
	(openfl__$internal_renderer_dom_DOMRenderer().default).updateClip(bitmap,renderSession);
	(openfl__$internal_renderer_dom_DOMRenderer().default).applyStyle(bitmap,renderSession,true,true,true);
}
// Export
exports.default = DOMBitmap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 96 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.DisplayObjectContainer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_InteractiveObject() {return __webpack_require__(75);}
function openfl_errors_TypeError() {return __webpack_require__(129);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_ArgumentError() {return __webpack_require__(71);}
function HxOverrides() {return __webpack_require__(7);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_errors_RangeError() {return __webpack_require__(182);}
function openfl_geom_Point() {return __webpack_require__(29);}
function openfl__$internal_renderer_canvas_CanvasGraphics() {return __webpack_require__(58);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
// Constructor
var DisplayObjectContainer = function() {
	(openfl_display_InteractiveObject().default).call(this);
	this.mouseChildren = true;
	this.__children = [];
	this.__removedChildren = (openfl__$Vector_Vector_$Impl_$().default)._new();
}
// Meta
DisplayObjectContainer.__name__ = ["openfl","display","DisplayObjectContainer"];
DisplayObjectContainer.__super__ = (openfl_display_InteractiveObject().default);
DisplayObjectContainer.prototype = $extend((openfl_display_InteractiveObject().default).prototype, {
	addChild: function(child) {
		return this.addChildAt(child,this.get_numChildren());
	},
	addChildAt: function(child,index) {
		if(child == null) {
			var error = new (openfl_errors_TypeError().default)("Error #2007: Parameter child must be non-null.");
			error.errorID = 2007;
			throw new (js__$Boot_HaxeError().default)(error);
		} else if(child.stage == child) {
			var error1 = new (openfl_errors_ArgumentError().default)("Error #3783: A Stage object cannot be added as the child of another object.");
			error1.errorID = 3783;
			throw new (js__$Boot_HaxeError().default)(error1);
		}
		if(index > this.__children.length || index < 0) {
			throw new (js__$Boot_HaxeError().default)("Invalid index position " + index);
		}
		if(child.parent == this) {
			if(this.__children[index] != child) {
				(HxOverrides().default).remove(this.__children,child);
				this.__children.splice(index,0,child);
				this.__setRenderDirty();
			}
		} else {
			if(child.parent != null) {
				child.parent.removeChild(child);
			}
			this.__children.splice(index,0,child);
			child.parent = this;
			var addedToStage = this.stage != null && child.stage == null;
			if(addedToStage) {
				this.__setStageReference(this.stage);
			}
			child.__setTransformDirty();
			child.__setRenderDirty();
			this.__setRenderDirty();
			var event = new (openfl_events_Event().default)("added",true);
			event.target = child;
			child.__dispatchWithCapture(event);
			if(addedToStage) {
				var event1 = new (openfl_events_Event().default)("addedToStage",false,false);
				child.__dispatchWithCapture(event1);
				child.__dispatchChildren(event1);
			}
		}
		return child;
	},
	areInaccessibleObjectsUnderPoint: function(point) {
		return false;
	},
	contains: function(child) {
		while(child != this && child != null) child = child.parent;
		return child == this;
	},
	getChildAt: function(index) {
		if(index >= 0 && index < this.__children.length) {
			return this.__children[index];
		}
		return null;
	},
	getChildByName: function(name) {
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			if(child.get_name() == name) {
				return child;
			}
		}
		return null;
	},
	getChildIndex: function(child) {
		var _g1 = 0;
		var _g = this.__children.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(this.__children[i] == child) {
				return i;
			}
		}
		return -1;
	},
	getObjectsUnderPoint: function(point) {
		var stack = [];
		this.__hitTest(point.x,point.y,false,stack,false,this);
		stack.reverse();
		return stack;
	},
	removeChild: function(child) {
		if(child != null && child.parent == this) {
			child.__setTransformDirty();
			child.__setRenderDirty();
			this.__setRenderDirty();
			var event = new (openfl_events_Event().default)("removed",true);
			child.__dispatchWithCapture(event);
			if(this.stage != null) {
				if(child.stage != null && this.stage.get_focus() == child) {
					this.stage.set_focus(null);
				}
				var event1 = new (openfl_events_Event().default)("removedFromStage",false,false);
				child.__dispatchWithCapture(event1);
				child.__dispatchChildren(event1);
				child.__setStageReference(null);
			}
			child.parent = null;
			(HxOverrides().default).remove(this.__children,child);
			this.__removedChildren.push(child);
			child.__setTransformDirty();
		}
		return child;
	},
	removeChildAt: function(index) {
		if(index >= 0 && index < this.__children.length) {
			return this.removeChild(this.__children[index]);
		}
		return null;
	},
	removeChildren: function(beginIndex,endIndex) {
		if(endIndex == null) {
			endIndex = 2147483647;
		}
		if(beginIndex == null) {
			beginIndex = 0;
		}
		if(endIndex == 2147483647) {
			endIndex = this.__children.length - 1;
			if(endIndex < 0) {
				return;
			}
		}
		if(beginIndex > this.__children.length - 1) {
			return;
		} else if(endIndex < beginIndex || beginIndex < 0 || endIndex > this.__children.length) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_RangeError().default)("The supplied index is out of bounds."));
		}
		var numRemovals = endIndex - beginIndex;
		while(numRemovals >= 0) {
			this.removeChildAt(beginIndex);
			--numRemovals;
		}
	},
	resolve: function(fieldName) {
		if(this.__children == null) {
			return null;
		}
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			if(child.get_name() == fieldName) {
				return child;
			}
		}
		return null;
	},
	setChildIndex: function(child,index) {
		if(index >= 0 && index <= this.__children.length && child.parent == this) {
			(HxOverrides().default).remove(this.__children,child);
			this.__children.splice(index,0,child);
		}
	},
	stopAllMovieClips: function() {
		this.__stopAllMovieClips();
	},
	swapChildren: function(child1,child2) {
		if(child1.parent == this && child2.parent == this) {
			var index1 = this.__children.indexOf(child1);
			var index2 = this.__children.indexOf(child2);
			this.__children[index1] = child2;
			this.__children[index2] = child1;
			this.__setRenderDirty();
		}
	},
	swapChildrenAt: function(index1,index2) {
		var swap = this.__children[index1];
		this.__children[index1] = this.__children[index2];
		this.__children[index2] = swap;
		swap = null;
		this.__setRenderDirty();
	},
	__dispatchChildren: function(event) {
		if(this.__children != null) {
			var _g = 0;
			var _g1 = this.__children;
			while(_g < _g1.length) {
				var child = _g1[_g];
				++_g;
				event.target = child;
				if(!child.__dispatchWithCapture(event)) {
					break;
				}
				child.__dispatchChildren(event);
			}
		}
	},
	__enterFrame: function(deltaTime) {
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			child.__enterFrame(deltaTime);
		}
	},
	__getBounds: function(rect,matrix) {
		(openfl_display_InteractiveObject().default).prototype.__getBounds.call(this,rect,matrix);
		if(this.__children.length == 0) {
			return;
		}
		if(matrix != null) {
			this.__updateTransforms(matrix);
			this.__updateChildren(true);
		}
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			if(child.__scaleX == 0 || child.__scaleY == 0) {
				continue;
			}
			child.__getBounds(rect,child.__worldTransform);
		}
		if(matrix != null) {
			this.__updateTransforms();
			this.__updateChildren(true);
		}
	},
	__getFilterBounds: function(rect,matrix) {
		(openfl_display_InteractiveObject().default).prototype.__getFilterBounds.call(this,rect,matrix);
		if(this.__children.length == 0) {
			return;
		}
		if(matrix != null) {
			this.__updateTransforms(matrix);
			this.__updateChildren(true);
		}
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			if(child.__scaleX == 0 || child.__scaleY == 0 || child.__isMask) {
				continue;
			}
			child.__getFilterBounds(rect,child.__worldTransform);
		}
		if(matrix != null) {
			this.__updateTransforms();
			this.__updateChildren(true);
		}
	},
	__getRenderBounds: function(rect,matrix) {
		if(this.__scrollRect != null) {
			(openfl_display_InteractiveObject().default).prototype.__getRenderBounds.call(this,rect,matrix);
			return;
		} else {
			(openfl_display_InteractiveObject().default).prototype.__getBounds.call(this,rect,matrix);
		}
		if(this.__children.length == 0) {
			return;
		}
		if(matrix != null) {
			this.__updateTransforms(matrix);
			this.__updateChildren(true);
		}
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			if(child.__scaleX == 0 || child.__scaleY == 0 || child.__isMask) {
				continue;
			}
			child.__getRenderBounds(rect,child.__worldTransform);
		}
		if(matrix != null) {
			this.__updateTransforms();
			this.__updateChildren(true);
		}
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled && !this.mouseChildren) {
			return false;
		}
		if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
			return false;
		}
		if(this.__scrollRect != null) {
			var point = (openfl_geom_Point().default).__pool.get();
			point.setTo(x,y);
			this.__getRenderTransform().__transformInversePoint(point);
			if(!this.__scrollRect.containsPoint(point)) {
				(openfl_geom_Point().default).__pool.release(point);
				return false;
			}
			(openfl_geom_Point().default).__pool.release(point);
		}
		var i = this.__children.length;
		if(interactiveOnly) {
			if(stack == null || !this.mouseChildren) {
				while(--i >= 0) if(this.__children[i].__hitTest(x,y,shapeFlag,null,true,this.__children[i])) {
					if(stack != null) {
						stack.push(hitObject);
					}
					return true;
				}
			} else if(stack != null) {
				var length = stack.length;
				var interactive = false;
				var hitTest = false;
				while(--i >= 0) {
					interactive = this.__children[i].__getInteractive(null);
					if(interactive || this.mouseEnabled && !hitTest) {
						if(this.__children[i].__hitTest(x,y,shapeFlag,stack,true,this.__children[i])) {
							hitTest = true;
							if(interactive && stack.length > length) {
								break;
							}
						}
					}
				}
				if(hitTest) {
					stack.splice(length,0,hitObject);
					return true;
				}
			}
		} else {
			while(--i >= 0) this.__children[i].__hitTest(x,y,shapeFlag,stack,false,this.__children[i]);
		}
		return false;
	},
	__hitTestMask: function(x,y) {
		var i = this.__children.length;
		while(--i >= 0) if(this.__children[i].__hitTestMask(x,y)) {
			return true;
		}
		return false;
	},
	__readGraphicsData: function(graphicsData,recurse) {
		(openfl_display_InteractiveObject().default).prototype.__readGraphicsData.call(this,graphicsData,recurse);
		if(recurse) {
			var _g = 0;
			var _g1 = this.__children;
			while(_g < _g1.length) {
				var child = _g1[_g];
				++_g;
				child.__readGraphicsData(graphicsData,recurse);
			}
		}
	},
	__renderCairo: function(renderSession) {
	},
	__renderCairoMask: function(renderSession) {
	},
	__renderCanvas: function(renderSession) {
		if(!this.__renderable || this.__worldAlpha <= 0 || this.get_mask() != null && (this.get_mask().get_width() <= 0 || this.get_mask().get_height() <= 0)) {
			return;
		}
		(openfl_display_InteractiveObject().default).prototype.__renderCanvas.call(this,renderSession);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			return;
		}
		renderSession.maskManager.pushObject(this);
		if(renderSession.clearRenderDirty) {
			var _g = 0;
			var _g1 = this.__children;
			while(_g < _g1.length) {
				var child = _g1[_g];
				++_g;
				child.__renderCanvas(renderSession);
				child.__renderDirty = false;
			}
			this.__renderDirty = false;
		} else {
			var _g2 = 0;
			var _g11 = this.__children;
			while(_g2 < _g11.length) {
				var child1 = _g11[_g2];
				++_g2;
				child1.__renderCanvas(renderSession);
			}
		}
		var _g3 = 0;
		var _g12 = this.__removedChildren;
		while(_g3 < _g12.get_length()) {
			var orphan = _g12.get(_g3);
			++_g3;
			if(orphan.stage == null) {
				orphan.__cleanup();
			}
		}
		this.__removedChildren.set_length(0);
		renderSession.maskManager.popObject(this);
	},
	__renderCanvasMask: function(renderSession) {
		if(this.__graphics != null) {
			(openfl__$internal_renderer_canvas_CanvasGraphics().default).renderMask(this.__graphics,renderSession);
		}
		var bounds = (openfl_geom_Rectangle().default).__pool.get();
		this.__getLocalBounds(bounds);
		renderSession.context.rect(0,0,bounds.width,bounds.height);
		(openfl_geom_Rectangle().default).__pool.release(bounds);
	},
	__renderDOM: function(renderSession) {
		(openfl_display_InteractiveObject().default).prototype.__renderDOM.call(this,renderSession);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			return;
		}
		renderSession.maskManager.pushObject(this);
		if(renderSession.clearRenderDirty) {
			var _g = 0;
			var _g1 = this.__children;
			while(_g < _g1.length) {
				var child = _g1[_g];
				++_g;
				child.__renderDOM(renderSession);
				child.__renderDirty = false;
			}
			this.__renderDirty = false;
		} else {
			var _g2 = 0;
			var _g11 = this.__children;
			while(_g2 < _g11.length) {
				var child1 = _g11[_g2];
				++_g2;
				child1.__renderDOM(renderSession);
			}
		}
		var _g3 = 0;
		var _g12 = this.__removedChildren;
		while(_g3 < _g12.get_length()) {
			var orphan = _g12.get(_g3);
			++_g3;
			if(orphan.stage == null) {
				orphan.__renderDOM(renderSession);
			}
		}
		this.__removedChildren.set_length(0);
		renderSession.maskManager.popObject(this);
	},
	__renderDOMClear: function(renderSession) {
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			child.__renderDOMClear(renderSession);
		}
		var _g2 = 0;
		var _g11 = this.__removedChildren;
		while(_g2 < _g11.get_length()) {
			var orphan = _g11.get(_g2);
			++_g2;
			if(orphan.stage == null) {
				orphan.__renderDOMClear(renderSession);
			}
		}
	},
	__renderGL: function(renderSession) {
		if(!this.__renderable || this.__worldAlpha <= 0) {
			return;
		}
		(openfl_display_InteractiveObject().default).prototype.__renderGL.call(this,renderSession);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			return;
		}
		if(this.__children.length > 0) {
			renderSession.maskManager.pushObject(this);
			renderSession.filterManager.pushObject(this);
			if(renderSession.clearRenderDirty) {
				var _g = 0;
				var _g1 = this.__children;
				while(_g < _g1.length) {
					var child = _g1[_g];
					++_g;
					child.__renderGL(renderSession);
					child.__renderDirty = false;
				}
				this.__renderDirty = false;
			} else {
				var _g2 = 0;
				var _g11 = this.__children;
				while(_g2 < _g11.length) {
					var child1 = _g11[_g2];
					++_g2;
					child1.__renderGL(renderSession);
				}
			}
		}
		var _g3 = 0;
		var _g12 = this.__removedChildren;
		while(_g3 < _g12.get_length()) {
			var orphan = _g12.get(_g3);
			++_g3;
			if(orphan.stage == null) {
				orphan.__cleanup();
			}
		}
		this.__removedChildren.set_length(0);
		if(this.__children.length > 0) {
			renderSession.filterManager.popObject(this);
			renderSession.maskManager.popObject(this);
		}
	},
	__renderGLMask: function(renderSession) {
		(openfl_display_InteractiveObject().default).prototype.__renderGLMask.call(this,renderSession);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			return;
		}
		if(renderSession.clearRenderDirty) {
			var _g = 0;
			var _g1 = this.__children;
			while(_g < _g1.length) {
				var child = _g1[_g];
				++_g;
				child.__renderGLMask(renderSession);
				child.__renderDirty = false;
			}
			this.__renderDirty = false;
		} else {
			var _g2 = 0;
			var _g11 = this.__children;
			while(_g2 < _g11.length) {
				var child1 = _g11[_g2];
				++_g2;
				child1.__renderGLMask(renderSession);
			}
		}
		var _g3 = 0;
		var _g12 = this.__removedChildren;
		while(_g3 < _g12.get_length()) {
			var orphan = _g12.get(_g3);
			++_g3;
			if(orphan.stage == null) {
				orphan.__cleanup();
			}
		}
		this.__removedChildren.set_length(0);
	},
	__setStageReference: function(stage) {
		(openfl_display_InteractiveObject().default).prototype.__setStageReference.call(this,stage);
		if(this.__children != null) {
			var _g = 0;
			var _g1 = this.__children;
			while(_g < _g1.length) {
				var child = _g1[_g];
				++_g;
				child.__setStageReference(stage);
			}
		}
	},
	__setWorldTransformInvalid: function() {
		if(!this.__worldTransformInvalid) {
			this.__worldTransformInvalid = true;
			if(this.__children != null) {
				var _g = 0;
				var _g1 = this.__children;
				while(_g < _g1.length) {
					var child = _g1[_g];
					++_g;
					child.__setWorldTransformInvalid();
				}
			}
		}
	},
	__stopAllMovieClips: function() {
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			child.__stopAllMovieClips();
		}
	},
	__update: function(transformOnly,updateChildren,maskGraphics) {
		(openfl_display_InteractiveObject().default).prototype.__update.call(this,transformOnly,updateChildren,maskGraphics);
		if(updateChildren) {
			var _g = 0;
			var _g1 = this.__children;
			while(_g < _g1.length) {
				var child = _g1[_g];
				++_g;
				child.__update(transformOnly,true,maskGraphics);
			}
		}
	},
	__updateChildren: function(transformOnly) {
		(openfl_display_InteractiveObject().default).prototype.__updateChildren.call(this,transformOnly);
		var _g = 0;
		var _g1 = this.__children;
		while(_g < _g1.length) {
			var child = _g1[_g];
			++_g;
			child.__update(transformOnly,true);
		}
	},
	get_numChildren: function() {
		return this.__children.length;
	}
});
DisplayObjectContainer.prototype.__class__ = $hxClasses["openfl.display.DisplayObjectContainer"] = DisplayObjectContainer;
// Init
Object.defineProperty(DisplayObjectContainer.prototype,"numChildren",{ get : function () { return this.get_numChildren (); }});
// Statics
// Export
exports.default = DisplayObjectContainer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 97 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Sprite
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_DisplayObjectContainer() {return __webpack_require__(96);}
function lime_ui_MouseCursor() {return __webpack_require__(76);}
function openfl_geom_Point() {return __webpack_require__(29);}
function openfl_display_Graphics() {return __webpack_require__(69);}
// Constructor
var Sprite = function() {
	(openfl_display_DisplayObjectContainer().default).call(this);
	this.buttonMode = false;
	this.useHandCursor = true;
}
// Meta
Sprite.__name__ = ["openfl","display","Sprite"];
Sprite.__super__ = (openfl_display_DisplayObjectContainer().default);
Sprite.prototype = $extend((openfl_display_DisplayObjectContainer().default).prototype, {
	startDrag: function(lockCenter,bounds) {
		if(lockCenter == null) {
			lockCenter = false;
		}
		if(this.stage != null) {
			this.stage.__startDrag(this,lockCenter,bounds);
		}
	},
	stopDrag: function() {
		if(this.stage != null) {
			this.stage.__stopDrag(this);
		}
	},
	__getCursor: function() {
		if(this.buttonMode && this.useHandCursor) {
			return (lime_ui_MouseCursor().default).POINTER;
		} else {
			return null;
		}
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(interactiveOnly && !this.mouseEnabled && !this.mouseChildren) {
			return false;
		}
		if(!hitObject.get_visible() || this.__isMask) {
			return this.__hitTestHitArea(x,y,shapeFlag,stack,interactiveOnly,hitObject);
		}
		if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
			return this.__hitTestHitArea(x,y,shapeFlag,stack,interactiveOnly,hitObject);
		}
		if(this.__scrollRect != null) {
			var point = (openfl_geom_Point().default).__pool.get();
			point.setTo(x,y);
			this.__getRenderTransform().__transformInversePoint(point);
			if(!this.__scrollRect.containsPoint(point)) {
				(openfl_geom_Point().default).__pool.release(point);
				return this.__hitTestHitArea(x,y,shapeFlag,stack,true,hitObject);
			}
			(openfl_geom_Point().default).__pool.release(point);
		}
		if((openfl_display_DisplayObjectContainer().default).prototype.__hitTest.call(this,x,y,shapeFlag,stack,interactiveOnly,hitObject)) {
			return interactiveOnly;
		} else if(this.hitArea == null && this.__graphics != null && this.__graphics.__hitTest(x,y,shapeFlag,this.__getRenderTransform())) {
			if(stack != null && (!interactiveOnly || this.mouseEnabled)) {
				stack.push(hitObject);
			}
			return true;
		}
		return this.__hitTestHitArea(x,y,shapeFlag,stack,interactiveOnly,hitObject);
	},
	__hitTestHitArea: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(this.hitArea != null) {
			if(!this.hitArea.mouseEnabled) {
				this.hitArea.mouseEnabled = true;
				var hitTest = this.hitArea.__hitTest(x,y,shapeFlag,null,true,hitObject);
				this.hitArea.mouseEnabled = false;
				if(hitTest) {
					stack[stack.length] = hitObject;
				}
				return hitTest;
			}
		}
		return false;
	},
	__hitTestMask: function(x,y) {
		if((openfl_display_DisplayObjectContainer().default).prototype.__hitTestMask.call(this,x,y)) {
			return true;
		} else if(this.__graphics != null && this.__graphics.__hitTest(x,y,true,this.__getRenderTransform())) {
			return true;
		}
		return false;
	},
	get_graphics: function() {
		if(this.__graphics == null) {
			this.__graphics = new (openfl_display_Graphics().default)(this);
		}
		return this.__graphics;
	},
	get_tabEnabled: function() {
		if(this.__tabEnabled == null) {
			return this.buttonMode;
		} else {
			return this.__tabEnabled;
		}
	}
});
Sprite.prototype.__class__ = $hxClasses["openfl.display.Sprite"] = Sprite;
// Init
Object.defineProperty(Sprite.prototype,"graphics",{ get : function () { return this.get_graphics (); }});
// Statics
// Export
exports.default = Sprite;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 98 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill.InternalEncoding
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $iterator = __webpack_require__(132).default;
function StringTools() {return __webpack_require__(12);}
function lime_text_unifill__$Utf16_Utf16_$Impl_$() {return __webpack_require__(328);}
function HxOverrides() {return __webpack_require__(7);}
function lime_text_unifill__$Utf16_Utf16Impl() {return __webpack_require__(133);}
function lime_text_unifill_Unicode() {return __webpack_require__(99);}
function StringBuf() {return __webpack_require__(31);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function js_Boot() {return __webpack_require__(20);}
function lime_text_unifill_InvalidCodeUnitSequence() {return __webpack_require__(183);}
// Constructor
var InternalEncoding = function(){}
// Meta
InternalEncoding.__name__ = ["lime","text","unifill","InternalEncoding"];
InternalEncoding.prototype = {
	
};
InternalEncoding.prototype.__class__ = $hxClasses["lime.text.unifill.InternalEncoding"] = InternalEncoding;
// Init
// Statics
InternalEncoding.get_internalEncoding = function() {
	return "UTF-16";
}
InternalEncoding.codeUnitAt = function(s,index) {
	var this1 = s;
	var this2 = this1;
	return (StringTools().default).fastCodeAt(this2,index);
}
InternalEncoding.codePointAt = function(s,index) {
	var this1 = s;
	var this2 = this1;
	return (lime_text_unifill__$Utf16_Utf16_$Impl_$().default).codePointAt(this2,index);
}
InternalEncoding.charAt = function(s,index) {
	var this1 = s;
	var this2 = this1;
	var this3 = this2;
	var c = (StringTools().default).fastCodeAt(this3,index);
	var this4 = (HxOverrides().default).substr(this3,index,(lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c));
	var this5 = this4;
	return this5;
}
InternalEncoding.codePointCount = function(s,beginIndex,endIndex) {
	var this1 = s;
	var this2 = this1;
	return (lime_text_unifill__$Utf16_Utf16_$Impl_$().default).codePointCount(this2,beginIndex,endIndex);
}
InternalEncoding.codePointWidthAt = function(s,index) {
	var this1 = s;
	var this2 = this1;
	var c = (StringTools().default).fastCodeAt(this2,index);
	return (lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c);
}
InternalEncoding.codePointWidthBefore = function(s,index) {
	var this1 = s;
	var this2 = this1;
	var this3 = this2;
	return (lime_text_unifill__$Utf16_Utf16Impl().default).find_prev_code_point(function(i) {
		return (StringTools().default).fastCodeAt(this3,i);
	},index);
}
InternalEncoding.offsetByCodePoints = function(s,index,codePointOffset) {
	var this1 = s;
	var this2 = this1;
	var this3 = this2;
	if(codePointOffset >= 0) {
		var index1 = index;
		var len = this3.length;
		var i = 0;
		while(i < codePointOffset && index1 < len) {
			var c = (StringTools().default).fastCodeAt(this3,index1);
			index1 += (lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c);
			++i;
		}
		return index1;
	} else {
		var index2 = index;
		var count = 0;
		while(count < -codePointOffset && 0 < index2) {
			index2 -= (lime_text_unifill__$Utf16_Utf16Impl().default).find_prev_code_point((function(this4) {
				return function(i1) {
					return (StringTools().default).fastCodeAt(this4[0],i1);
				};
			})([this3]),index2);
			++count;
		}
		return index2;
	}
}
InternalEncoding.backwardOffsetByCodePoints = function(s,index,codePointOffset) {
	var this1 = s;
	var this2 = this1;
	var this3 = this2;
	var codePointOffset1 = -codePointOffset;
	if(codePointOffset1 >= 0) {
		var index1 = index;
		var len = this3.length;
		var i = 0;
		while(i < codePointOffset1 && index1 < len) {
			var c = (StringTools().default).fastCodeAt(this3,index1);
			index1 += (lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c);
			++i;
		}
		return index1;
	} else {
		var index2 = index;
		var count = 0;
		while(count < -codePointOffset1 && 0 < index2) {
			index2 -= (lime_text_unifill__$Utf16_Utf16Impl().default).find_prev_code_point((function(this4) {
				return function(i1) {
					return (StringTools().default).fastCodeAt(this4[0],i1);
				};
			})([this3]),index2);
			++count;
		}
		return index2;
	}
}
InternalEncoding.fromCodePoint = function(codePoint) {
	var this1;
	if(codePoint <= 65535) {
		var this2 = String.fromCharCode(codePoint);
		var this3 = this2;
		this1 = this3;
	} else {
		var u0 = (lime_text_unifill_Unicode().default).encodeHighSurrogate(codePoint);
		var u1 = (lime_text_unifill_Unicode().default).encodeLowSurrogate(codePoint);
		var this4 = String.fromCharCode(u0) + String.fromCharCode(u1);
		var this5 = this4;
		this1 = this5;
	}
	return this1;
}
InternalEncoding.fromCodePoints = function(codePoints) {
	var this1 = new (StringBuf().default)();
	var buf = this1;
	var c = $iterator(codePoints)();
	while(c.hasNext()) {
		var c1 = c.next();
		(lime_text_unifill__$Utf16_Utf16Impl().default).encode_code_point(function(x) {
			buf.addChar(x);
		},c1);
	}
	var this2 = buf.toString();
	var this3 = this2;
	return this3;
}
InternalEncoding.validate = function(s) {
	var this1 = s;
	var this2 = this1;
	(lime_text_unifill__$Utf16_Utf16_$Impl_$().default).validate(this2);
}
InternalEncoding.isValidString = function(s) {
	try {
		InternalEncoding.validate(s);
		return true;
	} catch( e ) {
		if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
		if( (js_Boot().default).__instanceof(e,(lime_text_unifill_InvalidCodeUnitSequence().default)) ) {
			return false;
		} else throw(e);
	}
}
InternalEncoding.encodeWith = function(f,c) {
	(lime_text_unifill__$Utf16_Utf16Impl().default).encode_code_point(f,c);
}
// Export
exports.default = InternalEncoding;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 99 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill.Unicode
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var Unicode = function(){}
// Meta
Unicode.__name__ = ["lime","text","unifill","Unicode"];
Unicode.prototype = {
	
};
Unicode.prototype.__class__ = $hxClasses["lime.text.unifill.Unicode"] = Unicode;
// Init
// Statics
Unicode.decodeSurrogate = function(hi,lo) {
	return hi - 55232 << 10 | lo & 1023;
}
Unicode.encodeHighSurrogate = function(c) {
	return (c >> 10) + 55232;
}
Unicode.encodeLowSurrogate = function(c) {
	return c & 1023 | 56320;
}
Unicode.isScalar = function(code) {
	if(0 <= code && code <= 1114111 && !Unicode.isHighSurrogate(code)) {
		return !Unicode.isLowSurrogate(code);
	} else {
		return false;
	}
}
Unicode.isHighSurrogate = function(code) {
	if(55296 <= code) {
		return code <= 56319;
	} else {
		return false;
	}
}
Unicode.isLowSurrogate = function(code) {
	if(56320 <= code) {
		return code <= 57343;
	} else {
		return false;
	}
}
Unicode.minCodePoint = 0
Unicode.maxCodePoint = 1114111
Unicode.minHighSurrogate = 55296
Unicode.maxHighSurrogate = 56319
Unicode.minLowSurrogate = 56320
Unicode.maxLowSurrogate = 57343
// Export
exports.default = Unicode;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 100 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.filters.GlowFilter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_filters_BitmapFilter() {return __webpack_require__(78);}
function openfl_geom_ColorTransform() {return __webpack_require__(40);}
function lime_graphics_utils_ImageDataUtil() {return __webpack_require__(65);}
// Constructor
var GlowFilter = function(color,alpha,blurX,blurY,strength,quality,inner,knockout) {
	if(knockout == null) {
		knockout = false;
	}
	if(inner == null) {
		inner = false;
	}
	if(quality == null) {
		quality = 1;
	}
	if(strength == null) {
		strength = 2;
	}
	if(blurY == null) {
		blurY = 6;
	}
	if(blurX == null) {
		blurX = 6;
	}
	if(alpha == null) {
		alpha = 1;
	}
	if(color == null) {
		color = 16711680;
	}
	(openfl_filters_BitmapFilter().default).call(this);
	this.__color = color;
	this.__alpha = alpha;
	this.set_blurX(blurX);
	this.set_blurY(blurY);
	this.__strength = strength;
	this.set_quality(quality);
	this.__inner = inner;
	this.__knockout = knockout;
	this.__needSecondBitmapData = true;
	this.__preserveObject = true;
	this.__renderDirty = true;
}
// Meta
GlowFilter.__name__ = ["openfl","filters","GlowFilter"];
GlowFilter.__super__ = (openfl_filters_BitmapFilter().default);
GlowFilter.prototype = $extend((openfl_filters_BitmapFilter().default).prototype, {
	clone: function() {
		return new GlowFilter(this.__color,this.__alpha,this.__blurX,this.__blurY,this.__strength,this.__quality,this.__inner,this.__knockout);
	},
	__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) {
		var r = this.__color >> 16 & 255;
		var g = this.__color >> 8 & 255;
		var b = this.__color & 255;
		sourceBitmapData.colorTransform(sourceBitmapData.rect,new (openfl_geom_ColorTransform().default)(0,0,0,1,r,g,b,this.__alpha * 255));
		var finalImage = (lime_graphics_utils_ImageDataUtil().default).gaussianBlur(bitmapData.image,sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),this.__blurX,this.__blurY,this.__quality,this.__strength);
		if(finalImage == bitmapData.image) {
			return bitmapData;
		}
		return sourceBitmapData;
	},
	__initShader: function(renderSession,pass) {
		return null;
	},
	get_alpha: function() {
		return this.__alpha;
	},
	set_alpha: function(value) {
		if(value != this.__alpha) {
			this.__renderDirty = true;
		}
		return this.__alpha = value;
	},
	get_blurX: function() {
		return this.__blurX;
	},
	set_blurX: function(value) {
		if(value != this.__blurX) {
			this.__blurX = value;
			this.__renderDirty = true;
			this.__leftExtension = value > 0 ? Math.ceil(value) : 0;
			this.__rightExtension = this.__leftExtension;
		}
		return value;
	},
	get_blurY: function() {
		return this.__blurY;
	},
	set_blurY: function(value) {
		if(value != this.__blurY) {
			this.__blurY = value;
			this.__renderDirty = true;
			this.__topExtension = value > 0 ? Math.ceil(value) : 0;
			this.__bottomExtension = this.__topExtension;
		}
		return value;
	},
	get_color: function() {
		return this.__color;
	},
	set_color: function(value) {
		if(value != this.__color) {
			this.__renderDirty = true;
		}
		return this.__color = value;
	},
	get_inner: function() {
		return this.__inner;
	},
	set_inner: function(value) {
		if(value != this.__inner) {
			this.__renderDirty = true;
		}
		return this.__inner = value;
	},
	get_knockout: function() {
		return this.__knockout;
	},
	set_knockout: function(value) {
		if(value != this.__knockout) {
			this.__renderDirty = true;
		}
		return this.__knockout = value;
	},
	get_quality: function() {
		return this.__quality;
	},
	set_quality: function(value) {
		this.__horizontalPasses = this.__blurX <= 0 ? 0 : Math.round(this.__blurX * (value / 4)) + 1;
		this.__verticalPasses = this.__blurY <= 0 ? 0 : Math.round(this.__blurY * (value / 4)) + 1;
		this.__numShaderPasses = this.__horizontalPasses + this.__verticalPasses;
		if(value != this.__quality) {
			this.__renderDirty = true;
		}
		return this.__quality = value;
	},
	get_strength: function() {
		return this.__strength;
	},
	set_strength: function(value) {
		if(value != this.__strength) {
			this.__renderDirty = true;
		}
		return this.__strength = value;
	}
});
GlowFilter.prototype.__class__ = $hxClasses["openfl.filters.GlowFilter"] = GlowFilter;
// Init
Object.defineProperties(GlowFilter.prototype,{ "alpha" : { get : function () { return this.get_alpha (); }, set : function (v) { return this.set_alpha (v); }}, "blurX" : { get : function () { return this.get_blurX (); }, set : function (v) { return this.set_blurX (v); }}, "blurY" : { get : function () { return this.get_blurY (); }, set : function (v) { return this.set_blurY (v); }}, "color" : { get : function () { return this.get_color (); }, set : function (v) { return this.set_color (v); }}, "inner" : { get : function () { return this.get_inner (); }, set : function (v) { return this.set_inner (v); }}, "knockout" : { get : function () { return this.get_knockout (); }, set : function (v) { return this.set_knockout (v); }}, "quality" : { get : function () { return this.get_quality (); }, set : function (v) { return this.set_quality (v); }}, "strength" : { get : function () { return this.get_strength (); }, set : function (v) { return this.set_strength (v); }}});
// Statics
// Export
exports.default = GlowFilter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 101 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.IOErrorEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_ErrorEvent() {return __webpack_require__(60);}
// Constructor
var IOErrorEvent = function(type,bubbles,cancelable,text,id) {
	if(id == null) {
		id = 0;
	}
	if(text == null) {
		text = "";
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = true;
	}
	(openfl_events_ErrorEvent().default).call(this,type,bubbles,cancelable,text,id);
}
// Meta
IOErrorEvent.__name__ = ["openfl","events","IOErrorEvent"];
IOErrorEvent.__super__ = (openfl_events_ErrorEvent().default);
IOErrorEvent.prototype = $extend((openfl_events_ErrorEvent().default).prototype, {
	clone: function() {
		var event = new IOErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("IOErrorEvent",["type","bubbles","cancelable","text","errorID"]);
	}
});
IOErrorEvent.prototype.__class__ = $hxClasses["openfl.events.IOErrorEvent"] = IOErrorEvent;
// Init
// Statics
IOErrorEvent.IO_ERROR = "ioError"
// Export
exports.default = IOErrorEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 102 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.text.Font
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_text_Font() {return __webpack_require__(136);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function lime_app_Future() {return __webpack_require__(24);}
function js_Boot() {return __webpack_require__(20);}
function Type() {return __webpack_require__(10);}
// Constructor
var Font = function(name) {
	(lime_text_Font().default).call(this,name);
}
// Meta
Font.__name__ = ["openfl","text","Font"];
Font.__super__ = (lime_text_Font().default);
Font.prototype = $extend((lime_text_Font().default).prototype, {
	__fromLimeFont: function(font) {
		this.__copyFrom(font);
	},
	__initialize: function() {
		return this.__initialized;
	},
	get_fontName: function() {
		return this.name;
	},
	set_fontName: function(value) {
		return this.name = value;
	}
});
Font.prototype.__class__ = $hxClasses["openfl.text.Font"] = Font;
// Init
Object.defineProperty(Font.prototype,"fontName",{ get : function () { return this.get_fontName (); }, set : function (v) { return this.set_fontName (v); }});
// Statics
Font.enumerateFonts = function(enumerateDeviceFonts) {
	if(enumerateDeviceFonts == null) {
		enumerateDeviceFonts = false;
	}
	return Font.__registeredFonts;
}
Font.fromBytes = function(bytes) {
	var font = new Font();
	font.__fromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes));
	return font;
}
Font.fromFile = function(path) {
	var font = new Font();
	font.__fromFile(path);
	return font;
}
Font.loadFromBytes = function(bytes) {
	return (lime_text_Font().default).loadFromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes)).then(function(limeFont) {
		var font = new Font();
		font.__fromLimeFont(limeFont);
		return (lime_app_Future().default).withValue(font);
	});
}
Font.loadFromFile = function(path) {
	return (lime_text_Font().default).loadFromFile(path).then(function(limeFont) {
		var font = new Font();
		font.__fromLimeFont(limeFont);
		return (lime_app_Future().default).withValue(font);
	});
}
Font.loadFromName = function(path) {
	return (lime_text_Font().default).loadFromName(path).then(function(limeFont) {
		var font = new Font();
		font.__fromLimeFont(limeFont);
		return (lime_app_Future().default).withValue(font);
	});
}
Font.registerFont = function(font) {
	var instance = (js_Boot().default).__cast((Type().default).createInstance(font,[]) , Font);
	if(instance != null) {
		Font.__registeredFonts.push(instance);
		Font.__fontByName.set(instance.name,instance);
	}
}
Font.__fontByName = new (haxe_ds_StringMap().default)()
Font.__registeredFonts = []
// Export
exports.default = Font;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 103 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.AssetManifest
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_Serializer() {return __webpack_require__(198);}
function lime_utils__$Bytes_Bytes_$Impl_$() {return __webpack_require__(74);}
function lime_app_Future() {return __webpack_require__(24);}
function haxe_Unserializer() {return __webpack_require__(199);}
function HxOverrides() {return __webpack_require__(7);}
function StringTools() {return __webpack_require__(12);}
function haxe_io_Path() {return __webpack_require__(80);}
// Constructor
var AssetManifest = function() {
	this.assets = [];
	this.libraryArgs = [];
	this.version = 2;
}
// Meta
AssetManifest.__name__ = ["lime","utils","AssetManifest"];
AssetManifest.prototype = {
	serialize: function() {
		var manifestData = { };
		manifestData.version = this.version;
		manifestData.libraryType = this.libraryType;
		manifestData.libraryArgs = this.libraryArgs;
		manifestData.name = this.name;
		manifestData.assets = (haxe_Serializer().default).run(this.assets);
		return JSON.stringify(manifestData);
	}
};
AssetManifest.prototype.__class__ = $hxClasses["lime.utils.AssetManifest"] = AssetManifest;
// Init
// Statics
AssetManifest.fromBytes = function(bytes,rootPath) {
	if(bytes != null) {
		return AssetManifest.parse(bytes.getString(0,bytes.get_length()),rootPath);
	} else {
		return null;
	}
}
AssetManifest.fromFile = function(path,rootPath) {
	path = AssetManifest.__resolvePath(path);
	rootPath = AssetManifest.__resolveRootPath(rootPath,path);
	if(path == null) {
		return null;
	}
	return AssetManifest.fromBytes((lime_utils__$Bytes_Bytes_$Impl_$().default).fromFile(path),rootPath);
}
AssetManifest.loadFromBytes = function(bytes,rootPath) {
	return (lime_app_Future().default).withValue(AssetManifest.fromBytes(bytes,rootPath));
}
AssetManifest.loadFromFile = function(path,rootPath) {
	path = AssetManifest.__resolvePath(path);
	rootPath = AssetManifest.__resolveRootPath(rootPath,path);
	if(path == null) {
		return null;
	}
	return (lime_utils__$Bytes_Bytes_$Impl_$().default).loadFromFile(path).then(function(bytes) {
		return (lime_app_Future().default).withValue(AssetManifest.fromBytes(bytes,rootPath));
	});
}
AssetManifest.parse = function(data,rootPath) {
	if(data == null || data == "") {
		return null;
	}
	var manifestData = JSON.parse(data);
	var manifest = new AssetManifest();
	manifest.name = manifestData.name;
	manifest.libraryType = manifestData.libraryType;
	manifest.libraryArgs = manifestData.libraryArgs;
	manifest.assets = (haxe_Unserializer().default).run(manifestData.assets);
	if(rootPath != null) {
		manifest.rootPath = rootPath;
	}
	return manifest;
}
AssetManifest.__resolvePath = function(path) {
	if(path == null) {
		return null;
	}
	var queryIndex = path.indexOf("?");
	var basePath;
	if(queryIndex > -1) {
		basePath = (HxOverrides().default).substr(path,0,queryIndex);
	} else {
		basePath = path;
	}
	(StringTools().default).replace(basePath,"\\","/");
	while((StringTools().default).endsWith(basePath,"/")) basePath = (HxOverrides().default).substr(basePath,0,basePath.length - 1);
	if((StringTools().default).endsWith(basePath,".bundle")) {
		if(queryIndex > -1) {
			return basePath + "/library.json" + (HxOverrides().default).substr(path,queryIndex,null);
		} else {
			return basePath + "/library.json";
		}
	} else {
		return path;
	}
}
AssetManifest.__resolveRootPath = function(rootPath,path) {
	if(rootPath != null) {
		return rootPath;
	}
	var queryIndex = path.indexOf("?");
	if(queryIndex > -1) {
		rootPath = (HxOverrides().default).substr(path,0,queryIndex);
	} else {
		rootPath = path;
	}
	(StringTools().default).replace(rootPath,"\\","/");
	while((StringTools().default).endsWith(rootPath,"/")) {
		if(rootPath == "/") {
			return rootPath;
		}
		rootPath = (HxOverrides().default).substr(rootPath,0,rootPath.length - 1);
	}
	if((StringTools().default).endsWith(rootPath,".bundle")) {
		return rootPath;
	} else {
		return (haxe_io_Path().default).directory(rootPath);
	}
}
// Export
exports.default = AssetManifest;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 104 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.textures.Texture
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display3D_textures_TextureBase() {return __webpack_require__(82);}
function openfl__$internal_stage3D_opengl_GLTexture() {return __webpack_require__(397);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var Texture = function(context,width,height,format,optimizeForRenderToTexture,streamingLevels) {
	(openfl_display3D_textures_TextureBase().default).call(this,context);
	this.__width = width;
	this.__height = height;
	this.__optimizeForRenderToTexture = optimizeForRenderToTexture;
	this.__streamingLevels = streamingLevels;
	(openfl__$internal_stage3D_opengl_GLTexture().default).create(this,this.__context.__renderSession);
}
// Meta
Texture.__name__ = ["openfl","display3D","textures","Texture"];
Texture.__super__ = (openfl_display3D_textures_TextureBase().default);
Texture.prototype = $extend((openfl_display3D_textures_TextureBase().default).prototype, {
	uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) {
		if(async == null) {
			async = false;
		}
		var _gthis = this;
		if(!async) {
			(openfl__$internal_stage3D_opengl_GLTexture().default).uploadCompressedTextureFromByteArray(this,this.__context.__renderSession,data,byteArrayOffset);
		} else {
			(haxe_Timer().default).delay(function() {
				(openfl__$internal_stage3D_opengl_GLTexture().default).uploadCompressedTextureFromByteArray(_gthis,_gthis.__context.__renderSession,data,byteArrayOffset);
				_gthis.dispatchEvent(new (openfl_events_Event().default)("textureReady"));
			},1);
		}
	},
	uploadFromBitmapData: function(source,miplevel,generateMipmap) {
		if(generateMipmap == null) {
			generateMipmap = false;
		}
		if(miplevel == null) {
			miplevel = 0;
		}
		(openfl__$internal_stage3D_opengl_GLTexture().default).uploadFromBitmapData(this,this.__context.__renderSession,source,miplevel,generateMipmap);
	},
	uploadFromByteArray: function(data,byteArrayOffset,miplevel) {
		if(miplevel == null) {
			miplevel = 0;
		}
		(openfl__$internal_stage3D_opengl_GLTexture().default).uploadFromByteArray(this,this.__context.__renderSession,data,byteArrayOffset,miplevel);
	},
	uploadFromTypedArray: function(data,miplevel) {
		if(miplevel == null) {
			miplevel = 0;
		}
		(openfl__$internal_stage3D_opengl_GLTexture().default).uploadFromTypedArray(this,this.__context.__renderSession,data,miplevel);
	},
	__setSamplerState: function(state) {
		(openfl__$internal_stage3D_opengl_GLTexture().default).setSamplerState(this,this.__context.__renderSession,state);
	}
});
Texture.prototype.__class__ = $hxClasses["openfl.display3D.textures.Texture"] = Texture;
// Init
// Statics
Texture.__lowMemoryMode = false
// Export
exports.default = Texture;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 105 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLTextureBase
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_opengl_GLContextType() {return __webpack_require__(87);}
function openfl__$internal_stage3D_GLCompressedTextureFormats() {return __webpack_require__(396);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function lime_graphics_ImageType() {return __webpack_require__(55);}
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
// Constructor
var GLTextureBase = function(){}
// Meta
GLTextureBase.__name__ = ["openfl","_internal","stage3D","opengl","GLTextureBase"];
GLTextureBase.prototype = {
	
};
GLTextureBase.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLTextureBase"] = GLTextureBase;
// Init
// Statics
GLTextureBase.create = function(textureBase,renderSession) {
	var gl = renderSession.gl;
	textureBase.__textureID = gl.createTexture();
	textureBase.__textureContext = gl;
	if(GLTextureBase.__supportsBGRA == null) {
		GLTextureBase.__textureInternalFormat = gl.RGBA;
		var bgraExtension = null;
		if(bgraExtension != null) {
			GLTextureBase.__supportsBGRA = true;
			GLTextureBase.__textureFormat = bgraExtension.BGRA_EXT;
			if(gl.type == (lime_graphics_opengl_GLContextType().default).GLES) {
				GLTextureBase.__textureInternalFormat = bgraExtension.BGRA_EXT;
			}
		} else {
			GLTextureBase.__supportsBGRA = false;
			GLTextureBase.__textureFormat = gl.RGBA;
		}
	}
	if(GLTextureBase.__compressedTextureFormats == null) {
		GLTextureBase.__compressedTextureFormats = new (openfl__$internal_stage3D_GLCompressedTextureFormats().default)(gl);
	}
	textureBase.__internalFormat = GLTextureBase.__textureInternalFormat;
	textureBase.__format = GLTextureBase.__textureFormat;
}
GLTextureBase.dispose = function(textureBase,renderSession) {
	var gl = renderSession.gl;
	if(textureBase.__alphaTexture != null) {
		textureBase.__alphaTexture.dispose();
	}
	gl.deleteTexture(textureBase.__textureID);
}
GLTextureBase.getImage = function(textureBase,renderSession,bitmapData) {
	var image = bitmapData.image;
	if(!bitmapData.__isValid || image == null) {
		return null;
	}
	(lime_graphics_utils_ImageCanvasUtil().default).sync(image,false);
	var gl = renderSession.gl;
	if(image.type != (lime_graphics_ImageType().default).DATA && !image.get_premultiplied()) {
		gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1);
	} else if(!image.get_premultiplied() && image.get_transparent()) {
		gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0);
		image = image.clone();
		image.set_premultiplied(true);
	}
	if(image.get_format() != 0) {
		image = image.clone();
		image.set_format(0);
		image.buffer.premultiplied = true;
	}
	return image;
}
GLTextureBase.setSamplerState = function(textureBase,renderSession,state) {
	if(!state.equals(textureBase.__samplerState)) {
		var gl = renderSession.gl;
		gl.bindTexture(textureBase.__textureTarget,textureBase.__textureID);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		gl.texParameteri(textureBase.__textureTarget,gl.TEXTURE_MIN_FILTER,state.minFilter);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		gl.texParameteri(textureBase.__textureTarget,gl.TEXTURE_MAG_FILTER,state.magFilter);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		gl.texParameteri(textureBase.__textureTarget,gl.TEXTURE_WRAP_S,state.wrapModeS);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		gl.texParameteri(textureBase.__textureTarget,gl.TEXTURE_WRAP_T,state.wrapModeT);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		var tmp = state.lodBias != 0.0;
		textureBase.__samplerState = state;
		textureBase.__samplerState.__samplerDirty = false;
	}
}
GLTextureBase.__supportsBGRA = null
GLTextureBase.__compressedTextureFormats = null
// Export
exports.default = GLTextureBase;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 106 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.textures.CubeTexture
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display3D_textures_TextureBase() {return __webpack_require__(82);}
function openfl__$internal_stage3D_opengl_GLCubeTexture() {return __webpack_require__(399);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var CubeTexture = function(context,size,format,optimizeForRenderToTexture,streamingLevels) {
	(openfl_display3D_textures_TextureBase().default).call(this,context);
	this.__size = size;
	this.__optimizeForRenderToTexture = optimizeForRenderToTexture;
	this.__streamingLevels = streamingLevels;
	(openfl__$internal_stage3D_opengl_GLCubeTexture().default).create(this,this.__context.__renderSession);
}
// Meta
CubeTexture.__name__ = ["openfl","display3D","textures","CubeTexture"];
CubeTexture.__super__ = (openfl_display3D_textures_TextureBase().default);
CubeTexture.prototype = $extend((openfl_display3D_textures_TextureBase().default).prototype, {
	uploadCompressedTextureFromByteArray: function(data,byteArrayOffset,async) {
		if(async == null) {
			async = false;
		}
		var _gthis = this;
		if(!async) {
			(openfl__$internal_stage3D_opengl_GLCubeTexture().default).uploadCompressedTextureFromByteArray(this,this.__context.__renderSession,data,byteArrayOffset);
		} else {
			(haxe_Timer().default).delay(function() {
				(openfl__$internal_stage3D_opengl_GLCubeTexture().default).uploadCompressedTextureFromByteArray(_gthis,_gthis.__context.__renderSession,data,byteArrayOffset);
				_gthis.dispatchEvent(new (openfl_events_Event().default)("textureReady"));
			},1);
		}
	},
	uploadFromBitmapData: function(source,side,miplevel,generateMipmap) {
		if(generateMipmap == null) {
			generateMipmap = false;
		}
		if(miplevel == null) {
			miplevel = 0;
		}
		if(source == null) {
			return;
		}
		(openfl__$internal_stage3D_opengl_GLCubeTexture().default).uploadFromBitmapData(this,this.__context.__renderSession,source,side,miplevel,generateMipmap);
	},
	uploadFromByteArray: function(data,byteArrayOffset,side,miplevel) {
		if(miplevel == null) {
			miplevel = 0;
		}
		(openfl__$internal_stage3D_opengl_GLCubeTexture().default).uploadFromByteArray(this,this.__context.__renderSession,data,byteArrayOffset,side,miplevel);
	},
	uploadFromTypedArray: function(data,side,miplevel) {
		if(miplevel == null) {
			miplevel = 0;
		}
		if(data == null) {
			return;
		}
		(openfl__$internal_stage3D_opengl_GLCubeTexture().default).uploadFromTypedArray(this,this.__context.__renderSession,data,side,miplevel);
	},
	__setSamplerState: function(state) {
		(openfl__$internal_stage3D_opengl_GLCubeTexture().default).setSamplerState(this,this.__context.__renderSession,state);
	}
});
CubeTexture.prototype.__class__ = $hxClasses["openfl.display3D.textures.CubeTexture"] = CubeTexture;
// Init
// Statics
// Export
exports.default = CubeTexture;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 107 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.IMap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IMap = function() {}
// Meta
IMap.__name__ = ["haxe","IMap"];
IMap.prototype = {
	
};
IMap.prototype.__class__ = $hxClasses["haxe.IMap"] = IMap;
// Init
// Statics
// Export
exports.default = IMap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 108 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Int_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Int_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Int_Void.__name__ = ["lime","app","_Event_Int_Void"];
_Event_Int_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Int_Void.prototype.__class__ = $hxClasses["lime.app._Event_Int_Void"] = _Event_Int_Void;
// Init
// Statics
// Export
exports.default = _Event_Int_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 109 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.ui.Touch
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_app__$Event_$lime_$ui_$Touch_$Void() {return __webpack_require__(249);}
// Constructor
var Touch = function(x,y,id,dx,dy,pressure,device) {
	this.x = x;
	this.y = y;
	this.id = id;
	this.dx = dx;
	this.dy = dy;
	this.pressure = pressure;
	this.device = device;
}
// Meta
Touch.__name__ = ["lime","ui","Touch"];
Touch.prototype = {
	
};
Touch.prototype.__class__ = $hxClasses["lime.ui.Touch"] = Touch;
// Init
// Statics
Touch.onCancel = new (lime_app__$Event_$lime_$ui_$Touch_$Void().default)()
Touch.onEnd = new (lime_app__$Event_$lime_$ui_$Touch_$Void().default)()
Touch.onMove = new (lime_app__$Event_$lime_$ui_$Touch_$Void().default)()
Touch.onStart = new (lime_app__$Event_$lime_$ui_$Touch_$Void().default)()
// Export
exports.default = Touch;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 110 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.ImageBuffer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js_Browser() {return __webpack_require__(11);}
function Std() {return __webpack_require__(4);}
// Constructor
var ImageBuffer = function(data,width,height,bitsPerPixel,format) {
	if(bitsPerPixel == null) {
		bitsPerPixel = 32;
	}
	if(height == null) {
		height = 0;
	}
	if(width == null) {
		width = 0;
	}
	this.data = data;
	this.width = width;
	this.height = height;
	this.bitsPerPixel = bitsPerPixel;
	this.format = format == null ? 0 : format;
	this.premultiplied = false;
	this.transparent = true;
}
// Meta
ImageBuffer.__name__ = ["lime","graphics","ImageBuffer"];
ImageBuffer.prototype = {
	clone: function() {
		var buffer = new ImageBuffer(this.data,this.width,this.height,this.bitsPerPixel);
		if(this.data != null) {
			var elements = this.data.byteLength;
			var this1;
			if(elements != null) {
				this1 = new Uint8Array(elements);
			} else {
				this1 = null;
			}
			buffer.data = this1;
			var view = this.data;
			var this2;
			if(view != null) {
				this2 = new Uint8Array(view);
			} else {
				this2 = null;
			}
			var copy = this2;
			buffer.data.set(copy);
		} else if(this.__srcImageData != null) {
			buffer.__srcCanvas = (js_Browser().default).get_document().createElement("canvas");
			buffer.__srcContext = buffer.__srcCanvas.getContext("2d");
			buffer.__srcCanvas.width = this.__srcImageData.width;
			buffer.__srcCanvas.height = this.__srcImageData.height;
			buffer.__srcImageData = buffer.__srcContext.createImageData(this.__srcImageData.width,this.__srcImageData.height);
			var copy1 = new Uint8ClampedArray(this.__srcImageData.data);
			buffer.__srcImageData.data.set(copy1);
		} else if(this.__srcCanvas != null) {
			buffer.__srcCanvas = (js_Browser().default).get_document().createElement("canvas");
			buffer.__srcContext = buffer.__srcCanvas.getContext("2d");
			buffer.__srcCanvas.width = this.__srcCanvas.width;
			buffer.__srcCanvas.height = this.__srcCanvas.height;
			buffer.__srcContext.drawImage(this.__srcCanvas,0,0);
		} else {
			buffer.__srcImage = this.__srcImage;
		}
		buffer.bitsPerPixel = this.bitsPerPixel;
		buffer.format = this.format;
		buffer.premultiplied = this.premultiplied;
		buffer.transparent = this.transparent;
		return buffer;
	},
	get_src: function() {
		if(this.__srcImage != null) {
			return this.__srcImage;
		}
		return this.__srcCanvas;
	},
	set_src: function(value) {
		if((Std().default)["is"](value,Image)) {
			this.__srcImage = value;
		} else if((Std().default)["is"](value,HTMLCanvasElement)) {
			this.__srcCanvas = value;
			this.__srcContext = this.__srcCanvas.getContext("2d");
		}
		return value;
	},
	get_stride: function() {
		return this.width * 4;
	}
};
ImageBuffer.prototype.__class__ = $hxClasses["lime.graphics.ImageBuffer"] = ImageBuffer;
// Init
{
	var p = ImageBuffer.prototype;
	Object.defineProperties(p,{ "src" : { get : p.get_src, set : p.set_src}, "stride" : { get : p.get_stride}});
};
// Statics
// Export
exports.default = ImageBuffer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 111 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.graphics.ImageChannel
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var ImageChannel = $hxClasses["lime.graphics.ImageChannel"] = { __ename__: ["lime","graphics","ImageChannel"], __constructs__: ["RED","GREEN","BLUE","ALPHA"] }
ImageChannel.BLUE = ["BLUE",2];
ImageChannel.BLUE.toString = $estr;
ImageChannel.BLUE.__enum__ = ImageChannel;
ImageChannel.GREEN = ["GREEN",1];
ImageChannel.GREEN.toString = $estr;
ImageChannel.GREEN.__enum__ = ImageChannel;
ImageChannel.RED = ["RED",0];
ImageChannel.RED.toString = $estr;
ImageChannel.RED.__enum__ = ImageChannel;
ImageChannel.ALPHA = ["ALPHA",3];
ImageChannel.ALPHA.toString = $estr;
ImageChannel.ALPHA.__enum__ = ImageChannel;
exports.default = ImageChannel;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 112 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.IBitmapDrawable
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IBitmapDrawable = function() {}
// Meta
IBitmapDrawable.__name__ = ["openfl","display","IBitmapDrawable"];
IBitmapDrawable.prototype = {
	
};
IBitmapDrawable.prototype.__class__ = $hxClasses["openfl.display.IBitmapDrawable"] = IBitmapDrawable;
// Init
// Statics
// Export
exports.default = IBitmapDrawable;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 113 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.MouseEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var MouseEvent = function(type,bubbles,cancelable,localX,localY,relatedObject,ctrlKey,altKey,shiftKey,buttonDown,delta,commandKey,clickCount) {
	if(clickCount == null) {
		clickCount = 0;
	}
	if(commandKey == null) {
		commandKey = false;
	}
	if(delta == null) {
		delta = 0;
	}
	if(buttonDown == null) {
		buttonDown = false;
	}
	if(shiftKey == null) {
		shiftKey = false;
	}
	if(altKey == null) {
		altKey = false;
	}
	if(ctrlKey == null) {
		ctrlKey = false;
	}
	if(localY == null) {
		localY = 0;
	}
	if(localX == null) {
		localX = 0;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = true;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.shiftKey = shiftKey;
	this.altKey = altKey;
	this.ctrlKey = ctrlKey;
	this.bubbles = bubbles;
	this.relatedObject = relatedObject;
	this.delta = delta;
	this.localX = localX;
	this.localY = localY;
	this.buttonDown = buttonDown;
	this.commandKey = commandKey;
	this.clickCount = clickCount;
	this.isRelatedObjectInaccessible = false;
	this.stageX = NaN;
	this.stageY = NaN;
}
// Meta
MouseEvent.__name__ = ["openfl","events","MouseEvent"];
MouseEvent.__super__ = (openfl_events_Event().default);
MouseEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new MouseEvent(this.type,this.bubbles,this.cancelable,this.localX,this.localY,this.relatedObject,this.ctrlKey,this.altKey,this.shiftKey,this.buttonDown,this.delta,this.commandKey,this.clickCount);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("MouseEvent",["type","bubbles","cancelable","localX","localY","relatedObject","ctrlKey","altKey","shiftKey","buttonDown","delta"]);
	},
	updateAfterEvent: function() {
	}
});
MouseEvent.prototype.__class__ = $hxClasses["openfl.events.MouseEvent"] = MouseEvent;
// Init
// Statics
MouseEvent.__create = function(type,button,stageX,stageY,local,target,delta) {
	if(delta == null) {
		delta = 0;
	}
	var event = new MouseEvent(type,true,false,local.x,local.y,null,MouseEvent.__ctrlKey,MouseEvent.__altKey,MouseEvent.__shiftKey,MouseEvent.__buttonDown,delta,MouseEvent.__commandKey);
	event.stageX = stageX;
	event.stageY = stageY;
	event.target = target;
	return event;
}
MouseEvent.CLICK = "click"
MouseEvent.DOUBLE_CLICK = "doubleClick"
MouseEvent.MIDDLE_CLICK = "middleClick"
MouseEvent.MIDDLE_MOUSE_DOWN = "middleMouseDown"
MouseEvent.MIDDLE_MOUSE_UP = "middleMouseUp"
MouseEvent.MOUSE_DOWN = "mouseDown"
MouseEvent.MOUSE_MOVE = "mouseMove"
MouseEvent.MOUSE_OUT = "mouseOut"
MouseEvent.MOUSE_OVER = "mouseOver"
MouseEvent.MOUSE_UP = "mouseUp"
MouseEvent.MOUSE_WHEEL = "mouseWheel"
MouseEvent.RELEASE_OUTSIDE = "releaseOutside"
MouseEvent.RIGHT_CLICK = "rightClick"
MouseEvent.RIGHT_MOUSE_DOWN = "rightMouseDown"
MouseEvent.RIGHT_MOUSE_UP = "rightMouseUp"
MouseEvent.ROLL_OUT = "rollOut"
MouseEvent.ROLL_OVER = "rollOver"
// Export
exports.default = MouseEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 114 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.TouchEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var TouchEvent = function(type,bubbles,cancelable,touchPointID,isPrimaryTouchPoint,localX,localY,sizeX,sizeY,pressure,relatedObject,ctrlKey,altKey,shiftKey,commandKey,controlKey,timestamp,touchIntent,samples,isTouchPointCanceled) {
	if(isTouchPointCanceled == null) {
		isTouchPointCanceled = false;
	}
	if(timestamp == null) {
		timestamp = 0;
	}
	if(controlKey == null) {
		controlKey = false;
	}
	if(commandKey == null) {
		commandKey = false;
	}
	if(shiftKey == null) {
		shiftKey = false;
	}
	if(altKey == null) {
		altKey = false;
	}
	if(ctrlKey == null) {
		ctrlKey = false;
	}
	if(pressure == null) {
		pressure = 0;
	}
	if(sizeY == null) {
		sizeY = 0;
	}
	if(sizeX == null) {
		sizeX = 0;
	}
	if(localY == null) {
		localY = 0;
	}
	if(localX == null) {
		localX = 0;
	}
	if(isPrimaryTouchPoint == null) {
		isPrimaryTouchPoint = false;
	}
	if(touchPointID == null) {
		touchPointID = 0;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = true;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.touchPointID = touchPointID;
	this.isPrimaryTouchPoint = isPrimaryTouchPoint;
	this.localX = localX;
	this.localY = localY;
	this.sizeX = sizeX;
	this.sizeY = sizeY;
	this.pressure = pressure;
	this.relatedObject = relatedObject;
	this.ctrlKey = ctrlKey;
	this.altKey = altKey;
	this.shiftKey = shiftKey;
	this.commandKey = commandKey;
	this.controlKey = controlKey;
	this.stageX = NaN;
	this.stageY = NaN;
}
// Meta
TouchEvent.__name__ = ["openfl","events","TouchEvent"];
TouchEvent.__super__ = (openfl_events_Event().default);
TouchEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new TouchEvent(this.type,this.bubbles,this.cancelable,this.touchPointID,this.isPrimaryTouchPoint,this.localX,this.localY,this.sizeX,this.sizeY,this.pressure,this.relatedObject,this.ctrlKey,this.altKey,this.shiftKey,this.commandKey,this.controlKey);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("TouchEvent",["type","bubbles","cancelable","touchPointID","isPrimaryTouchPoint","localX","localY","sizeX","sizeY","pressure","relatedObject","ctrlKey","altKey","shiftKey","commandKey","controlKey"]);
	},
	updateAfterEvent: function() {
	}
});
TouchEvent.prototype.__class__ = $hxClasses["openfl.events.TouchEvent"] = TouchEvent;
// Init
// Statics
TouchEvent.__create = function(type,touch,stageX,stageY,local,target) {
	var evt = new TouchEvent(type,true,false,0,true,local.x,local.y,1,1,1);
	evt.stageX = stageX;
	evt.stageY = stageY;
	evt.target = target;
	return evt;
}
TouchEvent.TOUCH_BEGIN = "touchBegin"
TouchEvent.TOUCH_END = "touchEnd"
TouchEvent.TOUCH_MOVE = "touchMove"
TouchEvent.TOUCH_OUT = "touchOut"
TouchEvent.TOUCH_OVER = "touchOver"
TouchEvent.TOUCH_ROLL_OUT = "touchRollOut"
TouchEvent.TOUCH_ROLL_OVER = "touchRollOver"
TouchEvent.TOUCH_TAP = "touchTap"
// Export
exports.default = TouchEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 115 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasBitmap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function Std() {return __webpack_require__(4);}
// Constructor
var CanvasBitmap = function(){}
// Meta
CanvasBitmap.__name__ = ["openfl","_internal","renderer","canvas","CanvasBitmap"];
CanvasBitmap.prototype = {
	
};
CanvasBitmap.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasBitmap"] = CanvasBitmap;
// Init
// Statics
CanvasBitmap.render = function(bitmap,renderSession) {
	if(!bitmap.__renderable || bitmap.__worldAlpha <= 0) {
		return;
	}
	var context = renderSession.context;
	if(bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid && bitmap.__bitmapData.readable) {
		renderSession.blendModeManager.setBlendMode(bitmap.__worldBlendMode);
		renderSession.maskManager.pushObject(bitmap,false);
		(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(bitmap.__bitmapData.image);
		context.globalAlpha = bitmap.__worldAlpha;
		var transform = bitmap.__renderTransform;
		var scrollRect = bitmap.__scrollRect;
		if(renderSession.roundPixels) {
			context.setTransform(transform.a,transform.b,transform.c,transform.d,(Std().default)["int"](transform.tx),(Std().default)["int"](transform.ty));
		} else {
			context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
		}
		if(!renderSession.allowSmoothing || !bitmap.smoothing) {
			context.mozImageSmoothingEnabled = false;
			context.msImageSmoothingEnabled = false;
			context.imageSmoothingEnabled = false;
		}
		if(scrollRect == null) {
			context.drawImage(bitmap.__bitmapData.image.get_src(),0,0);
		} else {
			context.drawImage(bitmap.__bitmapData.image.get_src(),scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
		}
		if(!renderSession.allowSmoothing || !bitmap.smoothing) {
			context.mozImageSmoothingEnabled = true;
			context.msImageSmoothingEnabled = true;
			context.imageSmoothingEnabled = true;
		}
		renderSession.maskManager.popObject(bitmap,false);
	}
}
// Export
exports.default = CanvasBitmap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 116 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.DrawCommandReader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Type() {return __webpack_require__(10);}
function openfl__$internal_renderer_DrawCommandType() {return __webpack_require__(117);}
// Constructor
var DrawCommandReader = function(buffer) {
	this.buffer = buffer;
	this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0;
	this.prev = (openfl__$internal_renderer_DrawCommandType().default).UNKNOWN;
}
// Meta
DrawCommandReader.__name__ = ["openfl","_internal","renderer","DrawCommandReader"];
DrawCommandReader.prototype = {
	advance: function() {
		var _g = this.prev;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			this.oPos += 2;
			this.bPos += 2;
			break;
		case 1:
			this.iPos += 1;
			this.fPos += 1;
			break;
		case 2:
			this.oPos += 4;
			this.iiPos += 2;
			this.ffPos += 1;
			this.fPos += 1;
			break;
		case 3:
			this.fPos += 6;
			break;
		case 4:
			this.fPos += 4;
			break;
		case 5:
			this.fPos += 3;
			break;
		case 6:
			this.fPos += 4;
			break;
		case 7:
			this.fPos += 4;
			break;
		case 8:
			this.fPos += 5;
			this.oPos += 1;
			break;
		case 10:
			this.oPos += 4;
			break;
		case 11:
			break;
		case 12:
			this.oPos += 2;
			this.bPos += 2;
			break;
		case 13:
			this.oPos += 4;
			this.iiPos += 2;
			this.ffPos += 1;
			this.fPos += 1;
			break;
		case 14:
			this.oPos += 4;
			this.iPos += 1;
			this.fPos += 2;
			this.bPos += 1;
			break;
		case 15:
			this.fPos += 2;
			break;
		case 16:
			this.fPos += 2;
			break;
		case 17:
			this.oPos += 1;
			break;
		case 18:case 19:
			break;
		default:
		}
	},
	bool: function(index) {
		return this.buffer.b[this.bPos + index];
	},
	destroy: function() {
		this.buffer = null;
		this.reset();
	},
	fArr: function(index) {
		return this.buffer.ff[this.ffPos + index];
	},
	float: function(index) {
		return this.buffer.f[this.fPos + index];
	},
	iArr: function(index) {
		return this.buffer.ii[this.iiPos + index];
	},
	int: function(index) {
		return this.buffer.i[this.iPos + index];
	},
	obj: function(index) {
		return this.buffer.o[this.oPos + index];
	},
	readBeginBitmapFill: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).BEGIN_BITMAP_FILL;
		var this1 = this;
		return this1;
	},
	readBeginFill: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).BEGIN_FILL;
		var this1 = this;
		return this1;
	},
	readBeginGradientFill: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).BEGIN_GRADIENT_FILL;
		var this1 = this;
		return this1;
	},
	readCubicCurveTo: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).CUBIC_CURVE_TO;
		var this1 = this;
		return this1;
	},
	readCurveTo: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).CURVE_TO;
		var this1 = this;
		return this1;
	},
	readDrawCircle: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).DRAW_CIRCLE;
		var this1 = this;
		return this1;
	},
	readDrawEllipse: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).DRAW_ELLIPSE;
		var this1 = this;
		return this1;
	},
	readDrawRect: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).DRAW_RECT;
		var this1 = this;
		return this1;
	},
	readDrawRoundRect: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).DRAW_ROUND_RECT;
		var this1 = this;
		return this1;
	},
	readDrawTriangles: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).DRAW_TRIANGLES;
		var this1 = this;
		return this1;
	},
	readEndFill: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).END_FILL;
		var this1 = this;
		return this1;
	},
	readLineBitmapStyle: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).LINE_BITMAP_STYLE;
		var this1 = this;
		return this1;
	},
	readLineGradientStyle: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).LINE_GRADIENT_STYLE;
		var this1 = this;
		return this1;
	},
	readLineStyle: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).LINE_STYLE;
		var this1 = this;
		return this1;
	},
	readLineTo: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).LINE_TO;
		var this1 = this;
		return this1;
	},
	readMoveTo: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).MOVE_TO;
		var this1 = this;
		return this1;
	},
	readOverrideMatrix: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).OVERRIDE_MATRIX;
		var this1 = this;
		return this1;
	},
	readWindingEvenOdd: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).WINDING_EVEN_ODD;
		var this1 = this;
		return this1;
	},
	readWindingNonZero: function() {
		this.advance();
		this.prev = (openfl__$internal_renderer_DrawCommandType().default).WINDING_NON_ZERO;
		var this1 = this;
		return this1;
	},
	reset: function() {
		this.bPos = this.iPos = this.fPos = this.oPos = this.ffPos = this.iiPos = this.tsPos = 0;
	},
	skip: function(type) {
		this.advance();
		this.prev = type;
	}
};
DrawCommandReader.prototype.__class__ = $hxClasses["openfl._internal.renderer.DrawCommandReader"] = DrawCommandReader;
// Init
// Statics
// Export
exports.default = DrawCommandReader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 117 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: openfl._internal.renderer.DrawCommandType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var DrawCommandType = $hxClasses["openfl._internal.renderer.DrawCommandType"] = { __ename__: ["openfl","_internal","renderer","DrawCommandType"], __constructs__: ["BEGIN_BITMAP_FILL","BEGIN_FILL","BEGIN_GRADIENT_FILL","CUBIC_CURVE_TO","CURVE_TO","DRAW_CIRCLE","DRAW_ELLIPSE","DRAW_RECT","DRAW_ROUND_RECT","DRAW_TILES","DRAW_TRIANGLES","END_FILL","LINE_BITMAP_STYLE","LINE_GRADIENT_STYLE","LINE_STYLE","LINE_TO","MOVE_TO","OVERRIDE_MATRIX","WINDING_EVEN_ODD","WINDING_NON_ZERO","UNKNOWN"] }
DrawCommandType.DRAW_ELLIPSE = ["DRAW_ELLIPSE",6];
DrawCommandType.DRAW_ELLIPSE.toString = $estr;
DrawCommandType.DRAW_ELLIPSE.__enum__ = DrawCommandType;
DrawCommandType.LINE_GRADIENT_STYLE = ["LINE_GRADIENT_STYLE",13];
DrawCommandType.LINE_GRADIENT_STYLE.toString = $estr;
DrawCommandType.LINE_GRADIENT_STYLE.__enum__ = DrawCommandType;
DrawCommandType.WINDING_NON_ZERO = ["WINDING_NON_ZERO",19];
DrawCommandType.WINDING_NON_ZERO.toString = $estr;
DrawCommandType.WINDING_NON_ZERO.__enum__ = DrawCommandType;
DrawCommandType.DRAW_ROUND_RECT = ["DRAW_ROUND_RECT",8];
DrawCommandType.DRAW_ROUND_RECT.toString = $estr;
DrawCommandType.DRAW_ROUND_RECT.__enum__ = DrawCommandType;
DrawCommandType.BEGIN_FILL = ["BEGIN_FILL",1];
DrawCommandType.BEGIN_FILL.toString = $estr;
DrawCommandType.BEGIN_FILL.__enum__ = DrawCommandType;
DrawCommandType.OVERRIDE_MATRIX = ["OVERRIDE_MATRIX",17];
DrawCommandType.OVERRIDE_MATRIX.toString = $estr;
DrawCommandType.OVERRIDE_MATRIX.__enum__ = DrawCommandType;
DrawCommandType.DRAW_TRIANGLES = ["DRAW_TRIANGLES",10];
DrawCommandType.DRAW_TRIANGLES.toString = $estr;
DrawCommandType.DRAW_TRIANGLES.__enum__ = DrawCommandType;
DrawCommandType.LINE_BITMAP_STYLE = ["LINE_BITMAP_STYLE",12];
DrawCommandType.LINE_BITMAP_STYLE.toString = $estr;
DrawCommandType.LINE_BITMAP_STYLE.__enum__ = DrawCommandType;
DrawCommandType.END_FILL = ["END_FILL",11];
DrawCommandType.END_FILL.toString = $estr;
DrawCommandType.END_FILL.__enum__ = DrawCommandType;
DrawCommandType.UNKNOWN = ["UNKNOWN",20];
DrawCommandType.UNKNOWN.toString = $estr;
DrawCommandType.UNKNOWN.__enum__ = DrawCommandType;
DrawCommandType.LINE_STYLE = ["LINE_STYLE",14];
DrawCommandType.LINE_STYLE.toString = $estr;
DrawCommandType.LINE_STYLE.__enum__ = DrawCommandType;
DrawCommandType.CUBIC_CURVE_TO = ["CUBIC_CURVE_TO",3];
DrawCommandType.CUBIC_CURVE_TO.toString = $estr;
DrawCommandType.CUBIC_CURVE_TO.__enum__ = DrawCommandType;
DrawCommandType.BEGIN_BITMAP_FILL = ["BEGIN_BITMAP_FILL",0];
DrawCommandType.BEGIN_BITMAP_FILL.toString = $estr;
DrawCommandType.BEGIN_BITMAP_FILL.__enum__ = DrawCommandType;
DrawCommandType.DRAW_CIRCLE = ["DRAW_CIRCLE",5];
DrawCommandType.DRAW_CIRCLE.toString = $estr;
DrawCommandType.DRAW_CIRCLE.__enum__ = DrawCommandType;
DrawCommandType.DRAW_RECT = ["DRAW_RECT",7];
DrawCommandType.DRAW_RECT.toString = $estr;
DrawCommandType.DRAW_RECT.__enum__ = DrawCommandType;
DrawCommandType.LINE_TO = ["LINE_TO",15];
DrawCommandType.LINE_TO.toString = $estr;
DrawCommandType.LINE_TO.__enum__ = DrawCommandType;
DrawCommandType.MOVE_TO = ["MOVE_TO",16];
DrawCommandType.MOVE_TO.toString = $estr;
DrawCommandType.MOVE_TO.__enum__ = DrawCommandType;
DrawCommandType.WINDING_EVEN_ODD = ["WINDING_EVEN_ODD",18];
DrawCommandType.WINDING_EVEN_ODD.toString = $estr;
DrawCommandType.WINDING_EVEN_ODD.__enum__ = DrawCommandType;
DrawCommandType.CURVE_TO = ["CURVE_TO",4];
DrawCommandType.CURVE_TO.toString = $estr;
DrawCommandType.CURVE_TO.__enum__ = DrawCommandType;
DrawCommandType.BEGIN_GRADIENT_FILL = ["BEGIN_GRADIENT_FILL",2];
DrawCommandType.BEGIN_GRADIENT_FILL.toString = $estr;
DrawCommandType.BEGIN_GRADIENT_FILL.__enum__ = DrawCommandType;
DrawCommandType.DRAW_TILES = ["DRAW_TILES",9];
DrawCommandType.DRAW_TILES.toString = $estr;
DrawCommandType.DRAW_TILES.__enum__ = DrawCommandType;
exports.default = DrawCommandType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 118 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.AbstractRenderer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var AbstractRenderer = function(stage) {
	this.stage = stage;
	this.width = stage.stageWidth;
	this.height = stage.stageHeight;
}
// Meta
AbstractRenderer.__name__ = ["openfl","_internal","renderer","AbstractRenderer"];
AbstractRenderer.prototype = {
	clear: function() {
	},
	render: function() {
	},
	renderStage3D: function() {
	},
	resize: function(width,height) {
		this.width = width;
		this.height = height;
	}
};
AbstractRenderer.prototype.__class__ = $hxClasses["openfl._internal.renderer.AbstractRenderer"] = AbstractRenderer;
// Init
// Statics
// Export
exports.default = AbstractRenderer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 119 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.AbstractBlendModeManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var AbstractBlendModeManager = function() {
}
// Meta
AbstractBlendModeManager.__name__ = ["openfl","_internal","renderer","AbstractBlendModeManager"];
AbstractBlendModeManager.prototype = {
	setBlendMode: function(blendMode) {
	}
};
AbstractBlendModeManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.AbstractBlendModeManager"] = AbstractBlendModeManager;
// Init
// Statics
// Export
exports.default = AbstractBlendModeManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 120 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.AbstractMaskManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var AbstractMaskManager = function(renderSession) {
	this.renderSession = renderSession;
}
// Meta
AbstractMaskManager.__name__ = ["openfl","_internal","renderer","AbstractMaskManager"];
AbstractMaskManager.prototype = {
	pushMask: function(mask) {
	},
	pushObject: function(object,handleScrollRect) {
		if(handleScrollRect == null) {
			handleScrollRect = true;
		}
	},
	pushRect: function(rect,transform) {
	},
	popMask: function() {
	},
	popObject: function(object,handleScrollRect) {
		if(handleScrollRect == null) {
			handleScrollRect = true;
		}
	},
	popRect: function() {
	},
	saveState: function() {
	},
	restoreState: function() {
	}
};
AbstractMaskManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.AbstractMaskManager"] = AbstractMaskManager;
// Init
// Statics
// Export
exports.default = AbstractMaskManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 121 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.CallStack
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function HxOverrides() {return __webpack_require__(7);}
function haxe_StackItem() {return __webpack_require__(294);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function StringBuf() {return __webpack_require__(31);}
function Type() {return __webpack_require__(10);}
function EReg() {return __webpack_require__(27);}
function Std() {return __webpack_require__(4);}
function StringTools() {return __webpack_require__(12);}
// Constructor
var CallStack = function(){}
// Meta
CallStack.__name__ = ["haxe","CallStack"];
CallStack.prototype = {
	
};
CallStack.prototype.__class__ = $hxClasses["haxe.CallStack"] = CallStack;
// Init
// Statics
CallStack.getStack = function(e) {
	if(e == null) {
		return [];
	}
	var oldValue = Error.prepareStackTrace;
	Error.prepareStackTrace = function(error,callsites) {
		var stack = [];
		var _g = 0;
		while(_g < callsites.length) {
			var site = callsites[_g];
			++_g;
			if(CallStack.wrapCallSite != null) {
				site = CallStack.wrapCallSite(site);
			}
			var method = null;
			var fullName = site.getFunctionName();
			if(fullName != null) {
				var idx = fullName.lastIndexOf(".");
				if(idx >= 0) {
					var className = (HxOverrides().default).substr(fullName,0,idx);
					var methodName = (HxOverrides().default).substr(fullName,idx + 1,null);
					method = (haxe_StackItem().default).Method(className,methodName);
				}
			}
			stack.push((haxe_StackItem().default).FilePos(method,site.getFileName(),site.getLineNumber()));
		}
		return stack;
	};
	var a = CallStack.makeStack(e.stack);
	Error.prepareStackTrace = oldValue;
	return a;
}
CallStack.callStack = function() {
	try {
		throw new Error();
	} catch( e ) {
		if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
		var a = CallStack.getStack(e);
		a.shift();
		return a;
	}
}
CallStack.exceptionStack = function() {
	return CallStack.getStack(CallStack.lastException);
}
CallStack.toString = function(stack) {
	var b = new (StringBuf().default)();
	var _g = 0;
	while(_g < stack.length) {
		var s = stack[_g];
		++_g;
		b.add("\nCalled from ");
		CallStack.itemToString(b,s);
	}
	return b.toString();
}
CallStack.itemToString = function(b,s) {
	switch((Type().default).enumIndex(s)) {
	case 0:
		b.add("a C function");
		break;
	case 1:
		var m = s[2];
		b.add("module ");
		b.add(m);
		break;
	case 2:
		var line = s[4];
		var file = s[3];
		var s1 = s[2];
		if(s1 != null) {
			CallStack.itemToString(b,s1);
			b.add(" (");
		}
		b.add(file);
		b.add(" line ");
		b.add(line);
		if(s1 != null) {
			b.add(")");
		}
		break;
	case 3:
		var meth = s[3];
		var cname = s[2];
		b.add(cname);
		b.add(".");
		b.add(meth);
		break;
	case 4:
		var n = s[2];
		b.add("local function #");
		b.add(n);
		break;
	}
}
CallStack.makeStack = function(s) {
	if(s == null) {
		return [];
	} else if(typeof(s) == "string") {
		var stack = s.split("\n");
		if(stack[0] == "Error") {
			stack.shift();
		}
		var m = [];
		var rie10 = new (EReg().default)("^   at ([A-Za-z0-9_. ]+) \\(([^)]+):([0-9]+):([0-9]+)\\)$","");
		var _g = 0;
		while(_g < stack.length) {
			var line = stack[_g];
			++_g;
			if(rie10.match(line)) {
				var path = rie10.matched(1).split(".");
				var meth = path.pop();
				var file = rie10.matched(2);
				var line1 = (Std().default).parseInt(rie10.matched(3));
				m.push((haxe_StackItem().default).FilePos(meth == "Anonymous function" ? (haxe_StackItem().default).LocalFunction() : meth == "Global code" ? null : (haxe_StackItem().default).Method(path.join("."),meth),file,line1));
			} else {
				m.push((haxe_StackItem().default).Module((StringTools().default).trim(line)));
			}
		}
		return m;
	} else {
		return s;
	}
}
// Export
exports.default = CallStack;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 122 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Shader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_opengl_GLContextType() {return __webpack_require__(87);}
function openfl_display_ShaderData() {return __webpack_require__(172);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function lime_utils_GLUtils() {return __webpack_require__(300);}
function EReg() {return __webpack_require__(27);}
function StringTools() {return __webpack_require__(12);}
function openfl_display_ShaderInput() {return __webpack_require__(173);}
function Reflect() {return __webpack_require__(5);}
function openfl_display_ShaderParameter() {return __webpack_require__(174);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
// Constructor
var Shader = function(code) {
	this.__data = new (openfl_display_ShaderData().default)(null);
	if(this.__glFragmentSource == null) {
		this.__glFragmentSource = "varying float vAlpha;\n\t\tvarying vec4 vColorMultipliers0;\n\t\tvarying vec4 vColorMultipliers1;\n\t\tvarying vec4 vColorMultipliers2;\n\t\tvarying vec4 vColorMultipliers3;\n\t\tvarying vec4 vColorOffsets;\n\t\tvarying vec2 vTexCoord;\n\t\t\n\t\tuniform bool uColorTransform;\n\t\tuniform sampler2D uImage0;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tvec4 color = texture2D (uImage0, vTexCoord);\n\t\t\t\n\t\t\tif (color.a == 0.0) {\n\t\t\t\t\n\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\t\t\t\t\n\t\t\t} else if (uColorTransform) {\n\t\t\t\t\n\t\t\t\tcolor = vec4 (color.rgb / color.a, color.a);\n\t\t\t\t\n\t\t\t\tmat4 colorMultiplier;\n\t\t\t\tcolorMultiplier[0] = vColorMultipliers0;\n\t\t\t\tcolorMultiplier[1] = vColorMultipliers1;\n\t\t\t\tcolorMultiplier[2] = vColorMultipliers2;\n\t\t\t\tcolorMultiplier[3] = vColorMultipliers3;\n\t\t\t\t\n\t\t\t\tcolor = vColorOffsets + (color * colorMultiplier);\n\t\t\t\t\n\t\t\t\tif (color.a > 0.0) {\n\t\t\t\t\t\n\t\t\t\t\tgl_FragColor = vec4 (color.rgb * color.a * vAlpha, color.a * vAlpha);\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tgl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tgl_FragColor = color * vAlpha;\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}";
	}
	if(this.__glVertexSource == null) {
		this.__glVertexSource = "attribute float aAlpha;\n\t\tattribute vec4 aColorMultipliers0;\n\t\tattribute vec4 aColorMultipliers1;\n\t\tattribute vec4 aColorMultipliers2;\n\t\tattribute vec4 aColorMultipliers3;\n\t\tattribute vec4 aColorOffsets;\n\t\tattribute vec4 aPosition;\n\t\tattribute vec2 aTexCoord;\n\t\tvarying float vAlpha;\n\t\tvarying vec4 vColorMultipliers0;\n\t\tvarying vec4 vColorMultipliers1;\n\t\tvarying vec4 vColorMultipliers2;\n\t\tvarying vec4 vColorMultipliers3;\n\t\tvarying vec4 vColorOffsets;\n\t\tvarying vec2 vTexCoord;\n\t\t\n\t\tuniform mat4 uMatrix;\n\t\tuniform bool uColorTransform;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tvAlpha = aAlpha;\n\t\t\tvTexCoord = aTexCoord;\n\t\t\t\n\t\t\tif (uColorTransform) {\n\t\t\t\t\n\t\t\t\tvColorMultipliers0 = aColorMultipliers0;\n\t\t\t\tvColorMultipliers1 = aColorMultipliers1;\n\t\t\t\tvColorMultipliers2 = aColorMultipliers2;\n\t\t\t\tvColorMultipliers3 = aColorMultipliers3;\n\t\t\t\tvColorOffsets = aColorOffsets;\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tgl_Position = uMatrix * aPosition;\n\t\t\t\n\t\t}";
	}
	this.byteCode = code;
	this.precisionHint = "full";
	this.__glSourceDirty = true;
	this.__numPasses = 1;
}
// Meta
Shader.__name__ = ["openfl","display","Shader"];
Shader.prototype = {
	__disable: function() {
		if(this.glProgram != null) {
			this.__disableGL();
		}
	},
	__disableGL: function() {
		if(this.get_data().uImage0 != null) {
			this.get_data().uImage0.input = null;
		}
		var _g = 0;
		var _g1 = this.__paramBool;
		while(_g < _g1.length) {
			var parameter = _g1[_g];
			++_g;
			this.gl.disableVertexAttribArray(parameter.index);
		}
		var _g2 = 0;
		var _g11 = this.__paramFloat;
		while(_g2 < _g11.length) {
			var parameter1 = _g11[_g2];
			++_g2;
			this.gl.disableVertexAttribArray(parameter1.index);
		}
		var _g3 = 0;
		var _g12 = this.__paramInt;
		while(_g3 < _g12.length) {
			var parameter2 = _g12[_g3];
			++_g3;
			this.gl.disableVertexAttribArray(parameter2.index);
		}
		this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null);
		this.gl.bindTexture(this.gl.TEXTURE_2D,null);
		if(this.gl.type == (lime_graphics_opengl_GLContextType().default).OPENGL) {
			this.gl.disable(this.gl.TEXTURE_2D);
		}
	},
	__enable: function() {
		this.__init();
		if(this.glProgram != null) {
			this.__enableGL();
		}
	},
	__enableGL: function() {
		var textureCount = 0;
		var _g = 0;
		var _g1 = this.__inputBitmapData;
		while(_g < _g1.length) {
			var input = _g1[_g];
			++_g;
			this.gl.uniform1i(input.index,textureCount);
			++textureCount;
		}
		if(this.gl.type == (lime_graphics_opengl_GLContextType().default).OPENGL && textureCount > 0) {
			this.gl.enable(this.gl.TEXTURE_2D);
		}
	},
	__init: function() {
		if(this.__data == null) {
			this.__data = new (openfl_display_ShaderData().default)(null);
		}
		if(this.__glFragmentSource != null && this.__glVertexSource != null && (this.glProgram == null || this.__glSourceDirty)) {
			this.__initGL();
		}
	},
	__initGL: function() {
		if(this.__glSourceDirty || this.__isUniform == null) {
			this.__glSourceDirty = false;
			this.glProgram = null;
			this.__isUniform = new (haxe_ds_StringMap().default)();
			this.__inputBitmapData = [];
			this.__paramBool = [];
			this.__paramFloat = [];
			this.__paramInt = [];
			var this1 = new Float32Array(4);
			this.__uniformMatrix2 = this1;
			var this2 = new Float32Array(9);
			this.__uniformMatrix3 = this2;
			var this3 = new Float32Array(16);
			this.__uniformMatrix4 = this3;
			this.__processGLData(this.get_glVertexSource(),"attribute");
			this.__processGLData(this.get_glVertexSource(),"uniform");
			this.__processGLData(this.get_glFragmentSource(),"uniform");
		}
		if(this.gl != null && this.glProgram == null) {
			var fragment = "#ifdef GL_ES\n\t\t\t\tprecision " + (this.precisionHint == "full" ? "mediump" : "lowp") + " float;\n\t\t\t\t#endif\n\t\t\t\t" + this.get_glFragmentSource();
			this.glProgram = (lime_utils_GLUtils().default).createProgram(this.get_glVertexSource(),fragment);
			if(this.glProgram != null) {
				var _g = 0;
				var _g1 = this.__inputBitmapData;
				while(_g < _g1.length) {
					var input = _g1[_g];
					++_g;
					if(this.__isUniform.get(input.name)) {
						input.index = this.gl.getUniformLocation(this.glProgram,input.name);
					} else {
						input.index = this.gl.getAttribLocation(this.glProgram,input.name);
					}
				}
				var _g2 = 0;
				var _g11 = this.__paramBool;
				while(_g2 < _g11.length) {
					var parameter = _g11[_g2];
					++_g2;
					if(this.__isUniform.get(parameter.name)) {
						parameter.index = this.gl.getUniformLocation(this.glProgram,parameter.name);
					} else {
						parameter.index = this.gl.getAttribLocation(this.glProgram,parameter.name);
					}
				}
				var _g3 = 0;
				var _g12 = this.__paramFloat;
				while(_g3 < _g12.length) {
					var parameter1 = _g12[_g3];
					++_g3;
					if(this.__isUniform.get(parameter1.name)) {
						parameter1.index = this.gl.getUniformLocation(this.glProgram,parameter1.name);
					} else {
						parameter1.index = this.gl.getAttribLocation(this.glProgram,parameter1.name);
					}
				}
				var _g4 = 0;
				var _g13 = this.__paramInt;
				while(_g4 < _g13.length) {
					var parameter2 = _g13[_g4];
					++_g4;
					if(this.__isUniform.get(parameter2.name)) {
						parameter2.index = this.gl.getUniformLocation(this.glProgram,parameter2.name);
					} else {
						parameter2.index = this.gl.getAttribLocation(this.glProgram,parameter2.name);
					}
				}
			}
		}
	},
	__processGLData: function(source,storageType) {
		var lastMatch = 0;
		var position;
		var regex;
		var name;
		var type;
		if(storageType == "uniform") {
			regex = new (EReg().default)("uniform ([A-Za-z0-9]+) ([A-Za-z0-9]+)","");
		} else {
			regex = new (EReg().default)("attribute ([A-Za-z0-9]+) ([A-Za-z0-9]+)","");
		}
		while(regex.matchSub(source,lastMatch)) {
			type = regex.matched(1);
			name = regex.matched(2);
			if((StringTools().default).startsWith(type,"sampler")) {
				var input = new (openfl_display_ShaderInput().default)();
				input.name = name;
				this.__inputBitmapData.push(input);
				(Reflect().default).setField(this.get_data(),name,input);
			} else {
				var parameterType;
				switch(type) {
				case "bool":
					parameterType = "bool";
					break;
				case "bvec2":
					parameterType = "bool2";
					break;
				case "bvec3":
					parameterType = "bool3";
					break;
				case "bvec4":
					parameterType = "bool4";
					break;
				case "dvec2":case "vec2":
					parameterType = "float2";
					break;
				case "dvec3":case "vec3":
					parameterType = "float3";
					break;
				case "double":case "float":
					parameterType = "float";
					break;
				case "ivec3":case "uvec3":
					parameterType = "int3";
					break;
				case "ivec4":case "uvec4":
					parameterType = "int4";
					break;
				case "mat2":case "mat2x2":
					parameterType = "matrix2x2";
					break;
				case "mat2x3":
					parameterType = "matrix2x3";
					break;
				case "mat2x4":
					parameterType = "matrix2x4";
					break;
				case "mat3x2":
					parameterType = "matrix3x2";
					break;
				case "mat3":case "mat3x3":
					parameterType = "matrix3x3";
					break;
				case "mat3x4":
					parameterType = "matrix3x4";
					break;
				case "mat4":case "mat4x4":
					parameterType = "matrix4x4";
					break;
				case "mat4x2":
					parameterType = "matrix4x2";
					break;
				case "mat4x3":
					parameterType = "matrix4x3";
					break;
				case "int":case "uint":
					parameterType = "int";
					break;
				case "ivec2":case "uvec2":
					parameterType = "int2";
					break;
				case "dvec4":case "vec4":
					parameterType = "float4";
					break;
				default:
					parameterType = null;
				}
				switch(parameterType) {
				case "bool":case "bool2":case "bool3":case "bool4":
					var parameter = new (openfl_display_ShaderParameter().default)();
					parameter.name = name;
					parameter.type = parameterType;
					this.__paramBool.push(parameter);
					(Reflect().default).setField(this.get_data(),name,parameter);
					break;
				case "int":case "int2":case "int3":case "int4":
					var parameter1 = new (openfl_display_ShaderParameter().default)();
					parameter1.name = name;
					parameter1.type = parameterType;
					this.__paramInt.push(parameter1);
					(Reflect().default).setField(this.get_data(),name,parameter1);
					break;
				default:
					var parameter2 = new (openfl_display_ShaderParameter().default)();
					parameter2.name = name;
					parameter2.type = parameterType;
					this.__paramFloat.push(parameter2);
					(Reflect().default).setField(this.get_data(),name,parameter2);
				}
			}
			this.__isUniform.set(name,storageType == "uniform");
			position = regex.matchedPos();
			lastMatch = position.pos + position.len;
		}
	},
	__update: function() {
		if(this.glProgram != null) {
			this.__updateGL();
		}
	},
	__updateGL: function() {
		var textureCount = 0;
		var _g = 0;
		var _g1 = this.__inputBitmapData;
		while(_g < _g1.length) {
			var input = _g1[_g];
			++_g;
			if(input.input != null) {
				this.gl.activeTexture(this.gl.TEXTURE0 + textureCount);
				this.gl.bindTexture(this.gl.TEXTURE_2D,input.input.getTexture(this.gl));
				if(input.smoothing) {
					this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR);
					this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR);
				} else {
					this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.NEAREST);
					this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.NEAREST);
				}
			}
			++textureCount;
		}
		var value;
		var index;
		var _g2 = 0;
		var _g11 = this.__paramBool;
		while(_g2 < _g11.length) {
			var parameter = _g11[_g2];
			++_g2;
			value = parameter.value;
			index = parameter.index;
			if(value != null) {
				var _g21 = parameter.type;
				switch(_g21) {
				case "bool":
					this.gl.uniform1i(index,value[0] ? 1 : 0);
					break;
				case "bool2":
					this.gl.uniform2i(index,value[0] ? 1 : 0,value[1] ? 1 : 0);
					break;
				case "bool3":
					this.gl.uniform3i(index,value[0] ? 1 : 0,value[1] ? 1 : 0,value[2] ? 1 : 0);
					break;
				case "bool4":
					this.gl.uniform4i(index,value[0] ? 1 : 0,value[1] ? 1 : 0,value[2] ? 1 : 0,value[3] ? 1 : 0);
					break;
				default:
				}
			} else if(!this.__isUniform.get(parameter.name)) {
				this.gl.enableVertexAttribArray(parameter.index);
			}
		}
		var value1;
		var index1;
		var _g3 = 0;
		var _g12 = this.__paramFloat;
		while(_g3 < _g12.length) {
			var parameter1 = _g12[_g3];
			++_g3;
			value1 = parameter1.value;
			index1 = parameter1.index;
			if(value1 != null) {
				var _g22 = parameter1.type;
				switch(_g22) {
				case "float":
					this.gl.uniform1f(index1,value1[0]);
					break;
				case "float2":
					this.gl.uniform2f(index1,value1[0],value1[1]);
					break;
				case "float3":
					this.gl.uniform3f(index1,value1[0],value1[1],value1[2]);
					break;
				case "float4":
					this.gl.uniform4f(index1,value1[0],value1[1],value1[2],value1[3]);
					break;
				case "matrix2x2":
					var _g23 = 0;
					while(_g23 < 4) {
						var i = _g23++;
						this.__uniformMatrix2[i] = value1[i];
					}
					this.gl.uniformMatrix2fv(index1,1,false,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(this.__uniformMatrix2));
					break;
				case "matrix3x3":
					var _g24 = 0;
					while(_g24 < 9) {
						var i1 = _g24++;
						this.__uniformMatrix3[i1] = value1[i1];
					}
					this.gl.uniformMatrix3fv(index1,1,false,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(this.__uniformMatrix3));
					break;
				case "matrix4x4":
					var _g25 = 0;
					while(_g25 < 16) {
						var i2 = _g25++;
						this.__uniformMatrix4[i2] = value1[i2];
					}
					this.gl.uniformMatrix4fv(index1,1,false,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(this.__uniformMatrix4));
					break;
				default:
				}
			} else if(!this.__isUniform.get(parameter1.name)) {
				this.gl.enableVertexAttribArray(parameter1.index);
				var _g26 = parameter1.type;
				switch(_g26) {
				case "matrix2x2":
					this.gl.enableVertexAttribArray(parameter1.index + 1);
					break;
				case "matrix3x3":
					this.gl.enableVertexAttribArray(parameter1.index + 1);
					this.gl.enableVertexAttribArray(parameter1.index + 2);
					break;
				case "matrix4x4":
					this.gl.enableVertexAttribArray(parameter1.index + 1);
					this.gl.enableVertexAttribArray(parameter1.index + 2);
					this.gl.enableVertexAttribArray(parameter1.index + 3);
					break;
				default:
				}
			}
		}
		var value2;
		var index2;
		var _g4 = 0;
		var _g13 = this.__paramInt;
		while(_g4 < _g13.length) {
			var parameter2 = _g13[_g4];
			++_g4;
			value2 = parameter2.value;
			index2 = parameter2.index;
			if(value2 != null) {
				var _g27 = parameter2.type;
				switch(_g27) {
				case "int":
					this.gl.uniform1i(index2,value2[0]);
					break;
				case "int2":
					this.gl.uniform2i(index2,value2[0],value2[1]);
					break;
				case "int3":
					this.gl.uniform3i(index2,value2[0],value2[1],value2[2]);
					break;
				case "int4":
					this.gl.uniform4i(index2,value2[0],value2[1],value2[2],value2[3]);
					break;
				default:
				}
			} else if(!this.__isUniform.get(parameter2.name)) {
				this.gl.enableVertexAttribArray(parameter2.index);
			}
		}
	},
	get_data: function() {
		if(this.__glSourceDirty || this.__data == null) {
			this.__init();
		}
		return this.__data;
	},
	set_data: function(value) {
		return this.__data = value;
	},
	get_glFragmentSource: function() {
		return this.__glFragmentSource;
	},
	set_glFragmentSource: function(value) {
		if(value != this.__glFragmentSource) {
			this.__glSourceDirty = true;
		}
		return this.__glFragmentSource = value;
	},
	get_glVertexSource: function() {
		return this.__glVertexSource;
	},
	set_glVertexSource: function(value) {
		if(value != this.__glVertexSource) {
			this.__glSourceDirty = true;
		}
		return this.__glVertexSource = value;
	}
};
Shader.prototype.__class__ = $hxClasses["openfl.display.Shader"] = Shader;
// Init
Object.defineProperties(Shader.prototype,{ "data" : { get : function () { return this.get_data (); }, set : function (v) { return this.set_data (v); }}, "glFragmentSource" : { get : function () { return this.get_glFragmentSource (); }, set : function (v) { return this.set_glFragmentSource (v); }}, "glVertexSource" : { get : function () { return this.get_glVertexSource (); }, set : function (v) { return this.set_glVertexSource (v); }}});
// Statics
// Export
exports.default = Shader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 123 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.IDataOutput
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IDataOutput = function() {}
// Meta
IDataOutput.__name__ = ["openfl","utils","IDataOutput"];
IDataOutput.prototype = {
	
};
IDataOutput.prototype.__class__ = $hxClasses["openfl.utils.IDataOutput"] = IDataOutput;
// Init
// Statics
// Export
exports.default = IDataOutput;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 124 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.errors.IOError
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_errors_Error() {return __webpack_require__(30);}
// Constructor
var IOError = function(message) {
	if(message == null) {
		message = "";
	}
	(openfl_errors_Error().default).call(this,message);
	this.name = "IOError";
}
// Meta
IOError.__name__ = ["openfl","errors","IOError"];
IOError.__super__ = (openfl_errors_Error().default);
IOError.prototype = $extend((openfl_errors_Error().default).prototype, {
	
});
IOError.prototype.__class__ = $hxClasses["openfl.errors.IOError"] = IOError;
// Init
// Statics
// Export
exports.default = IOError;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 125 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.net._HTTPRequest_Bytes
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function lime_net__$HTTPRequest_AbstractHTTPRequest() {return __webpack_require__(176);}
function lime_app_Promise() {return __webpack_require__(39);}
// Constructor
var _HTTPRequest_Bytes = function(uri) {
	(lime_net__$HTTPRequest_AbstractHTTPRequest().default).call(this,uri);
}
// Meta
_HTTPRequest_Bytes.__name__ = ["lime","net","_HTTPRequest_Bytes"];
_HTTPRequest_Bytes.__super__ = (lime_net__$HTTPRequest_AbstractHTTPRequest().default);
_HTTPRequest_Bytes.prototype = $extend((lime_net__$HTTPRequest_AbstractHTTPRequest().default).prototype, {
	fromBytes: function(bytes) {
		return bytes;
	},
	load: function(uri) {
		var _gthis = this;
		if(uri != null) {
			this.uri = uri;
		}
		var promise = new (lime_app_Promise().default)();
		var future = this.backend.loadData(this.uri);
		future.onProgress($bind(promise,promise.progress));
		future.onError($bind(promise,promise.error));
		future.onComplete(function(bytes) {
			_gthis.responseData = _gthis.fromBytes(bytes);
			promise.complete(_gthis.responseData);
		});
		return promise.future;
	}
});
_HTTPRequest_Bytes.prototype.__class__ = $hxClasses["lime.net._HTTPRequest_Bytes"] = _HTTPRequest_Bytes;
// Init
// Statics
// Export
exports.default = _HTTPRequest_Bytes;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 126 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLBitmap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl__$internal_renderer_opengl_GLMaskManager() {return __webpack_require__(59);}
// Constructor
var GLBitmap = function(){}
// Meta
GLBitmap.__name__ = ["openfl","_internal","renderer","opengl","GLBitmap"];
GLBitmap.prototype = {
	
};
GLBitmap.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLBitmap"] = GLBitmap;
// Init
// Statics
GLBitmap.render = function(bitmap,renderSession) {
	if(!bitmap.__renderable || bitmap.__worldAlpha <= 0) {
		return;
	}
	if(bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid) {
		var renderer = renderSession.renderer;
		var gl = renderSession.gl;
		renderSession.blendModeManager.setBlendMode(bitmap.__worldBlendMode);
		renderSession.maskManager.pushObject(bitmap);
		renderSession.filterManager.pushObject(bitmap);
		var shader = renderSession.shaderManager.initShader(bitmap.shader);
		renderSession.shaderManager.setShader(shader);
		shader.get_data().uImage0.input = bitmap.__bitmapData;
		var tmp = renderSession.allowSmoothing && (bitmap.smoothing || renderSession.upscaled);
		shader.get_data().uImage0.smoothing = tmp;
		shader.get_data().uMatrix.value = renderer.getMatrix(bitmap.__renderTransform);
		var useColorTransform = !bitmap.__worldColorTransform.__isDefault();
		if(shader.get_data().uColorTransform.value == null) {
			shader.get_data().uColorTransform.value = [];
		}
		shader.get_data().uColorTransform.value[0] = useColorTransform;
		renderSession.shaderManager.updateShader(shader);
		gl.bindBuffer(gl.ARRAY_BUFFER,bitmap.__bitmapData.getBuffer(gl,bitmap.__worldAlpha,bitmap.__worldColorTransform));
		gl.vertexAttribPointer(shader.get_data().aPosition.index,3,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
		gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
		gl.vertexAttribPointer(shader.get_data().aAlpha.index,1,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(20));
		gl.vertexAttribPointer(shader.get_data().aColorMultipliers0.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(24));
		gl.vertexAttribPointer(shader.get_data().aColorMultipliers1.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(40));
		gl.vertexAttribPointer(shader.get_data().aColorMultipliers2.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(56));
		gl.vertexAttribPointer(shader.get_data().aColorMultipliers3.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(72));
		gl.vertexAttribPointer(shader.get_data().aColorOffsets.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(88));
		gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
		renderSession.filterManager.popObject(bitmap);
		renderSession.maskManager.popObject(bitmap);
	}
}
GLBitmap.renderMask = function(bitmap,renderSession) {
	if(bitmap.__bitmapData != null && bitmap.__bitmapData.__isValid) {
		var renderer = renderSession.renderer;
		var gl = renderSession.gl;
		var shader = (openfl__$internal_renderer_opengl_GLMaskManager().default).maskShader;
		renderSession.shaderManager.setShader(shader);
		shader.get_data().uImage0.input = bitmap.__bitmapData;
		var tmp = renderSession.allowSmoothing && (bitmap.smoothing || renderSession.upscaled);
		shader.get_data().uImage0.smoothing = tmp;
		shader.get_data().uMatrix.value = renderer.getMatrix(bitmap.__renderTransform);
		renderSession.shaderManager.updateShader(shader);
		gl.bindBuffer(gl.ARRAY_BUFFER,bitmap.__bitmapData.getBuffer(gl,bitmap.__worldAlpha,bitmap.__worldColorTransform));
		gl.vertexAttribPointer(shader.get_data().aPosition.index,3,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
		gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
		gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
	}
}
// Export
exports.default = GLBitmap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 127 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.geom.Matrix3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_VectorData() {return __webpack_require__(90);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
function openfl_geom_Vector3D() {return __webpack_require__(128);}
// Constructor
var Matrix3D = function(v) {
	if(v != null && v.get_length() == 16) {
		this.rawData = v.concat(null);
	} else {
		this.rawData = (openfl_VectorData().default).ofArray([1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0]);
	}
}
// Meta
Matrix3D.__name__ = ["openfl","geom","Matrix3D"];
Matrix3D.prototype = {
	append: function(lhs) {
		var m111 = this.rawData.get(0);
		var m121 = this.rawData.get(4);
		var m131 = this.rawData.get(8);
		var m141 = this.rawData.get(12);
		var m112 = this.rawData.get(1);
		var m122 = this.rawData.get(5);
		var m132 = this.rawData.get(9);
		var m142 = this.rawData.get(13);
		var m113 = this.rawData.get(2);
		var m123 = this.rawData.get(6);
		var m133 = this.rawData.get(10);
		var m143 = this.rawData.get(14);
		var m114 = this.rawData.get(3);
		var m124 = this.rawData.get(7);
		var m134 = this.rawData.get(11);
		var m144 = this.rawData.get(15);
		var m211 = lhs.rawData.get(0);
		var m221 = lhs.rawData.get(4);
		var m231 = lhs.rawData.get(8);
		var m241 = lhs.rawData.get(12);
		var m212 = lhs.rawData.get(1);
		var m222 = lhs.rawData.get(5);
		var m232 = lhs.rawData.get(9);
		var m242 = lhs.rawData.get(13);
		var m213 = lhs.rawData.get(2);
		var m223 = lhs.rawData.get(6);
		var m233 = lhs.rawData.get(10);
		var m243 = lhs.rawData.get(14);
		var m214 = lhs.rawData.get(3);
		var m224 = lhs.rawData.get(7);
		var m234 = lhs.rawData.get(11);
		var m244 = lhs.rawData.get(15);
		this.rawData.set(0,m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241);
		this.rawData.set(1,m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242);
		this.rawData.set(2,m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243);
		this.rawData.set(3,m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244);
		this.rawData.set(4,m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241);
		this.rawData.set(5,m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242);
		this.rawData.set(6,m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243);
		this.rawData.set(7,m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244);
		this.rawData.set(8,m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241);
		this.rawData.set(9,m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242);
		this.rawData.set(10,m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243);
		this.rawData.set(11,m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244);
		this.rawData.set(12,m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241);
		this.rawData.set(13,m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242);
		this.rawData.set(14,m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243);
		this.rawData.set(15,m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244);
	},
	appendRotation: function(degrees,axis,pivotPoint) {
		var tx;
		var ty;
		var tz = 0;
		ty = tz;
		tx = ty;
		if(pivotPoint != null) {
			tx = pivotPoint.x;
			ty = pivotPoint.y;
			tz = pivotPoint.z;
		}
		var radian = degrees * Math.PI / 180;
		var cos = Math.cos(radian);
		var sin = Math.sin(radian);
		var x = axis.x;
		var y = axis.y;
		var z = axis.z;
		var x2 = x * x;
		var y2 = y * y;
		var z2 = z * z;
		var ls = x2 + y2 + z2;
		if(ls != 0) {
			var l = Math.sqrt(ls);
			x /= l;
			y /= l;
			z /= l;
			x2 /= ls;
			y2 /= ls;
			z2 /= ls;
		}
		var ccos = 1 - cos;
		var m = new Matrix3D();
		var d = m.rawData;
		d.set(0,x2 + (y2 + z2) * cos);
		d.set(1,x * y * ccos + z * sin);
		d.set(2,x * z * ccos - y * sin);
		d.set(4,x * y * ccos - z * sin);
		d.set(5,y2 + (x2 + z2) * cos);
		d.set(6,y * z * ccos + x * sin);
		d.set(8,x * z * ccos + y * sin);
		d.set(9,y * z * ccos - x * sin);
		d.set(10,z2 + (x2 + y2) * cos);
		d.set(12,(tx * (y2 + z2) - x * (ty * y + tz * z)) * ccos + (ty * z - tz * y) * sin);
		d.set(13,(ty * (x2 + z2) - y * (tx * x + tz * z)) * ccos + (tz * x - tx * z) * sin);
		d.set(14,(tz * (x2 + y2) - z * (tx * x + ty * y)) * ccos + (tx * y - ty * x) * sin);
		this.append(m);
	},
	appendScale: function(xScale,yScale,zScale) {
		this.append(new Matrix3D((openfl_VectorData().default).ofArray([xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0])));
	},
	appendTranslation: function(x,y,z) {
		var _g = this.rawData;
		_g.set(12,_g.get(12) + x);
		var _g1 = this.rawData;
		_g1.set(13,_g1.get(13) + y);
		var _g2 = this.rawData;
		_g2.set(14,_g2.get(14) + z);
	},
	clone: function() {
		return new Matrix3D(this.rawData.copy());
	},
	copyColumnFrom: function(column,vector3D) {
		switch(column) {
		case 0:
			this.rawData.set(0,vector3D.x);
			this.rawData.set(1,vector3D.y);
			this.rawData.set(2,vector3D.z);
			this.rawData.set(3,vector3D.w);
			break;
		case 1:
			this.rawData.set(4,vector3D.x);
			this.rawData.set(5,vector3D.y);
			this.rawData.set(6,vector3D.z);
			this.rawData.set(7,vector3D.w);
			break;
		case 2:
			this.rawData.set(8,vector3D.x);
			this.rawData.set(9,vector3D.y);
			this.rawData.set(10,vector3D.z);
			this.rawData.set(11,vector3D.w);
			break;
		case 3:
			this.rawData.set(12,vector3D.x);
			this.rawData.set(13,vector3D.y);
			this.rawData.set(14,vector3D.z);
			this.rawData.set(15,vector3D.w);
			break;
		default:
		}
	},
	copyColumnTo: function(column,vector3D) {
		switch(column) {
		case 0:
			vector3D.x = this.rawData.get(0);
			vector3D.y = this.rawData.get(1);
			vector3D.z = this.rawData.get(2);
			vector3D.w = this.rawData.get(3);
			break;
		case 1:
			vector3D.x = this.rawData.get(4);
			vector3D.y = this.rawData.get(5);
			vector3D.z = this.rawData.get(6);
			vector3D.w = this.rawData.get(7);
			break;
		case 2:
			vector3D.x = this.rawData.get(8);
			vector3D.y = this.rawData.get(9);
			vector3D.z = this.rawData.get(10);
			vector3D.w = this.rawData.get(11);
			break;
		case 3:
			vector3D.x = this.rawData.get(12);
			vector3D.y = this.rawData.get(13);
			vector3D.z = this.rawData.get(14);
			vector3D.w = this.rawData.get(15);
			break;
		default:
		}
	},
	copyFrom: function(other) {
		this.rawData = other.rawData.copy();
	},
	copyRawDataFrom: function(vector,index,transpose) {
		if(transpose == null) {
			transpose = false;
		}
		if(index == null) {
			index = 0;
		}
		if(transpose) {
			this.transpose();
		}
		var length = vector.get_length() - index;
		var _g1 = 0;
		var _g = length;
		while(_g1 < _g) {
			var i = _g1++;
			this.rawData.set(i,vector.get(i + index));
		}
		if(transpose) {
			this.transpose();
		}
	},
	copyRawDataTo: function(vector,index,transpose) {
		if(transpose == null) {
			transpose = false;
		}
		if(index == null) {
			index = 0;
		}
		if(transpose) {
			this.transpose();
		}
		var _g1 = 0;
		var _g = this.rawData.get_length();
		while(_g1 < _g) {
			var i = _g1++;
			vector.set(i + index,this.rawData.get(i));
		}
		if(transpose) {
			this.transpose();
		}
	},
	copyRowFrom: function(row,vector3D) {
		switch(row) {
		case 0:
			this.rawData.set(0,vector3D.x);
			this.rawData.set(4,vector3D.y);
			this.rawData.set(8,vector3D.z);
			this.rawData.set(12,vector3D.w);
			break;
		case 1:
			this.rawData.set(1,vector3D.x);
			this.rawData.set(5,vector3D.y);
			this.rawData.set(9,vector3D.z);
			this.rawData.set(13,vector3D.w);
			break;
		case 2:
			this.rawData.set(2,vector3D.x);
			this.rawData.set(6,vector3D.y);
			this.rawData.set(10,vector3D.z);
			this.rawData.set(14,vector3D.w);
			break;
		case 3:
			this.rawData.set(3,vector3D.x);
			this.rawData.set(7,vector3D.y);
			this.rawData.set(11,vector3D.z);
			this.rawData.set(15,vector3D.w);
			break;
		default:
		}
	},
	copyRowTo: function(row,vector3D) {
		switch(row) {
		case 0:
			vector3D.x = this.rawData.get(0);
			vector3D.y = this.rawData.get(4);
			vector3D.z = this.rawData.get(8);
			vector3D.w = this.rawData.get(12);
			break;
		case 1:
			vector3D.x = this.rawData.get(1);
			vector3D.y = this.rawData.get(5);
			vector3D.z = this.rawData.get(9);
			vector3D.w = this.rawData.get(13);
			break;
		case 2:
			vector3D.x = this.rawData.get(2);
			vector3D.y = this.rawData.get(6);
			vector3D.z = this.rawData.get(10);
			vector3D.w = this.rawData.get(14);
			break;
		case 3:
			vector3D.x = this.rawData.get(3);
			vector3D.y = this.rawData.get(7);
			vector3D.z = this.rawData.get(11);
			vector3D.w = this.rawData.get(15);
			break;
		default:
		}
	},
	copyToMatrix3D: function(other) {
		other.rawData = this.rawData.copy();
	},
	decompose: function(orientationStyle) {
		if(orientationStyle == null) {
			orientationStyle = "eulerAngles";
		}
		var vec = (openfl__$Vector_Vector_$Impl_$().default)._new();
		var m = this.clone();
		var mr = m.rawData.copy();
		var pos = new (openfl_geom_Vector3D().default)(mr.get(12),mr.get(13),mr.get(14));
		mr.set(12,0);
		mr.set(13,0);
		mr.set(14,0);
		var scale = new (openfl_geom_Vector3D().default)();
		scale.x = Math.sqrt(mr.get(0) * mr.get(0) + mr.get(1) * mr.get(1) + mr.get(2) * mr.get(2));
		scale.y = Math.sqrt(mr.get(4) * mr.get(4) + mr.get(5) * mr.get(5) + mr.get(6) * mr.get(6));
		scale.z = Math.sqrt(mr.get(8) * mr.get(8) + mr.get(9) * mr.get(9) + mr.get(10) * mr.get(10));
		if(mr.get(0) * (mr.get(5) * mr.get(10) - mr.get(6) * mr.get(9)) - mr.get(1) * (mr.get(4) * mr.get(10) - mr.get(6) * mr.get(8)) + mr.get(2) * (mr.get(4) * mr.get(9) - mr.get(5) * mr.get(8)) < 0) {
			scale.z = -scale.z;
		}
		var _g = mr;
		_g.set(0,_g.get(0) / scale.x);
		var _g1 = mr;
		_g1.set(1,_g1.get(1) / scale.x);
		var _g2 = mr;
		_g2.set(2,_g2.get(2) / scale.x);
		var _g3 = mr;
		_g3.set(4,_g3.get(4) / scale.y);
		var _g4 = mr;
		_g4.set(5,_g4.get(5) / scale.y);
		var _g5 = mr;
		_g5.set(6,_g5.get(6) / scale.y);
		var _g6 = mr;
		_g6.set(8,_g6.get(8) / scale.z);
		var _g7 = mr;
		_g7.set(9,_g7.get(9) / scale.z);
		var _g8 = mr;
		_g8.set(10,_g8.get(10) / scale.z);
		var rot = new (openfl_geom_Vector3D().default)();
		switch(orientationStyle) {
		case "axisAngle":
			rot.w = Math.acos((mr.get(0) + mr.get(5) + mr.get(10) - 1) / 2);
			var len = Math.sqrt((mr.get(6) - mr.get(9)) * (mr.get(6) - mr.get(9)) + (mr.get(8) - mr.get(2)) * (mr.get(8) - mr.get(2)) + (mr.get(1) - mr.get(4)) * (mr.get(1) - mr.get(4)));
			if(len != 0) {
				rot.x = (mr.get(6) - mr.get(9)) / len;
				rot.y = (mr.get(8) - mr.get(2)) / len;
				rot.z = (mr.get(1) - mr.get(4)) / len;
			} else {
				rot.x = rot.y = rot.z = 0;
			}
			break;
		case "eulerAngles":
			rot.y = Math.asin(-mr.get(2));
			if(mr.get(2) != 1 && mr.get(2) != -1) {
				rot.x = Math.atan2(mr.get(6),mr.get(10));
				rot.z = Math.atan2(mr.get(1),mr.get(0));
			} else {
				rot.z = 0;
				rot.x = Math.atan2(mr.get(4),mr.get(5));
			}
			break;
		case "quaternion":
			var tr = mr.get(0) + mr.get(5) + mr.get(10);
			if(tr > 0) {
				rot.w = Math.sqrt(1 + tr) / 2;
				rot.x = (mr.get(6) - mr.get(9)) / (4 * rot.w);
				rot.y = (mr.get(8) - mr.get(2)) / (4 * rot.w);
				rot.z = (mr.get(1) - mr.get(4)) / (4 * rot.w);
			} else if(mr.get(0) > mr.get(5) && mr.get(0) > mr.get(10)) {
				rot.x = Math.sqrt(1 + mr.get(0) - mr.get(5) - mr.get(10)) / 2;
				rot.w = (mr.get(6) - mr.get(9)) / (4 * rot.x);
				rot.y = (mr.get(1) + mr.get(4)) / (4 * rot.x);
				rot.z = (mr.get(8) + mr.get(2)) / (4 * rot.x);
			} else if(mr.get(5) > mr.get(10)) {
				rot.y = Math.sqrt(1 + mr.get(5) - mr.get(0) - mr.get(10)) / 2;
				rot.x = (mr.get(1) + mr.get(4)) / (4 * rot.y);
				rot.w = (mr.get(8) - mr.get(2)) / (4 * rot.y);
				rot.z = (mr.get(6) + mr.get(9)) / (4 * rot.y);
			} else {
				rot.z = Math.sqrt(1 + mr.get(10) - mr.get(0) - mr.get(5)) / 2;
				rot.x = (mr.get(8) + mr.get(2)) / (4 * rot.z);
				rot.y = (mr.get(6) + mr.get(9)) / (4 * rot.z);
				rot.w = (mr.get(1) - mr.get(4)) / (4 * rot.z);
			}
			break;
		}
		vec.push(pos);
		vec.push(rot);
		vec.push(scale);
		return vec;
	},
	deltaTransformVector: function(v) {
		var x = v.x;
		var y = v.y;
		var z = v.z;
		return new (openfl_geom_Vector3D().default)(x * this.rawData.get(0) + y * this.rawData.get(4) + z * this.rawData.get(8) + this.rawData.get(3),x * this.rawData.get(1) + y * this.rawData.get(5) + z * this.rawData.get(9) + this.rawData.get(7),x * this.rawData.get(2) + y * this.rawData.get(6) + z * this.rawData.get(10) + this.rawData.get(11),0);
	},
	identity: function() {
		this.rawData = (openfl_VectorData().default).ofArray([1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0]);
	},
	interpolateTo: function(toMat,percent) {
		var _g = 0;
		while(_g < 16) {
			var i = _g++;
			this.rawData.set(i,this.rawData.get(i) + (toMat.rawData.get(i) - this.rawData.get(i)) * percent);
		}
	},
	invert: function() {
		var d = this.get_determinant();
		var invertable = Math.abs(d) > 0.00000000001;
		if(invertable) {
			d = 1 / d;
			var m11 = this.rawData.get(0);
			var m21 = this.rawData.get(4);
			var m31 = this.rawData.get(8);
			var m41 = this.rawData.get(12);
			var m12 = this.rawData.get(1);
			var m22 = this.rawData.get(5);
			var m32 = this.rawData.get(9);
			var m42 = this.rawData.get(13);
			var m13 = this.rawData.get(2);
			var m23 = this.rawData.get(6);
			var m33 = this.rawData.get(10);
			var m43 = this.rawData.get(14);
			var m14 = this.rawData.get(3);
			var m24 = this.rawData.get(7);
			var m34 = this.rawData.get(11);
			var m44 = this.rawData.get(15);
			this.rawData.set(0,d * (m22 * (m33 * m44 - m43 * m34) - m32 * (m23 * m44 - m43 * m24) + m42 * (m23 * m34 - m33 * m24)));
			this.rawData.set(1,-d * (m12 * (m33 * m44 - m43 * m34) - m32 * (m13 * m44 - m43 * m14) + m42 * (m13 * m34 - m33 * m14)));
			this.rawData.set(2,d * (m12 * (m23 * m44 - m43 * m24) - m22 * (m13 * m44 - m43 * m14) + m42 * (m13 * m24 - m23 * m14)));
			this.rawData.set(3,-d * (m12 * (m23 * m34 - m33 * m24) - m22 * (m13 * m34 - m33 * m14) + m32 * (m13 * m24 - m23 * m14)));
			this.rawData.set(4,-d * (m21 * (m33 * m44 - m43 * m34) - m31 * (m23 * m44 - m43 * m24) + m41 * (m23 * m34 - m33 * m24)));
			this.rawData.set(5,d * (m11 * (m33 * m44 - m43 * m34) - m31 * (m13 * m44 - m43 * m14) + m41 * (m13 * m34 - m33 * m14)));
			this.rawData.set(6,-d * (m11 * (m23 * m44 - m43 * m24) - m21 * (m13 * m44 - m43 * m14) + m41 * (m13 * m24 - m23 * m14)));
			this.rawData.set(7,d * (m11 * (m23 * m34 - m33 * m24) - m21 * (m13 * m34 - m33 * m14) + m31 * (m13 * m24 - m23 * m14)));
			this.rawData.set(8,d * (m21 * (m32 * m44 - m42 * m34) - m31 * (m22 * m44 - m42 * m24) + m41 * (m22 * m34 - m32 * m24)));
			this.rawData.set(9,-d * (m11 * (m32 * m44 - m42 * m34) - m31 * (m12 * m44 - m42 * m14) + m41 * (m12 * m34 - m32 * m14)));
			this.rawData.set(10,d * (m11 * (m22 * m44 - m42 * m24) - m21 * (m12 * m44 - m42 * m14) + m41 * (m12 * m24 - m22 * m14)));
			this.rawData.set(11,-d * (m11 * (m22 * m34 - m32 * m24) - m21 * (m12 * m34 - m32 * m14) + m31 * (m12 * m24 - m22 * m14)));
			this.rawData.set(12,-d * (m21 * (m32 * m43 - m42 * m33) - m31 * (m22 * m43 - m42 * m23) + m41 * (m22 * m33 - m32 * m23)));
			this.rawData.set(13,d * (m11 * (m32 * m43 - m42 * m33) - m31 * (m12 * m43 - m42 * m13) + m41 * (m12 * m33 - m32 * m13)));
			this.rawData.set(14,-d * (m11 * (m22 * m43 - m42 * m23) - m21 * (m12 * m43 - m42 * m13) + m41 * (m12 * m23 - m22 * m13)));
			this.rawData.set(15,d * (m11 * (m22 * m33 - m32 * m23) - m21 * (m12 * m33 - m32 * m13) + m31 * (m12 * m23 - m22 * m13)));
		}
		return invertable;
	},
	pointAt: function(pos,at,up) {
		if(at == null) {
			at = new (openfl_geom_Vector3D().default)(0,0,-1);
		}
		if(up == null) {
			up = new (openfl_geom_Vector3D().default)(0,-1,0);
		}
		var dir = at.subtract(pos);
		var vup = up.clone();
		var right;
		dir.normalize();
		vup.normalize();
		var dir2 = dir.clone();
		dir2.scaleBy(vup.dotProduct(dir));
		vup = vup.subtract(dir2);
		if(vup.get_length() > 0) {
			vup.normalize();
		} else if(dir.x != 0) {
			vup = new (openfl_geom_Vector3D().default)(-dir.y,dir.x,0);
		} else {
			vup = new (openfl_geom_Vector3D().default)(1,0,0);
		}
		right = vup.crossProduct(dir);
		right.normalize();
		this.rawData.set(0,right.x);
		this.rawData.set(4,right.y);
		this.rawData.set(8,right.z);
		this.rawData.set(12,0.0);
		this.rawData.set(1,vup.x);
		this.rawData.set(5,vup.y);
		this.rawData.set(9,vup.z);
		this.rawData.set(13,0.0);
		this.rawData.set(2,dir.x);
		this.rawData.set(6,dir.y);
		this.rawData.set(10,dir.z);
		this.rawData.set(14,0.0);
		this.rawData.set(3,pos.x);
		this.rawData.set(7,pos.y);
		this.rawData.set(11,pos.z);
		this.rawData.set(15,1.0);
	},
	prepend: function(rhs) {
		var m111 = rhs.rawData.get(0);
		var m121 = rhs.rawData.get(4);
		var m131 = rhs.rawData.get(8);
		var m141 = rhs.rawData.get(12);
		var m112 = rhs.rawData.get(1);
		var m122 = rhs.rawData.get(5);
		var m132 = rhs.rawData.get(9);
		var m142 = rhs.rawData.get(13);
		var m113 = rhs.rawData.get(2);
		var m123 = rhs.rawData.get(6);
		var m133 = rhs.rawData.get(10);
		var m143 = rhs.rawData.get(14);
		var m114 = rhs.rawData.get(3);
		var m124 = rhs.rawData.get(7);
		var m134 = rhs.rawData.get(11);
		var m144 = rhs.rawData.get(15);
		var m211 = this.rawData.get(0);
		var m221 = this.rawData.get(4);
		var m231 = this.rawData.get(8);
		var m241 = this.rawData.get(12);
		var m212 = this.rawData.get(1);
		var m222 = this.rawData.get(5);
		var m232 = this.rawData.get(9);
		var m242 = this.rawData.get(13);
		var m213 = this.rawData.get(2);
		var m223 = this.rawData.get(6);
		var m233 = this.rawData.get(10);
		var m243 = this.rawData.get(14);
		var m214 = this.rawData.get(3);
		var m224 = this.rawData.get(7);
		var m234 = this.rawData.get(11);
		var m244 = this.rawData.get(15);
		this.rawData.set(0,m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241);
		this.rawData.set(1,m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242);
		this.rawData.set(2,m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243);
		this.rawData.set(3,m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244);
		this.rawData.set(4,m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241);
		this.rawData.set(5,m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242);
		this.rawData.set(6,m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243);
		this.rawData.set(7,m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244);
		this.rawData.set(8,m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241);
		this.rawData.set(9,m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242);
		this.rawData.set(10,m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243);
		this.rawData.set(11,m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244);
		this.rawData.set(12,m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241);
		this.rawData.set(13,m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242);
		this.rawData.set(14,m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243);
		this.rawData.set(15,m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244);
	},
	prependRotation: function(degrees,axis,pivotPoint) {
		var tx;
		var ty;
		var tz = 0;
		ty = tz;
		tx = ty;
		if(pivotPoint != null) {
			tx = pivotPoint.x;
			ty = pivotPoint.y;
			tz = pivotPoint.z;
		}
		var radian = degrees * Math.PI / 180;
		var cos = Math.cos(radian);
		var sin = Math.sin(radian);
		var x = axis.x;
		var y = axis.y;
		var z = axis.z;
		var x2 = x * x;
		var y2 = y * y;
		var z2 = z * z;
		var ls = x2 + y2 + z2;
		if(ls != 0) {
			var l = Math.sqrt(ls);
			x /= l;
			y /= l;
			z /= l;
			x2 /= ls;
			y2 /= ls;
			z2 /= ls;
		}
		var ccos = 1 - cos;
		var m = new Matrix3D();
		var d = m.rawData;
		d.set(0,x2 + (y2 + z2) * cos);
		d.set(1,x * y * ccos + z * sin);
		d.set(2,x * z * ccos - y * sin);
		d.set(4,x * y * ccos - z * sin);
		d.set(5,y2 + (x2 + z2) * cos);
		d.set(6,y * z * ccos + x * sin);
		d.set(8,x * z * ccos + y * sin);
		d.set(9,y * z * ccos - x * sin);
		d.set(10,z2 + (x2 + y2) * cos);
		d.set(12,(tx * (y2 + z2) - x * (ty * y + tz * z)) * ccos + (ty * z - tz * y) * sin);
		d.set(13,(ty * (x2 + z2) - y * (tx * x + tz * z)) * ccos + (tz * x - tx * z) * sin);
		d.set(14,(tz * (x2 + y2) - z * (tx * x + ty * y)) * ccos + (tx * y - ty * x) * sin);
		this.prepend(m);
	},
	prependScale: function(xScale,yScale,zScale) {
		this.prepend(new Matrix3D((openfl_VectorData().default).ofArray([xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0])));
	},
	prependTranslation: function(x,y,z) {
		var m = new Matrix3D();
		m.set_position(new (openfl_geom_Vector3D().default)(x,y,z));
		this.prepend(m);
	},
	recompose: function(components,orientationStyle) {
		if(components.get_length() < 3 || components.get(2).x == 0 || components.get(2).y == 0 || components.get(2).z == 0) {
			return false;
		}
		if(orientationStyle == null) {
			orientationStyle = "eulerAngles";
		}
		this.identity();
		var scale = [];
		scale[0] = scale[1] = scale[2] = components.get(2).x;
		scale[4] = scale[5] = scale[6] = components.get(2).y;
		scale[8] = scale[9] = scale[10] = components.get(2).z;
		if(orientationStyle == null) {
			var x = components.get(1).x;
			var y = components.get(1).y;
			var z = components.get(1).z;
			var w = components.get(1).w;
			if(orientationStyle == "axisAngle") {
				x *= Math.sin(w / 2);
				y *= Math.sin(w / 2);
				z *= Math.sin(w / 2);
				w = Math.cos(w / 2);
			}
			this.rawData.set(0,(1 - 2 * y * y - 2 * z * z) * scale[0]);
			this.rawData.set(1,(2 * x * y + 2 * w * z) * scale[1]);
			this.rawData.set(2,(2 * x * z - 2 * w * y) * scale[2]);
			this.rawData.set(3,0);
			this.rawData.set(4,(2 * x * y - 2 * w * z) * scale[4]);
			this.rawData.set(5,(1 - 2 * x * x - 2 * z * z) * scale[5]);
			this.rawData.set(6,(2 * y * z + 2 * w * x) * scale[6]);
			this.rawData.set(7,0);
			this.rawData.set(8,(2 * x * z + 2 * w * y) * scale[8]);
			this.rawData.set(9,(2 * y * z - 2 * w * x) * scale[9]);
			this.rawData.set(10,(1 - 2 * x * x - 2 * y * y) * scale[10]);
			this.rawData.set(11,0);
			this.rawData.set(12,components.get(0).x);
			this.rawData.set(13,components.get(0).y);
			this.rawData.set(14,components.get(0).z);
			this.rawData.set(15,1);
		} else if(orientationStyle == "eulerAngles") {
			var cx = Math.cos(components.get(1).x);
			var cy = Math.cos(components.get(1).y);
			var cz = Math.cos(components.get(1).z);
			var sx = Math.sin(components.get(1).x);
			var sy = Math.sin(components.get(1).y);
			var sz = Math.sin(components.get(1).z);
			this.rawData.set(0,cy * cz * scale[0]);
			this.rawData.set(1,cy * sz * scale[1]);
			this.rawData.set(2,-sy * scale[2]);
			this.rawData.set(3,0);
			this.rawData.set(4,(sx * sy * cz - cx * sz) * scale[4]);
			this.rawData.set(5,(sx * sy * sz + cx * cz) * scale[5]);
			this.rawData.set(6,sx * cy * scale[6]);
			this.rawData.set(7,0);
			this.rawData.set(8,(cx * sy * cz + sx * sz) * scale[8]);
			this.rawData.set(9,(cx * sy * sz - sx * cz) * scale[9]);
			this.rawData.set(10,cx * cy * scale[10]);
			this.rawData.set(11,0);
			this.rawData.set(12,components.get(0).x);
			this.rawData.set(13,components.get(0).y);
			this.rawData.set(14,components.get(0).z);
			this.rawData.set(15,1);
		} else {
			var x1 = components.get(1).x;
			var y1 = components.get(1).y;
			var z1 = components.get(1).z;
			var w1 = components.get(1).w;
			if(orientationStyle == "axisAngle") {
				x1 *= Math.sin(w1 / 2);
				y1 *= Math.sin(w1 / 2);
				z1 *= Math.sin(w1 / 2);
				w1 = Math.cos(w1 / 2);
			}
			this.rawData.set(0,(1 - 2 * y1 * y1 - 2 * z1 * z1) * scale[0]);
			this.rawData.set(1,(2 * x1 * y1 + 2 * w1 * z1) * scale[1]);
			this.rawData.set(2,(2 * x1 * z1 - 2 * w1 * y1) * scale[2]);
			this.rawData.set(3,0);
			this.rawData.set(4,(2 * x1 * y1 - 2 * w1 * z1) * scale[4]);
			this.rawData.set(5,(1 - 2 * x1 * x1 - 2 * z1 * z1) * scale[5]);
			this.rawData.set(6,(2 * y1 * z1 + 2 * w1 * x1) * scale[6]);
			this.rawData.set(7,0);
			this.rawData.set(8,(2 * x1 * z1 + 2 * w1 * y1) * scale[8]);
			this.rawData.set(9,(2 * y1 * z1 - 2 * w1 * x1) * scale[9]);
			this.rawData.set(10,(1 - 2 * x1 * x1 - 2 * y1 * y1) * scale[10]);
			this.rawData.set(11,0);
			this.rawData.set(12,components.get(0).x);
			this.rawData.set(13,components.get(0).y);
			this.rawData.set(14,components.get(0).z);
			this.rawData.set(15,1);
		}
		if(components.get(2).x == 0) {
			this.rawData.set(0,1e-15);
		}
		if(components.get(2).y == 0) {
			this.rawData.set(5,1e-15);
		}
		if(components.get(2).z == 0) {
			this.rawData.set(10,1e-15);
		}
		return !(components.get(2).x == 0 || components.get(2).y == 0 || components.get(2).y == 0);
	},
	transformVector: function(v) {
		var x = v.x;
		var y = v.y;
		var z = v.z;
		return new (openfl_geom_Vector3D().default)(x * this.rawData.get(0) + y * this.rawData.get(4) + z * this.rawData.get(8) + this.rawData.get(12),x * this.rawData.get(1) + y * this.rawData.get(5) + z * this.rawData.get(9) + this.rawData.get(13),x * this.rawData.get(2) + y * this.rawData.get(6) + z * this.rawData.get(10) + this.rawData.get(14),x * this.rawData.get(3) + y * this.rawData.get(7) + z * this.rawData.get(11) + this.rawData.get(15));
	},
	transformVectors: function(vin,vout) {
		var i = 0;
		var x;
		var y;
		var z;
		while(i + 3 <= vin.get_length()) {
			x = vin.get(i);
			y = vin.get(i + 1);
			z = vin.get(i + 2);
			vout.set(i,x * this.rawData.get(0) + y * this.rawData.get(4) + z * this.rawData.get(8) + this.rawData.get(12));
			vout.set(i + 1,x * this.rawData.get(1) + y * this.rawData.get(5) + z * this.rawData.get(9) + this.rawData.get(13));
			vout.set(i + 2,x * this.rawData.get(2) + y * this.rawData.get(6) + z * this.rawData.get(10) + this.rawData.get(14));
			i += 3;
		}
	},
	transpose: function() {
		var oRawData = this.rawData.copy();
		this.rawData.set(1,oRawData.get(4));
		this.rawData.set(2,oRawData.get(8));
		this.rawData.set(3,oRawData.get(12));
		this.rawData.set(4,oRawData.get(1));
		this.rawData.set(6,oRawData.get(9));
		this.rawData.set(7,oRawData.get(13));
		this.rawData.set(8,oRawData.get(2));
		this.rawData.set(9,oRawData.get(6));
		this.rawData.set(11,oRawData.get(14));
		this.rawData.set(12,oRawData.get(3));
		this.rawData.set(13,oRawData.get(7));
		this.rawData.set(14,oRawData.get(11));
	},
	get_determinant: function() {
		return (this.rawData.get(0) * this.rawData.get(5) - this.rawData.get(4) * this.rawData.get(1)) * (this.rawData.get(10) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(11)) - (this.rawData.get(0) * this.rawData.get(9) - this.rawData.get(8) * this.rawData.get(1)) * (this.rawData.get(6) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(7)) + (this.rawData.get(0) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(1)) * (this.rawData.get(6) * this.rawData.get(11) - this.rawData.get(10) * this.rawData.get(7)) + (this.rawData.get(4) * this.rawData.get(9) - this.rawData.get(8) * this.rawData.get(5)) * (this.rawData.get(2) * this.rawData.get(15) - this.rawData.get(14) * this.rawData.get(3)) - (this.rawData.get(4) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(5)) * (this.rawData.get(2) * this.rawData.get(11) - this.rawData.get(10) * this.rawData.get(3)) + (this.rawData.get(8) * this.rawData.get(13) - this.rawData.get(12) * this.rawData.get(9)) * (this.rawData.get(2) * this.rawData.get(7) - this.rawData.get(6) * this.rawData.get(3));
	},
	get_position: function() {
		return new (openfl_geom_Vector3D().default)(this.rawData.get(12),this.rawData.get(13),this.rawData.get(14));
	},
	set_position: function(val) {
		this.rawData.set(12,val.x);
		this.rawData.set(13,val.y);
		this.rawData.set(14,val.z);
		return val;
	}
};
Matrix3D.prototype.__class__ = $hxClasses["openfl.geom.Matrix3D"] = Matrix3D;
// Init
Object.defineProperties(Matrix3D.prototype,{ "determinant" : { get : function () { return this.get_determinant (); }, set : function (v) { return this.set_determinant (v); }}, "position" : { get : function () { return this.get_position (); }, set : function (v) { return this.set_position (v); }}});
// Statics
Matrix3D.create2D = function(x,y,scale,rotation) {
	if(rotation == null) {
		rotation = 0;
	}
	if(scale == null) {
		scale = 1;
	}
	var theta = rotation * Math.PI / 180.0;
	var c = Math.cos(theta);
	var s = Math.sin(theta);
	return new Matrix3D((openfl_VectorData().default).ofArray([c * scale,-s * scale,0,0,s * scale,c * scale,0,0,0,0,1,0,x,y,0,1]));
}
Matrix3D.createABCD = function(a,b,c,d,tx,ty) {
	return new Matrix3D((openfl_VectorData().default).ofArray([a,b,0,0,c,d,0,0,0,0,1,0,tx,ty,0,1]));
}
Matrix3D.createOrtho = function(x0,x1,y0,y1,zNear,zFar) {
	var sx = 1.0 / (x1 - x0);
	var sy = 1.0 / (y1 - y0);
	var sz = 1.0 / (zFar - zNear);
	return new Matrix3D((openfl_VectorData().default).ofArray([2.0 * sx,0,0,0,0,2.0 * sy,0,0,0,0,-2.0 * sz,0,-(x0 + x1) * sx,-(y0 + y1) * sy,-(zNear + zFar) * sz,1]));
}
Matrix3D.interpolate = function(thisMat,toMat,percent) {
	var m = new Matrix3D();
	var _g = 0;
	while(_g < 16) {
		var i = _g++;
		m.rawData.set(i,thisMat.rawData.get(i) + (toMat.rawData.get(i) - thisMat.rawData.get(i)) * percent);
	}
	return m;
}
Matrix3D.__getAxisRotation = function(x,y,z,degrees) {
	var m = new Matrix3D();
	var a1 = new (openfl_geom_Vector3D().default)(x,y,z);
	var rad = -degrees * (Math.PI / 180);
	var c = Math.cos(rad);
	var s = Math.sin(rad);
	var t = 1.0 - c;
	m.rawData.set(0,c + a1.x * a1.x * t);
	m.rawData.set(5,c + a1.y * a1.y * t);
	m.rawData.set(10,c + a1.z * a1.z * t);
	var tmp1 = a1.x * a1.y * t;
	var tmp2 = a1.z * s;
	m.rawData.set(4,tmp1 + tmp2);
	m.rawData.set(1,tmp1 - tmp2);
	tmp1 = a1.x * a1.z * t;
	tmp2 = a1.y * s;
	m.rawData.set(8,tmp1 - tmp2);
	m.rawData.set(2,tmp1 + tmp2);
	tmp1 = a1.y * a1.z * t;
	tmp2 = a1.x * s;
	m.rawData.set(9,tmp1 + tmp2);
	m.rawData.set(6,tmp1 - tmp2);
	return m;
}
// Export
exports.default = Matrix3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 128 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.geom.Vector3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var Vector3D = function(x,y,z,w) {
	if(w == null) {
		w = 0;
	}
	if(z == null) {
		z = 0;
	}
	if(y == null) {
		y = 0;
	}
	if(x == null) {
		x = 0;
	}
	this.w = w;
	this.x = x;
	this.y = y;
	this.z = z;
}
// Meta
Vector3D.__name__ = ["openfl","geom","Vector3D"];
Vector3D.prototype = {
	add: function(a) {
		return new Vector3D(this.x + a.x,this.y + a.y,this.z + a.z);
	},
	clone: function() {
		return new Vector3D(this.x,this.y,this.z,this.w);
	},
	copyFrom: function(sourceVector3D) {
		this.x = sourceVector3D.x;
		this.y = sourceVector3D.y;
		this.z = sourceVector3D.z;
	},
	crossProduct: function(a) {
		return new Vector3D(this.y * a.z - this.z * a.y,this.z * a.x - this.x * a.z,this.x * a.y - this.y * a.x,1);
	},
	decrementBy: function(a) {
		this.x -= a.x;
		this.y -= a.y;
		this.z -= a.z;
	},
	dotProduct: function(a) {
		return this.x * a.x + this.y * a.y + this.z * a.z;
	},
	equals: function(toCompare,allFour) {
		if(allFour == null) {
			allFour = false;
		}
		if(this.x == toCompare.x && this.y == toCompare.y && this.z == toCompare.z) {
			if(!(!allFour)) {
				return this.w == toCompare.w;
			} else {
				return true;
			}
		} else {
			return false;
		}
	},
	incrementBy: function(a) {
		this.x += a.x;
		this.y += a.y;
		this.z += a.z;
	},
	nearEquals: function(toCompare,tolerance,allFour) {
		if(allFour == null) {
			allFour = false;
		}
		if(Math.abs(this.x - toCompare.x) < tolerance && Math.abs(this.y - toCompare.y) < tolerance && Math.abs(this.z - toCompare.z) < tolerance) {
			if(!(!allFour)) {
				return Math.abs(this.w - toCompare.w) < tolerance;
			} else {
				return true;
			}
		} else {
			return false;
		}
	},
	negate: function() {
		this.x *= -1;
		this.y *= -1;
		this.z *= -1;
	},
	normalize: function() {
		var l = this.get_length();
		if(l != 0) {
			this.x /= l;
			this.y /= l;
			this.z /= l;
		}
		return l;
	},
	project: function() {
		this.x /= this.w;
		this.y /= this.w;
		this.z /= this.w;
	},
	scaleBy: function(s) {
		this.x *= s;
		this.y *= s;
		this.z *= s;
	},
	setTo: function(xa,ya,za) {
		this.x = xa;
		this.y = ya;
		this.z = za;
	},
	subtract: function(a) {
		return new Vector3D(this.x - a.x,this.y - a.y,this.z - a.z);
	},
	toString: function() {
		return "Vector3D(" + this.x + ", " + this.y + ", " + this.z + ")";
	},
	get_length: function() {
		return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
	},
	get_lengthSquared: function() {
		return this.x * this.x + this.y * this.y + this.z * this.z;
	}
};
Vector3D.prototype.__class__ = $hxClasses["openfl.geom.Vector3D"] = Vector3D;
// Init
{
	Object.defineProperties(Vector3D,{ "X_AXIS" : { get : function() {
		return Vector3D.get_X_AXIS();
	}}, "Y_AXIS" : { get : function() {
		return Vector3D.get_Y_AXIS();
	}}, "Z_AXIS" : { get : function() {
		return Vector3D.get_Z_AXIS();
	}}});
	Object.defineProperties(Vector3D.prototype,{ "length" : { get : function () { return this.get_length (); }}, "lengthSquared" : { get : function () { return this.get_lengthSquared (); }}});
};
// Statics
Vector3D.angleBetween = function(a,b) {
	var la = a.get_length();
	var lb = b.get_length();
	var dot = a.dotProduct(b);
	if(la != 0) {
		dot /= la;
	}
	if(lb != 0) {
		dot /= lb;
	}
	return Math.acos(dot);
}
Vector3D.distance = function(pt1,pt2) {
	var x = pt2.x - pt1.x;
	var y = pt2.y - pt1.y;
	var z = pt2.z - pt1.z;
	return Math.sqrt(x * x + y * y + z * z);
}
Vector3D.get_X_AXIS = function() {
	return new Vector3D(1,0,0);
}
Vector3D.get_Y_AXIS = function() {
	return new Vector3D(0,1,0);
}
Vector3D.get_Z_AXIS = function() {
	return new Vector3D(0,0,1);
}
// Export
exports.default = Vector3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 129 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.errors.TypeError
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_errors_Error() {return __webpack_require__(30);}
// Constructor
var TypeError = function(message) {
	if(message == null) {
		message = "";
	}
	(openfl_errors_Error().default).call(this,message,0);
	this.name = "TypeError";
}
// Meta
TypeError.__name__ = ["openfl","errors","TypeError"];
TypeError.__super__ = (openfl_errors_Error().default);
TypeError.prototype = $extend((openfl_errors_Error().default).prototype, {
	
});
TypeError.prototype.__class__ = $hxClasses["openfl.errors.TypeError"] = TypeError;
// Init
// Statics
// Export
exports.default = TypeError;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 130 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.text.TextField
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_display_IShaderDrawable() {return __webpack_require__(66);}
function openfl_display_InteractiveObject() {return __webpack_require__(75);}
function lime_text__$UTF8String_UTF8String_$Impl_$() {return __webpack_require__(131);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl_text_TextLineMetrics() {return __webpack_require__(185);}
function js_Boot() {return __webpack_require__(20);}
function openfl__$internal_text_TextFormatRange() {return __webpack_require__(186);}
function Std() {return __webpack_require__(4);}
function StringTools() {return __webpack_require__(12);}
function openfl_events_TextEvent() {return __webpack_require__(77);}
function HxOverrides() {return __webpack_require__(7);}
function openfl_Lib() {return __webpack_require__(25);}
function openfl_net_URLRequest() {return __webpack_require__(196);}
function openfl_text_TextFormat() {return __webpack_require__(135);}
function openfl_text_Font() {return __webpack_require__(102);}
function EReg() {return __webpack_require__(27);}
function lime_utils_Log() {return __webpack_require__(23);}
function lime_ui_MouseCursor() {return __webpack_require__(76);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function openfl__$internal_text_HTMLParser() {return __webpack_require__(341);}
function openfl__$internal_renderer_canvas_CanvasTextField() {return __webpack_require__(342);}
function openfl__$internal_renderer_dom_DOMBitmap() {return __webpack_require__(95);}
function openfl__$internal_renderer_dom_DOMTextField() {return __webpack_require__(344);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function openfl_filters_GlowFilter() {return __webpack_require__(100);}
function openfl_events_Event() {return __webpack_require__(9);}
function lime_system_Clipboard() {return __webpack_require__(84);}
function lime_ui__$KeyModifier_KeyModifier_$Impl_$() {return __webpack_require__(200);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function openfl_display_Graphics() {return __webpack_require__(69);}
function openfl__$internal_text_TextEngine() {return __webpack_require__(138);}
// Constructor
var TextField = function() {
	this.__forceCachedBitmapUpdate = false;
	this.__renderedOnCanvasWhileOnDOM = false;
	(openfl_display_InteractiveObject().default).call(this);
	this.__caretIndex = -1;
	this.__displayAsPassword = false;
	this.__graphics = new (openfl_display_Graphics().default)(this);
	this.__textEngine = new (openfl__$internal_text_TextEngine().default)(this);
	this.__layoutDirty = true;
	this.__offsetX = 0;
	this.__offsetY = 0;
	this.__mouseWheelEnabled = true;
	this.__text = "";
	if(TextField.__defaultTextFormat == null) {
		TextField.__defaultTextFormat = new (openfl_text_TextFormat().default)("Times New Roman",12,0,false,false,false,"","","left",0,0,0,0);
		TextField.__defaultTextFormat.blockIndent = 0;
		TextField.__defaultTextFormat.bullet = false;
		TextField.__defaultTextFormat.letterSpacing = 0;
		TextField.__defaultTextFormat.kerning = false;
	}
	this.__textFormat = TextField.__defaultTextFormat.clone();
	this.__textEngine.textFormatRanges.push(new (openfl__$internal_text_TextFormatRange().default)(this.__textFormat,0,0));
	this.addEventListener("mouseDown",$bind(this,this.this_onMouseDown));
	this.addEventListener("focusIn",$bind(this,this.this_onFocusIn));
	this.addEventListener("focusOut",$bind(this,this.this_onFocusOut));
	this.addEventListener("keyDown",$bind(this,this.this_onKeyDown));
}
// Meta
TextField.__name__ = ["openfl","text","TextField"];
TextField.__interfaces__ = [(openfl_display_IShaderDrawable().default)];
TextField.__super__ = (openfl_display_InteractiveObject().default);
TextField.prototype = $extend((openfl_display_InteractiveObject().default).prototype, {
	appendText: function(text) {
		if(text == null || text == "") {
			return;
		}
		this.__dirty = true;
		this.__layoutDirty = true;
		this.__setRenderDirty();
		this.__updateText((lime_text__$UTF8String_UTF8String_$Impl_$().default).plus(this.__text,text));
		this.__textEngine.textFormatRanges.get(this.__textEngine.textFormatRanges.get_length() - 1).end = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		this.__updateScrollH();
	},
	getCharBoundaries: function(charIndex) {
		if(charIndex < 0 || charIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text) - 1) {
			return null;
		}
		var rect = new (openfl_geom_Rectangle().default)();
		if(this.__getCharBoundaries(charIndex,rect)) {
			return rect;
		} else {
			return null;
		}
	},
	getCharIndexAtPoint: function(x,y) {
		if(x <= 2 || x > this.get_width() + 4 || y <= 0 || y > this.get_height() + 4) {
			return -1;
		}
		this.__updateLayout();
		x += this.get_scrollH();
		var _g1 = 0;
		var _g = this.get_scrollV() - 1;
		while(_g1 < _g) {
			var i = _g1++;
			y += this.__textEngine.lineHeights.get(i);
		}
		var _g2 = 0;
		var _g11 = this.__textEngine.layoutGroups;
		while(_g2 < _g11.get_length()) {
			var group = _g11.get(_g2);
			++_g2;
			if(y >= group.offsetY && y <= group.offsetY + group.height) {
				if(x >= group.offsetX && x <= group.offsetX + group.width) {
					var advance = 0.0;
					var _g3 = 0;
					var _g21 = group.positions.length;
					while(_g3 < _g21) {
						var i1 = _g3++;
						advance += group.getAdvance(i1);
						if(x <= group.offsetX + advance) {
							return group.startIndex + i1;
						}
					}
					return group.endIndex;
				}
			}
		}
		return -1;
	},
	getFirstCharInParagraph: function(charIndex) {
		if(charIndex < 0 || charIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text) - 1) {
			return 0;
		}
		var index = this.__textEngine.getLineBreakIndex();
		var startIndex = 0;
		while(index > -1) {
			if(index <= charIndex) {
				startIndex = index + 1;
			} else if(index > charIndex) {
				break;
			}
			index = this.__textEngine.getLineBreakIndex(index + 1);
		}
		return startIndex;
	},
	getLineIndexAtPoint: function(x,y) {
		this.__updateLayout();
		if(x <= 2 || x > this.get_width() + 4 || y <= 0 || y > this.get_height() + 4) {
			return -1;
		}
		var _g1 = 0;
		var _g = this.get_scrollV() - 1;
		while(_g1 < _g) {
			var i = _g1++;
			y += this.__textEngine.lineHeights.get(i);
		}
		var _g2 = 0;
		var _g11 = this.__textEngine.layoutGroups;
		while(_g2 < _g11.get_length()) {
			var group = _g11.get(_g2);
			++_g2;
			if(y >= group.offsetY && y <= group.offsetY + group.height) {
				return group.lineIndex;
			}
		}
		return -1;
	},
	getLineIndexOfChar: function(charIndex) {
		if(charIndex < 0 || charIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text)) {
			return -1;
		}
		this.__updateLayout();
		var _g = 0;
		var _g1 = this.__textEngine.layoutGroups;
		while(_g < _g1.get_length()) {
			var group = _g1.get(_g);
			++_g;
			if(group.startIndex <= charIndex && group.endIndex >= charIndex) {
				return group.lineIndex;
			}
		}
		return -1;
	},
	getLineLength: function(lineIndex) {
		this.__updateLayout();
		if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
			return 0;
		}
		var startIndex = -1;
		var endIndex = -1;
		var _g = 0;
		var _g1 = this.__textEngine.layoutGroups;
		while(_g < _g1.get_length()) {
			var group = _g1.get(_g);
			++_g;
			if(group.lineIndex == lineIndex) {
				if(startIndex == -1) {
					startIndex = group.startIndex;
				}
			} else if(group.lineIndex == lineIndex + 1) {
				endIndex = group.startIndex;
				break;
			}
		}
		if(endIndex == -1) {
			endIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		return endIndex - startIndex;
	},
	getLineMetrics: function(lineIndex) {
		this.__updateLayout();
		var ascender = this.__textEngine.lineAscents.get(lineIndex);
		var descender = this.__textEngine.lineDescents.get(lineIndex);
		var leading = this.__textEngine.lineLeadings.get(lineIndex);
		var lineHeight = this.__textEngine.lineHeights.get(lineIndex);
		var lineWidth = this.__textEngine.lineWidths.get(lineIndex);
		var margin;
		var _g = this.__textFormat.align;
		switch(_g) {
		case "center":
			margin = (this.__textEngine.width - lineWidth) / 2;
			break;
		case "end":case "right":
			margin = this.__textEngine.width - lineWidth - 2;
			break;
		case "justify":case "left":case "start":
			margin = 2;
			break;
		}
		return new (openfl_text_TextLineMetrics().default)(margin,lineWidth,lineHeight,ascender,descender,leading);
	},
	getLineOffset: function(lineIndex) {
		this.__updateLayout();
		if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
			return -1;
		}
		var _g = 0;
		var _g1 = this.__textEngine.layoutGroups;
		while(_g < _g1.get_length()) {
			var group = _g1.get(_g);
			++_g;
			if(group.lineIndex == lineIndex) {
				return group.startIndex;
			}
		}
		return 0;
	},
	getLineText: function(lineIndex) {
		this.__updateLayout();
		if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
			return null;
		}
		var startIndex = -1;
		var endIndex = -1;
		var _g = 0;
		var _g1 = this.__textEngine.layoutGroups;
		while(_g < _g1.get_length()) {
			var group = _g1.get(_g);
			++_g;
			if(group.lineIndex == lineIndex) {
				if(startIndex == -1) {
					startIndex = group.startIndex;
				}
			} else if(group.lineIndex == lineIndex + 1) {
				endIndex = group.startIndex;
				break;
			}
		}
		if(endIndex == -1) {
			endIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		return (lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(this.__textEngine.text,startIndex,endIndex);
	},
	getParagraphLength: function(charIndex) {
		if(charIndex < 0 || charIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text) - 1) {
			return 0;
		}
		var startIndex = this.getFirstCharInParagraph(charIndex);
		var endIndex = this.__textEngine.getLineBreakIndex(charIndex) + 1;
		if(endIndex == 0) {
			endIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		return endIndex - startIndex;
	},
	getTextFormat: function(beginIndex,endIndex) {
		if(endIndex == null) {
			endIndex = 0;
		}
		if(beginIndex == null) {
			beginIndex = 0;
		}
		var format = null;
		var _g = 0;
		var _g1 = this.__textEngine.textFormatRanges;
		while(_g < _g1.get_length()) {
			var group = _g1.get(_g);
			++_g;
			if(group.start <= beginIndex && group.end >= beginIndex || group.start <= endIndex && group.end >= endIndex) {
				if(format == null) {
					format = group.format.clone();
				} else {
					if(group.format.font != format.font) {
						format.font = null;
					}
					if(group.format.size != format.size) {
						format.size = null;
					}
					if(group.format.color != format.color) {
						format.color = null;
					}
					if(group.format.bold != format.bold) {
						format.bold = null;
					}
					if(group.format.italic != format.italic) {
						format.italic = null;
					}
					if(group.format.underline != format.underline) {
						format.underline = null;
					}
					if(group.format.url != format.url) {
						format.url = null;
					}
					if(group.format.target != format.target) {
						format.target = null;
					}
					if(group.format.align != format.align) {
						format.align = null;
					}
					if(group.format.leftMargin != format.leftMargin) {
						format.leftMargin = null;
					}
					if(group.format.rightMargin != format.rightMargin) {
						format.rightMargin = null;
					}
					if(group.format.indent != format.indent) {
						format.indent = null;
					}
					if(group.format.leading != format.leading) {
						format.leading = null;
					}
					if(group.format.blockIndent != format.blockIndent) {
						format.blockIndent = null;
					}
					if(group.format.bullet != format.bullet) {
						format.bullet = null;
					}
					if(group.format.kerning != format.kerning) {
						format.kerning = null;
					}
					if(group.format.letterSpacing != format.letterSpacing) {
						format.letterSpacing = null;
					}
					if(group.format.tabStops != format.tabStops) {
						format.tabStops = null;
					}
				}
			}
		}
		return format;
	},
	replaceSelectedText: function(value) {
		if(value == "" && this.__selectionIndex == this.__caretIndex) {
			return;
		}
		var startIndex = this.__caretIndex < this.__selectionIndex ? this.__caretIndex : this.__selectionIndex;
		var endIndex = this.__caretIndex > this.__selectionIndex ? this.__caretIndex : this.__selectionIndex;
		if(startIndex == endIndex && this.__textEngine.maxChars > 0 && (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text) == this.__textEngine.maxChars) {
			return;
		}
		if(startIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text)) {
			startIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		if(endIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text)) {
			endIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		if(endIndex < startIndex) {
			var cache = endIndex;
			endIndex = startIndex;
			startIndex = cache;
		}
		if(startIndex < 0) {
			startIndex = 0;
		}
		this.replaceText(startIndex,endIndex,value);
		var i = startIndex + (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length((js_Boot().default).__cast(value , String));
		if(i > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text)) {
			i = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		this.setSelection(i,i);
		this.__updateScrollH();
	},
	replaceText: function(beginIndex,endIndex,newText) {
		if(endIndex < beginIndex || beginIndex < 0 || endIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text) || newText == null) {
			return;
		}
		this.__updateText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(this.__text,0,beginIndex) + newText + (lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(this.__text,endIndex));
		if(endIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text)) {
			endIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		var offset = newText.length - (endIndex - beginIndex);
		var i = 0;
		var range;
		while(i < this.__textEngine.textFormatRanges.get_length()) {
			range = this.__textEngine.textFormatRanges.get(i);
			if(range.start <= beginIndex && range.end >= endIndex) {
				range.end += offset;
				++i;
			} else if(range.start >= beginIndex && range.end <= endIndex) {
				if(i > 0) {
					this.__textEngine.textFormatRanges.splice(i,1);
				} else {
					range.start = 0;
					range.end = beginIndex + newText.length;
					++i;
				}
				offset -= range.end - range.start;
			} else if(range.start > beginIndex && range.start <= endIndex) {
				range.start += offset;
				++i;
			} else {
				++i;
			}
		}
		this.__updateScrollH();
		this.__dirty = true;
		this.__layoutDirty = true;
		this.__setRenderDirty();
	},
	setSelection: function(beginIndex,endIndex) {
		this.__selectionIndex = beginIndex;
		this.__caretIndex = endIndex;
		this.__stopCursorTimer();
		this.__startCursorTimer();
	},
	setTextFormat: function(format,beginIndex,endIndex) {
		if(endIndex == null) {
			endIndex = 0;
		}
		if(beginIndex == null) {
			beginIndex = 0;
		}
		var max = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.get_text());
		var range;
		if(beginIndex < 0) {
			beginIndex = 0;
		}
		if(endIndex < 0) {
			endIndex = 0;
		}
		if(endIndex == 0) {
			if(beginIndex == 0) {
				endIndex = max;
			} else {
				endIndex = beginIndex + 1;
			}
		}
		if(endIndex < beginIndex) {
			return;
		}
		if(beginIndex == 0 && endIndex >= max) {
			this.__textFormat.__merge(format);
			var _g1 = 0;
			var _g = this.__textEngine.textFormatRanges.get_length();
			while(_g1 < _g) {
				var i = _g1++;
				range = this.__textEngine.textFormatRanges.get(i);
				range.format.__merge(this.__textFormat);
			}
		} else {
			var index = this.__textEngine.textFormatRanges.get_length();
			var searchIndex;
			while(index > 0) {
				--index;
				range = this.__textEngine.textFormatRanges.get(index);
				if(range.start == beginIndex && range.end == endIndex) {
					range.format = TextField.__defaultTextFormat.clone();
					range.format.__merge(format);
					return;
				}
				if(range.start >= beginIndex && range.end <= endIndex) {
					searchIndex = this.__textEngine.textFormatRanges.indexOf(range,0);
					if(searchIndex > -1) {
						this.__textEngine.textFormatRanges.splice(searchIndex,1);
					}
				}
			}
			var prevRange = null;
			var nextRange = null;
			if(beginIndex > 0) {
				var _g11 = 0;
				var _g2 = this.__textEngine.textFormatRanges.get_length();
				while(_g11 < _g2) {
					var i1 = _g11++;
					range = this.__textEngine.textFormatRanges.get(i1);
					if(range.end >= beginIndex) {
						prevRange = range;
						break;
					}
				}
			}
			if(endIndex < max) {
				var ni = this.__textEngine.textFormatRanges.get_length();
				while(--ni >= 0) {
					range = this.__textEngine.textFormatRanges.get(ni);
					if(range.start <= endIndex) {
						nextRange = range;
						break;
					}
				}
			}
			if(nextRange == prevRange) {
				nextRange = new (openfl__$internal_text_TextFormatRange().default)(nextRange.format.clone(),nextRange.start,nextRange.end);
				this.__textEngine.textFormatRanges.push(nextRange);
			}
			if(prevRange != null) {
				prevRange.end = beginIndex;
			}
			if(nextRange != null) {
				nextRange.start = endIndex;
			}
			var textFormat = TextField.__defaultTextFormat.clone();
			textFormat.__merge(format);
			this.__textEngine.textFormatRanges.push(new (openfl__$internal_text_TextFormatRange().default)(textFormat,beginIndex,endIndex));
			this.__textEngine.textFormatRanges.sort(function(a,b) {
				if(a.start < b.start || a.end < b.end) {
					return -1;
				} else if(a.start > b.start || a.end > b.end) {
					return 1;
				}
				return 0;
			});
		}
		this.__dirty = true;
		this.__layoutDirty = true;
		this.__setRenderDirty();
	},
	__allowMouseFocus: function() {
		if(!(this.__textEngine.type == "input" || this.get_tabEnabled())) {
			return this.get_selectable();
		} else {
			return true;
		}
	},
	__caretBeginningOfLine: function() {
		if(this.__selectionIndex == this.__caretIndex || this.__caretIndex < this.__selectionIndex) {
			this.__caretIndex = this.getLineOffset(this.getLineIndexOfChar(this.__caretIndex));
		} else {
			this.__selectionIndex = this.getLineOffset(this.getLineIndexOfChar(this.__selectionIndex));
		}
	},
	__caretEndOfLine: function() {
		var lineIndex;
		if(this.__selectionIndex == this.__caretIndex) {
			lineIndex = this.getLineIndexOfChar(this.__caretIndex);
		} else {
			lineIndex = this.getLineIndexOfChar((Std().default)["int"](Math.max(this.__caretIndex,this.__selectionIndex)));
		}
		if(lineIndex < this.__textEngine.numLines - 1) {
			this.__caretIndex = this.getLineOffset(lineIndex + 1) - 1;
		} else {
			this.__caretIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
	},
	__caretNextCharacter: function() {
		if(this.__caretIndex < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text)) {
			this.__caretIndex++;
		}
	},
	__caretNextLine: function(lineIndex,caretIndex) {
		if(lineIndex == null) {
			lineIndex = this.getLineIndexOfChar(this.__caretIndex);
		}
		if(lineIndex < this.__textEngine.numLines - 1) {
			if(caretIndex == null) {
				caretIndex = this.__caretIndex;
			}
			this.__caretIndex = this.__getCharIndexOnDifferentLine(caretIndex,lineIndex + 1);
		} else {
			this.__caretIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
	},
	__caretPreviousCharacter: function() {
		if(this.__caretIndex > 0) {
			this.__caretIndex--;
		}
	},
	__caretPreviousLine: function(lineIndex,caretIndex) {
		if(lineIndex == null) {
			lineIndex = this.getLineIndexOfChar(this.__caretIndex);
		}
		if(lineIndex > 0) {
			if(caretIndex == null) {
				caretIndex = this.__caretIndex;
			}
			this.__caretIndex = this.__getCharIndexOnDifferentLine(caretIndex,lineIndex - 1);
		} else {
			this.__caretIndex = 0;
		}
	},
	__disableInput: function() {
		if(this.__inputEnabled && this.stage != null) {
			this.stage.window.set_enableTextEvents(false);
			this.stage.window.onTextInput.remove($bind(this,this.window_onTextInput));
			this.stage.window.onKeyDown.remove($bind(this,this.window_onKeyDown));
			this.__inputEnabled = false;
			this.__stopCursorTimer();
		}
	},
	__dispatch: function(event) {
		if(event.eventPhase == 2 && event.type == "mouseUp") {
			var event1 = event;
			var group = this.__getGroup(this.get_mouseX(),this.get_mouseY(),true);
			if(group != null) {
				var url = group.format.url;
				if(url != null && url != "") {
					if((StringTools().default).startsWith(url,"event:")) {
						this.dispatchEvent(new (openfl_events_TextEvent().default)("link",false,false,(HxOverrides().default).substr(url,6,null)));
					} else {
						(openfl_Lib().default).getURL(new (openfl_net_URLRequest().default)(url));
					}
				}
			}
		}
		return (openfl_display_InteractiveObject().default).prototype.__dispatch.call(this,event);
	},
	__enableInput: function() {
		if(this.stage != null) {
			this.stage.window.set_enableTextEvents(true);
			if(!this.__inputEnabled) {
				this.stage.window.set_enableTextEvents(true);
				if(!this.stage.window.onTextInput.has($bind(this,this.window_onTextInput))) {
					this.stage.window.onTextInput.add($bind(this,this.window_onTextInput));
					this.stage.window.onKeyDown.add($bind(this,this.window_onKeyDown));
				}
				this.__inputEnabled = true;
				this.__startCursorTimer();
			}
		}
	},
	__fromSymbol: function(swf,symbol) {
		this.__symbol = symbol;
		this.set_width(symbol.width);
		this.set_height(symbol.height);
		this.__offsetX = symbol.x;
		this.__offsetY = symbol.y;
		this.set_multiline(symbol.multiline);
		this.set_wordWrap(symbol.wordWrap);
		this.set_displayAsPassword(symbol.password);
		if(symbol.border) {
			this.set_border(true);
			this.set_background(true);
		}
		this.set_selectable(symbol.selectable);
		if(symbol.input) {
			this.set_type("input");
		}
		var format = new (openfl_text_TextFormat().default)();
		if(symbol.color != null) {
			format.color = symbol.color & 16777215;
		}
		format.size = Math.round(symbol.fontHeight / 20);
		var font = swf.symbols.get(symbol.fontID);
		if(font != null) {
			format.__ascent = font.ascent / 20 / 1024;
			format.__descent = font.descent / 20 / 1024;
		}
		format.font = symbol.fontName;
		var found = false;
		var _g = format.font;
		if(_g == null) {
			found = true;
		} else {
			switch(_g) {
			case "":case "_sans":case "_serif":case "_typewriter":
				found = true;
				break;
			default:
				var _g1 = 0;
				var _g11 = (openfl_text_Font().default).enumerateFonts();
				while(_g1 < _g11.length) {
					var font1 = _g11[_g1];
					++_g1;
					if(font1.get_fontName() == format.font) {
						found = true;
						break;
					}
				}
			}
		}
		if(!found) {
			var alpha = new (EReg().default)("[^a-zA-Z]+","g");
			var _g12 = 0;
			var _g2 = (openfl_text_Font().default).enumerateFonts();
			while(_g12 < _g2.length) {
				var font2 = _g2[_g12];
				++_g12;
				if((HxOverrides().default).substr(alpha.replace(font2.get_fontName(),""),0,symbol.fontName.length) == symbol.fontName) {
					format.font = font2.get_fontName();
					found = true;
					break;
				}
			}
		}
		if(found) {
			this.set_embedFonts(true);
		} else if(!TextField.__missingFontWarning.exists(format.font)) {
			TextField.__missingFontWarning.set(format.font,true);
			(lime_utils_Log().default).warn("Could not find required font \"" + format.font + "\", it has not been embedded",{ fileName : "TextField.hx", lineNumber : 1093, className : "openfl.text.TextField", methodName : "__fromSymbol"});
		}
		if(symbol.align != null) {
			if(symbol.align == "center") {
				format.align = "center";
			} else if(symbol.align == "right") {
				format.align = "right";
			} else if(symbol.align == "justify") {
				format.align = "justify";
			}
			format.leftMargin = (Std().default)["int"](symbol.leftMargin / 20);
			format.rightMargin = (Std().default)["int"](symbol.rightMargin / 20);
			format.indent = (Std().default)["int"](symbol.indent / 20);
			format.leading = (Std().default)["int"](symbol.leading / 20);
		}
		this.set_defaultTextFormat(format);
		if(symbol.text != null) {
			if(symbol.html) {
				this.set_htmlText(symbol.text);
			} else {
				this.set_text(symbol.text);
			}
		}
	},
	__getAdvance: function(position) {
		return position;
	},
	__getBounds: function(rect,matrix) {
		this.__updateLayout();
		var bounds = (openfl_geom_Rectangle().default).__pool.get();
		bounds.copyFrom(this.__textEngine.bounds);
		bounds.x += this.__offsetX;
		bounds.y += this.__offsetY;
		bounds.__transform(bounds,matrix);
		rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
		(openfl_geom_Rectangle().default).__pool.release(bounds);
	},
	__getCharBoundaries: function(charIndex,rect) {
		if(charIndex < 0 || charIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text) - 1) {
			return false;
		}
		this.__updateLayout();
		var _g = 0;
		var _g1 = this.__textEngine.layoutGroups;
		while(_g < _g1.get_length()) {
			var group = _g1.get(_g);
			++_g;
			if(charIndex >= group.startIndex && charIndex <= group.endIndex) {
				try {
					var x = group.offsetX;
					var _g3 = 0;
					var _g2 = charIndex - group.startIndex;
					while(_g3 < _g2) {
						var i = _g3++;
						x += group.getAdvance(i);
					}
					var lastPosition = group.getAdvance(charIndex - group.startIndex);
					rect.setTo(x,group.offsetY,lastPosition,group.ascent + group.descent);
					return true;
				} catch( e ) {
				}
			}
		}
		return false;
	},
	__getCharIndexOnDifferentLine: function(charIndex,lineIndex) {
		if(charIndex < 0 || charIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text)) {
			return -1;
		}
		if(lineIndex < 0 || lineIndex > this.__textEngine.numLines - 1) {
			return -1;
		}
		var x = null;
		var y = null;
		var _g = 0;
		var _g1 = this.__textEngine.layoutGroups;
		while(_g < _g1.get_length()) {
			var group = _g1.get(_g);
			++_g;
			if(charIndex >= group.startIndex && charIndex <= group.endIndex) {
				x = group.offsetX;
				var _g3 = 0;
				var _g2 = charIndex - group.startIndex;
				while(_g3 < _g2) {
					var i = _g3++;
					x += group.getAdvance(i);
				}
				if(y != null) {
					return this.__getPosition(x,y);
				}
			}
			if(group.lineIndex == lineIndex) {
				y = group.offsetY + group.height / 2;
				if(x != null) {
					return this.__getPosition(x,y);
				}
			}
		}
		return -1;
	},
	__getCursor: function() {
		var group = this.__getGroup(this.get_mouseX(),this.get_mouseY(),true);
		if(group != null && group.format.url != "") {
			return (lime_ui_MouseCursor().default).POINTER;
		} else if(this.__textEngine.selectable) {
			return (lime_ui_MouseCursor().default).TEXT;
		}
		return null;
	},
	__getGroup: function(x,y,precise) {
		if(precise == null) {
			precise = false;
		}
		this.__updateLayout();
		x += this.get_scrollH();
		var _g1 = 0;
		var _g = this.get_scrollV() - 1;
		while(_g1 < _g) {
			var i = _g1++;
			y += this.__textEngine.lineHeights.get(i);
		}
		if(!precise && y > this.__textEngine.textHeight) {
			y = this.__textEngine.textHeight;
		}
		var firstGroup = true;
		var group;
		var nextGroup;
		var _g11 = 0;
		var _g2 = this.__textEngine.layoutGroups.get_length();
		while(_g11 < _g2) {
			var i1 = _g11++;
			group = this.__textEngine.layoutGroups.get(i1);
			if(i1 < this.__textEngine.layoutGroups.get_length() - 1) {
				nextGroup = this.__textEngine.layoutGroups.get(i1 + 1);
			} else {
				nextGroup = null;
			}
			if(firstGroup) {
				if(y < group.offsetY) {
					y = group.offsetY;
				}
				if(x < group.offsetX) {
					x = group.offsetX;
				}
				firstGroup = false;
			}
			if(y >= group.offsetY && y <= group.offsetY + group.height || !precise && nextGroup == null) {
				if(x >= group.offsetX && x <= group.offsetX + group.width || !precise && (nextGroup == null || nextGroup.lineIndex != group.lineIndex)) {
					return group;
				}
			}
		}
		return null;
	},
	__getPosition: function(x,y) {
		var group = this.__getGroup(x,y);
		if(group == null) {
			return (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		var advance = 0.0;
		var _g1 = 0;
		var _g = group.positions.length;
		while(_g1 < _g) {
			var i = _g1++;
			advance += group.getAdvance(i);
			if(x <= group.offsetX + advance) {
				if(x <= group.offsetX + (advance - group.getAdvance(i)) + group.getAdvance(i) / 2) {
					return group.startIndex + i;
				} else if(group.startIndex + i < group.endIndex) {
					return group.startIndex + i + 1;
				} else {
					return group.endIndex;
				}
			}
		}
		return group.endIndex;
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled) {
			return false;
		}
		if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
			return false;
		}
		this.__getRenderTransform();
		this.__updateLayout();
		var px = this.__renderTransform.__transformInverseX(x,y);
		var py = this.__renderTransform.__transformInverseY(x,y);
		if(this.__textEngine.bounds.contains(px,py)) {
			if(stack != null) {
				stack.push(hitObject);
			}
			return true;
		}
		return false;
	},
	__hitTestMask: function(x,y) {
		this.__getRenderTransform();
		this.__updateLayout();
		var px = this.__renderTransform.__transformInverseX(x,y);
		var py = this.__renderTransform.__transformInverseY(x,y);
		if(this.__textEngine.bounds.contains(px,py)) {
			return true;
		}
		return false;
	},
	__renderCairo: function(renderSession) {
	},
	__renderCanvas: function(renderSession) {
		if(renderSession.renderType == (lime_graphics_RendererType().default).DOM && !this.__renderedOnCanvasWhileOnDOM) {
			this.__renderedOnCanvasWhileOnDOM = true;
			if(this.get_type() == "input") {
				this.replaceText(0,(lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text),this.__text);
			}
			if(this.__isHTML) {
				this.__updateText((openfl__$internal_text_HTMLParser().default).parse(this.__text,this.__textFormat,this.__textEngine.textFormatRanges));
			}
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
		}
		(openfl__$internal_renderer_canvas_CanvasTextField().default).render(this,renderSession,this.__worldTransform);
		if(this.__textEngine.antiAliasType == "advanced" && this.__textEngine.gridFitType == "pixel") {
			var smoothingEnabled = renderSession.context.imageSmoothingEnabled;
			if(smoothingEnabled) {
				renderSession.context.mozImageSmoothingEnabled = false;
				renderSession.context.msImageSmoothingEnabled = false;
				renderSession.context.imageSmoothingEnabled = false;
			}
			(openfl_display_InteractiveObject().default).prototype.__renderCanvas.call(this,renderSession);
			if(smoothingEnabled) {
				renderSession.context.mozImageSmoothingEnabled = true;
				renderSession.context.msImageSmoothingEnabled = true;
				renderSession.context.imageSmoothingEnabled = true;
			}
		} else {
			(openfl_display_InteractiveObject().default).prototype.__renderCanvas.call(this,renderSession);
		}
	},
	__renderDOM: function(renderSession) {
		this.__updateCacheBitmap(renderSession,this.__forceCachedBitmapUpdate || !this.__worldColorTransform.__isDefault());
		this.__forceCachedBitmapUpdate = false;
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			this.__renderDOMClear(renderSession);
			this.__cacheBitmap.stage = this.stage;
			(openfl__$internal_renderer_dom_DOMBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			if(this.__renderedOnCanvasWhileOnDOM) {
				this.__renderedOnCanvasWhileOnDOM = false;
				if(this.__isHTML && this.__rawHtmlText != null) {
					this.__updateText(this.__rawHtmlText);
					this.__dirty = true;
					this.__layoutDirty = true;
					this.__setRenderDirty();
				}
			}
			(openfl__$internal_renderer_dom_DOMTextField().default).render(this,renderSession);
		}
	},
	__renderDOMClear: function(renderSession) {
		(openfl__$internal_renderer_dom_DOMTextField().default).clear(this,renderSession);
	},
	__renderGL: function(renderSession) {
		(openfl__$internal_renderer_canvas_CanvasTextField().default).render(this,renderSession,this.__worldTransform);
		(openfl_display_InteractiveObject().default).prototype.__renderGL.call(this,renderSession);
	},
	__renderGLMask: function(renderSession) {
		(openfl__$internal_renderer_canvas_CanvasTextField().default).render(this,renderSession,this.__worldTransform);
		(openfl_display_InteractiveObject().default).prototype.__renderGLMask.call(this,renderSession);
	},
	__startCursorTimer: function() {
		this.__cursorTimer = (haxe_Timer().default).delay($bind(this,this.__startCursorTimer),600);
		this.__showCursor = !this.__showCursor;
		this.__dirty = true;
		this.__setRenderDirty();
	},
	__startTextInput: function() {
		if(this.__caretIndex < 0) {
			this.__caretIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
			this.__selectionIndex = this.__caretIndex;
		}
		var enableInput = (openfl_display_DisplayObject().default).__supportDOM ? this.__renderedOnCanvasWhileOnDOM : true;
		if(enableInput) {
			this.__enableInput();
		}
	},
	__stopCursorTimer: function() {
		if(this.__cursorTimer != null) {
			this.__cursorTimer.stop();
			this.__cursorTimer = null;
		}
		if(this.__showCursor) {
			this.__showCursor = false;
			this.__dirty = true;
			this.__setRenderDirty();
		}
	},
	__stopTextInput: function() {
		var disableInput = (openfl_display_DisplayObject().default).__supportDOM ? this.__renderedOnCanvasWhileOnDOM : true;
		if(disableInput) {
			this.__disableInput();
		}
	},
	__updateCacheBitmap: function(renderSession,force) {
		if((openfl_display_InteractiveObject().default).prototype.__updateCacheBitmap.call(this,renderSession,force)) {
			if(this.__cacheBitmap != null) {
				this.__cacheBitmap.__renderTransform.tx -= this.__offsetX;
				this.__cacheBitmap.__renderTransform.ty -= this.__offsetY;
			}
			return true;
		}
		return false;
	},
	__updateLayout: function() {
		if(this.__layoutDirty) {
			var cacheWidth = this.__textEngine.width;
			var cacheHeight = this.__textEngine.height;
			this.__textEngine.update();
			if(this.__textEngine.autoSize != "none") {
				if(this.__textEngine.width != cacheWidth) {
					var _g = this.__textEngine.autoSize;
					switch(_g) {
					case "center":
						var _g1 = this;
						_g1.set_x(_g1.get_x() + (cacheWidth - this.__textEngine.width) / 2);
						break;
					case "right":
						var _g2 = this;
						_g2.set_x(_g2.get_x() + (cacheWidth - this.__textEngine.width));
						break;
					default:
					}
				}
				this.__textEngine.getBounds();
			}
			this.__layoutDirty = false;
		}
	},
	__updateScrollH: function() {
		if(!this.get_multiline() && this.get_type() == "input") {
			this.__layoutDirty = true;
			this.__updateLayout();
			var offsetX = this.__textEngine.textWidth - this.__textEngine.width + 4;
			if(offsetX > 0) {
				if(this.__caretIndex >= (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.get_text())) {
					this.set_scrollH(Math.ceil(offsetX));
				} else {
					var caret = (openfl_geom_Rectangle().default).__pool.get();
					this.__getCharBoundaries(this.__caretIndex,caret);
					if(caret.x < this.get_scrollH()) {
						this.set_scrollH(Math.floor(caret.x - 2));
					} else if(caret.x > this.get_scrollH() + this.__textEngine.width) {
						this.set_scrollH(Math.ceil(caret.x - this.__textEngine.width - 2));
					}
					(openfl_geom_Rectangle().default).__pool.release(caret);
				}
			} else {
				this.set_scrollH(0);
			}
		}
	},
	__updateText: function(value) {
		if((openfl_display_DisplayObject().default).__supportDOM && this.__renderedOnCanvasWhileOnDOM) {
			this.__forceCachedBitmapUpdate = this.__text != value;
		}
		this.__textEngine.set_text(value);
		this.__text = this.__textEngine.text;
		if((lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text) < this.__caretIndex) {
			this.__selectionIndex = this.__caretIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		if(!this.__displayAsPassword || (openfl_display_DisplayObject().default).__supportDOM && !this.__renderedOnCanvasWhileOnDOM) {
			this.__textEngine.set_text(this.__text);
		} else {
			var length = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.get_text());
			var mask = "";
			var _g1 = 0;
			var _g = length;
			while(_g1 < _g) {
				var i = _g1++;
				mask += "*";
			}
			this.__textEngine.set_text(mask);
		}
	},
	__updateTransforms: function(overrideTransform) {
		(openfl_display_InteractiveObject().default).prototype.__updateTransforms.call(this,overrideTransform);
		this.__renderTransform.__translateTransformed(this.__offsetX,this.__offsetY);
	},
	get_antiAliasType: function() {
		return this.__textEngine.antiAliasType;
	},
	set_antiAliasType: function(value) {
		var tmp = value != this.__textEngine.antiAliasType;
		return this.__textEngine.antiAliasType = value;
	},
	get_autoSize: function() {
		return this.__textEngine.autoSize;
	},
	set_autoSize: function(value) {
		if(value != this.__textEngine.autoSize) {
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
		}
		return this.__textEngine.autoSize = value;
	},
	get_background: function() {
		return this.__textEngine.background;
	},
	set_background: function(value) {
		if(value != this.__textEngine.background) {
			this.__dirty = true;
			this.__setRenderDirty();
		}
		return this.__textEngine.background = value;
	},
	get_backgroundColor: function() {
		return this.__textEngine.backgroundColor;
	},
	set_backgroundColor: function(value) {
		if(value != this.__textEngine.backgroundColor) {
			this.__dirty = true;
			this.__setRenderDirty();
		}
		return this.__textEngine.backgroundColor = value;
	},
	get_border: function() {
		return this.__textEngine.border;
	},
	set_border: function(value) {
		if(value != this.__textEngine.border) {
			this.__dirty = true;
			this.__setRenderDirty();
		}
		return this.__textEngine.border = value;
	},
	get_borderColor: function() {
		return this.__textEngine.borderColor;
	},
	set_borderColor: function(value) {
		if(value != this.__textEngine.borderColor) {
			this.__dirty = true;
			this.__setRenderDirty();
		}
		return this.__textEngine.borderColor = value;
	},
	get_bottomScrollV: function() {
		this.__updateLayout();
		return this.__textEngine.bottomScrollV;
	},
	get_cacheAsBitmap: function() {
		if(this.__filters != null && this.__filters.length == 1 && (Std().default)["is"](this.__filters[0],(openfl_filters_GlowFilter().default))) {
			return false;
		}
		return (openfl_display_InteractiveObject().default).prototype.get_cacheAsBitmap.call(this);
	},
	get_caretIndex: function() {
		return this.__caretIndex;
	},
	get_defaultTextFormat: function() {
		return this.__textFormat.clone();
	},
	set_defaultTextFormat: function(value) {
		this.__textFormat.__merge(value);
		this.__layoutDirty = true;
		this.__dirty = true;
		this.__setRenderDirty();
		return value;
	},
	get_displayAsPassword: function() {
		return this.__displayAsPassword;
	},
	set_displayAsPassword: function(value) {
		if(value != this.__displayAsPassword) {
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
			this.__displayAsPassword = value;
			this.__updateText(this.__text);
		}
		return value;
	},
	get_embedFonts: function() {
		return this.__textEngine.embedFonts;
	},
	set_embedFonts: function(value) {
		return this.__textEngine.embedFonts = value;
	},
	get_gridFitType: function() {
		return this.__textEngine.gridFitType;
	},
	set_gridFitType: function(value) {
		return this.__textEngine.gridFitType = value;
	},
	get_height: function() {
		this.__updateLayout();
		return this.__textEngine.height * Math.abs(this.get_scaleY());
	},
	set_height: function(value) {
		if(value != this.__textEngine.height) {
			this.__setTransformDirty();
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
			this.__textEngine.height = value;
		}
		return this.__textEngine.height * Math.abs(this.get_scaleY());
	},
	get_htmlText: function() {
		return this.__text;
	},
	set_htmlText: function(value) {
		if(!this.__isHTML || this.__text != value) {
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
		}
		this.__isHTML = true;
		if((openfl_display_DisplayObject().default).__supportDOM) {
			this.__rawHtmlText = value;
		}
		value = (openfl__$internal_text_HTMLParser().default).parse(value,this.__textFormat,this.__textEngine.textFormatRanges);
		if((openfl_display_DisplayObject().default).__supportDOM) {
			if(this.__textEngine.textFormatRanges.get_length() > 1) {
				this.__textEngine.textFormatRanges.splice(1,this.__textEngine.textFormatRanges.get_length() - 1);
			}
			var range = this.__textEngine.textFormatRanges.get(0);
			range.format = this.__textFormat;
			range.start = 0;
			if(this.__renderedOnCanvasWhileOnDOM) {
				range.end = value.length;
				this.__updateText(value);
			} else {
				range.end = this.__rawHtmlText.length;
				this.__updateText(this.__rawHtmlText);
			}
		} else {
			this.__updateText(value);
		}
		return value;
	},
	get_length: function() {
		if(this.__text != null) {
			return (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
		}
		return 0;
	},
	get_maxChars: function() {
		return this.__textEngine.maxChars;
	},
	set_maxChars: function(value) {
		if(value != this.__textEngine.maxChars) {
			this.__textEngine.maxChars = value;
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
		}
		return value;
	},
	get_maxScrollH: function() {
		this.__updateLayout();
		return this.__textEngine.maxScrollH;
	},
	get_maxScrollV: function() {
		this.__updateLayout();
		return this.__textEngine.maxScrollV;
	},
	get_mouseWheelEnabled: function() {
		return this.__mouseWheelEnabled;
	},
	set_mouseWheelEnabled: function(value) {
		return this.__mouseWheelEnabled = value;
	},
	get_multiline: function() {
		return this.__textEngine.multiline;
	},
	set_multiline: function(value) {
		if(value != this.__textEngine.multiline) {
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__updateText(this.__text);
			this.__updateScrollH();
			this.__setRenderDirty();
		}
		return this.__textEngine.multiline = value;
	},
	get_numLines: function() {
		this.__updateLayout();
		return this.__textEngine.numLines;
	},
	get_restrict: function() {
		return this.__textEngine.restrict;
	},
	set_restrict: function(value) {
		if(this.__textEngine.restrict != value) {
			this.__textEngine.set_restrict(value);
			this.__updateText(this.__text);
		}
		return value;
	},
	get_scrollH: function() {
		return this.__textEngine.scrollH;
	},
	set_scrollH: function(value) {
		this.__updateLayout();
		if(value > this.__textEngine.maxScrollH) {
			value = this.__textEngine.maxScrollH;
		}
		if(value < 0) {
			value = 0;
		}
		if(value != this.__textEngine.scrollH) {
			this.__dirty = true;
			this.__setRenderDirty();
			this.dispatchEvent(new (openfl_events_Event().default)("scroll"));
		}
		return this.__textEngine.scrollH = value;
	},
	get_scrollV: function() {
		return this.__textEngine.scrollV;
	},
	set_scrollV: function(value) {
		this.__updateLayout();
		if(value > this.__textEngine.maxScrollV) {
			value = this.__textEngine.maxScrollV;
		}
		if(value < 1) {
			value = 1;
		}
		if(value != this.__textEngine.scrollV) {
			this.__dirty = true;
			this.__setRenderDirty();
			this.dispatchEvent(new (openfl_events_Event().default)("scroll"));
		}
		return this.__textEngine.scrollV = value;
	},
	get_selectable: function() {
		return this.__textEngine.selectable;
	},
	set_selectable: function(value) {
		if(value != this.__textEngine.selectable && this.get_type() == "input") {
			if(this.stage != null && this.stage.get_focus() == this) {
				this.__startTextInput();
			} else if(!value) {
				this.__stopTextInput();
			}
		}
		return this.__textEngine.selectable = value;
	},
	get_selectionBeginIndex: function() {
		return (Std().default)["int"](Math.min(this.__caretIndex,this.__selectionIndex));
	},
	get_selectionEndIndex: function() {
		return (Std().default)["int"](Math.max(this.__caretIndex,this.__selectionIndex));
	},
	get_sharpness: function() {
		return this.__textEngine.sharpness;
	},
	set_sharpness: function(value) {
		if(value != this.__textEngine.sharpness) {
			this.__dirty = true;
			this.__setRenderDirty();
		}
		return this.__textEngine.sharpness = value;
	},
	get_tabEnabled: function() {
		if(this.__tabEnabled == null) {
			return this.__textEngine.type == "input";
		} else {
			return this.__tabEnabled;
		}
	},
	get_text: function() {
		return this.__text;
	},
	set_text: function(value) {
		if(this.__isHTML || this.__text != value) {
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
		} else {
			return value;
		}
		if(this.__textEngine.textFormatRanges.get_length() > 1) {
			this.__textEngine.textFormatRanges.splice(1,this.__textEngine.textFormatRanges.get_length() - 1);
		}
		var utfValue = value;
		var range = this.__textEngine.textFormatRanges.get(0);
		range.format = this.__textFormat;
		range.start = 0;
		range.end = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(utfValue);
		this.__isHTML = false;
		this.__updateText(value);
		return value;
	},
	get_textColor: function() {
		return this.__textFormat.color;
	},
	set_textColor: function(value) {
		if(value != this.__textFormat.color) {
			this.__dirty = true;
			this.__setRenderDirty();
		}
		var _g = 0;
		var _g1 = this.__textEngine.textFormatRanges;
		while(_g < _g1.get_length()) {
			var range = _g1.get(_g);
			++_g;
			range.format.color = value;
		}
		return this.__textFormat.color = value;
	},
	get_textWidth: function() {
		this.__updateLayout();
		return this.__textEngine.textWidth;
	},
	get_textHeight: function() {
		this.__updateLayout();
		return this.__textEngine.textHeight;
	},
	get_type: function() {
		return this.__textEngine.type;
	},
	set_type: function(value) {
		if(value != this.__textEngine.type) {
			if(value == "input") {
				this.addEventListener("addedToStage",$bind(this,this.this_onAddedToStage));
				this.this_onFocusIn(null);
				this.__textEngine.__useIntAdvances = true;
			} else {
				this.removeEventListener("addedToStage",$bind(this,this.this_onAddedToStage));
				this.__stopTextInput();
				this.__textEngine.__useIntAdvances = null;
			}
			this.__dirty = true;
			this.__setRenderDirty();
		}
		return this.__textEngine.type = value;
	},
	get_width: function() {
		this.__updateLayout();
		return this.__textEngine.width * Math.abs(this.__scaleX);
	},
	set_width: function(value) {
		if(value != this.__textEngine.width) {
			this.__setTransformDirty();
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
			this.__textEngine.width = value;
		}
		return this.__textEngine.width * Math.abs(this.__scaleX);
	},
	get_wordWrap: function() {
		return this.__textEngine.wordWrap;
	},
	set_wordWrap: function(value) {
		if(value != this.__textEngine.wordWrap) {
			this.__dirty = true;
			this.__layoutDirty = true;
			this.__setRenderDirty();
		}
		return this.__textEngine.wordWrap = value;
	},
	get_x: function() {
		return this.__transform.tx + this.__offsetX;
	},
	set_x: function(value) {
		if(value != this.__transform.tx + this.__offsetX) {
			this.__setTransformDirty();
		}
		return this.__transform.tx = value - this.__offsetX;
	},
	get_y: function() {
		return this.__transform.ty + this.__offsetY;
	},
	set_y: function(value) {
		if(value != this.__transform.ty + this.__offsetY) {
			this.__setTransformDirty();
		}
		return this.__transform.ty = value - this.__offsetY;
	},
	stage_onMouseMove: function(event) {
		if(this.stage == null) {
			return;
		}
		if(this.__textEngine.selectable && this.__selectionIndex >= 0) {
			this.__updateLayout();
			var position = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY());
			if(position != this.__caretIndex) {
				this.__caretIndex = position;
				if((openfl_display_DisplayObject().default).__supportDOM) {
					if(this.__renderedOnCanvasWhileOnDOM) {
						this.__forceCachedBitmapUpdate = true;
					}
				} else {
					this.__dirty = true;
					this.__setRenderDirty();
				}
			}
		}
	},
	stage_onMouseUp: function(event) {
		if(this.stage == null) {
			return;
		}
		this.stage.removeEventListener("mouseMove",$bind(this,this.stage_onMouseMove));
		this.stage.removeEventListener("mouseUp",$bind(this,this.stage_onMouseUp));
		if(this.stage.get_focus() == this) {
			this.__getWorldTransform();
			this.__updateLayout();
			var px = this.__worldTransform.__transformInverseX(this.get_x(),this.get_y());
			var py = this.__worldTransform.__transformInverseY(this.get_x(),this.get_y());
			var upPos = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY());
			var leftPos;
			var rightPos;
			leftPos = (Std().default)["int"](Math.min(this.__selectionIndex,upPos));
			rightPos = (Std().default)["int"](Math.max(this.__selectionIndex,upPos));
			this.__selectionIndex = leftPos;
			this.__caretIndex = rightPos;
			if(this.__inputEnabled) {
				this.this_onFocusIn(null);
				this.__stopCursorTimer();
				this.__startCursorTimer();
				if((openfl_display_DisplayObject().default).__supportDOM && this.__renderedOnCanvasWhileOnDOM) {
					this.__forceCachedBitmapUpdate = true;
				}
			}
		}
	},
	this_onAddedToStage: function(event) {
		this.this_onFocusIn(null);
	},
	this_onFocusIn: function(event) {
		if(this.get_type() == "input" && this.stage != null && this.stage.get_focus() == this) {
			this.__startTextInput();
		}
	},
	this_onFocusOut: function(event) {
		this.__stopCursorTimer();
		if(event.relatedObject == null || !(Std().default)["is"](event.relatedObject,TextField)) {
			this.__stopTextInput();
		} else {
			this.stage.window.onTextInput.remove($bind(this,this.window_onTextInput));
			this.stage.window.onKeyDown.remove($bind(this,this.window_onKeyDown));
			this.__inputEnabled = false;
		}
		if(this.__selectionIndex != this.__caretIndex) {
			this.__selectionIndex = this.__caretIndex;
			this.__dirty = true;
			this.__setRenderDirty();
		}
	},
	this_onKeyDown: function(event) {
		if(this.get_selectable() && this.get_type() != "input" && event.keyCode == 67 && (event.commandKey || event.ctrlKey)) {
			if(this.__caretIndex != this.__selectionIndex) {
				(lime_system_Clipboard().default).set_text((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(this.__text,this.__caretIndex,this.__selectionIndex));
			}
		}
	},
	this_onMouseDown: function(event) {
		if(!this.get_selectable() && this.get_type() != "input") {
			return;
		}
		this.__updateLayout();
		this.__caretIndex = this.__getPosition(this.get_mouseX() + this.get_scrollH(),this.get_mouseY());
		this.__selectionIndex = this.__caretIndex;
		if(!(openfl_display_DisplayObject().default).__supportDOM) {
			this.__dirty = true;
			this.__setRenderDirty();
		}
		this.stage.addEventListener("mouseMove",$bind(this,this.stage_onMouseMove));
		this.stage.addEventListener("mouseUp",$bind(this,this.stage_onMouseUp));
	},
	window_onKeyDown: function(key,modifier) {
		switch(key) {
		case 8:
			if(this.__selectionIndex == this.__caretIndex && this.__caretIndex > 0) {
				this.__selectionIndex = this.__caretIndex - 1;
			}
			if(this.__selectionIndex != this.__caretIndex) {
				this.replaceSelectedText("");
				this.__selectionIndex = this.__caretIndex;
				this.dispatchEvent(new (openfl_events_Event().default)("change",true));
			}
			break;
		case 97:
			if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier) || (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier)) {
				this.__caretIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text);
				this.__selectionIndex = 0;
			}
			break;
		case 99:
			if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier) || (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier)) {
				if(this.__caretIndex != this.__selectionIndex) {
					(lime_system_Clipboard().default).set_text((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(this.__text,this.__caretIndex,this.__selectionIndex));
				}
			}
			break;
		case 120:
			if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier) || (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier)) {
				if(this.__caretIndex != this.__selectionIndex) {
					(lime_system_Clipboard().default).set_text((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(this.__text,this.__caretIndex,this.__selectionIndex));
					this.replaceSelectedText("");
					this.dispatchEvent(new (openfl_events_Event().default)("change",true));
				}
			}
			break;
		case 127:
			if(this.__selectionIndex == this.__caretIndex && this.__caretIndex < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.__text)) {
				this.__selectionIndex = this.__caretIndex + 1;
			}
			if(this.__selectionIndex != this.__caretIndex) {
				this.replaceSelectedText("");
				this.__selectionIndex = this.__caretIndex;
				this.dispatchEvent(new (openfl_events_Event().default)("change",true));
			}
			break;
		case 1073741898:
			this.__caretBeginningOfLine();
			this.__stopCursorTimer();
			this.__startCursorTimer();
			break;
		case 1073741901:
			this.__caretEndOfLine();
			this.__stopCursorTimer();
			this.__startCursorTimer();
			break;
		case 1073741903:
			if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier)) {
				this.__caretEndOfLine();
				if(!(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)) {
					this.__selectionIndex = this.__caretIndex;
				}
			} else if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)) {
				this.__caretNextCharacter();
			} else {
				if(this.__selectionIndex == this.__caretIndex) {
					this.__caretNextCharacter();
				} else {
					this.__caretIndex = (Std().default)["int"](Math.max(this.__caretIndex,this.__selectionIndex));
				}
				this.__selectionIndex = this.__caretIndex;
			}
			this.__updateScrollH();
			this.__stopCursorTimer();
			this.__startCursorTimer();
			break;
		case 1073741904:
			if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier)) {
				this.__caretBeginningOfLine();
				if(!(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)) {
					this.__selectionIndex = this.__caretIndex;
				}
			} else if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)) {
				this.__caretPreviousCharacter();
			} else {
				if(this.__selectionIndex == this.__caretIndex) {
					this.__caretPreviousCharacter();
				} else {
					this.__caretIndex = (Std().default)["int"](Math.min(this.__caretIndex,this.__selectionIndex));
				}
				this.__selectionIndex = this.__caretIndex;
			}
			this.__updateScrollH();
			this.__stopCursorTimer();
			this.__startCursorTimer();
			break;
		case 1073741905:
			if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)) {
				this.__caretNextLine();
			} else {
				if(this.__selectionIndex == this.__caretIndex) {
					this.__caretNextLine();
				} else {
					var lineIndex = this.getLineIndexOfChar((Std().default)["int"](Math.max(this.__caretIndex,this.__selectionIndex)));
					this.__caretNextLine(lineIndex,(Std().default)["int"](Math.min(this.__caretIndex,this.__selectionIndex)));
				}
				this.__selectionIndex = this.__caretIndex;
			}
			this.__stopCursorTimer();
			this.__startCursorTimer();
			break;
		case 1073741906:
			if((lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier)) {
				this.__caretPreviousLine();
			} else {
				if(this.__selectionIndex == this.__caretIndex) {
					this.__caretPreviousLine();
				} else {
					var lineIndex1 = this.getLineIndexOfChar((Std().default)["int"](Math.min(this.__caretIndex,this.__selectionIndex)));
					this.__caretPreviousLine(lineIndex1,(Std().default)["int"](Math.min(this.__caretIndex,this.__selectionIndex)));
				}
				this.__selectionIndex = this.__caretIndex;
			}
			this.__stopCursorTimer();
			this.__startCursorTimer();
			break;
		case 13:case 1073741912:
			if(this.__textEngine.multiline) {
				this.replaceSelectedText("\n");
				this.dispatchEvent(new (openfl_events_Event().default)("change",true));
			}
			break;
		default:
		}
	},
	window_onTextInput: function(value) {
		this.replaceSelectedText(value);
		this.dispatchEvent(new (openfl_events_Event().default)("change",true));
	}
});
TextField.prototype.__class__ = $hxClasses["openfl.text.TextField"] = TextField;
// Init
Object.defineProperties(TextField.prototype,{ "antiAliasType" : { get : function () { return this.get_antiAliasType (); }, set : function (v) { return this.set_antiAliasType (v); }}, "autoSize" : { get : function () { return this.get_autoSize (); }, set : function (v) { return this.set_autoSize (v); }}, "background" : { get : function () { return this.get_background (); }, set : function (v) { return this.set_background (v); }}, "backgroundColor" : { get : function () { return this.get_backgroundColor (); }, set : function (v) { return this.set_backgroundColor (v); }}, "border" : { get : function () { return this.get_border (); }, set : function (v) { return this.set_border (v); }}, "borderColor" : { get : function () { return this.get_borderColor (); }, set : function (v) { return this.set_borderColor (v); }}, "bottomScrollV" : { get : function () { return this.get_bottomScrollV (); }}, "defaultTextFormat" : { get : function () { return this.get_defaultTextFormat (); }, set : function (v) { return this.set_defaultTextFormat (v); }}, "displayAsPassword" : { get : function () { return this.get_displayAsPassword (); }, set : function (v) { return this.set_displayAsPassword (v); }}, "embedFonts" : { get : function () { return this.get_embedFonts (); }, set : function (v) { return this.set_embedFonts (v); }}, "gridFitType" : { get : function () { return this.get_gridFitType (); }, set : function (v) { return this.set_gridFitType (v); }}, "htmlText" : { get : function () { return this.get_htmlText (); }, set : function (v) { return this.set_htmlText (v); }}, "length" : { get : function () { return this.get_length (); }}, "maxChars" : { get : function () { return this.get_maxChars (); }, set : function (v) { return this.set_maxChars (v); }}, "maxScrollH" : { get : function () { return this.get_maxScrollH (); }}, "maxScrollV" : { get : function () { return this.get_maxScrollV (); }}, "mouseWheelEnabled" : { get : function () { return this.get_mouseWheelEnabled (); }, set : function (v) { return this.set_mouseWheelEnabled (v); }}, "multiline" : { get : function () { return this.get_multiline (); }, set : function (v) { return this.set_multiline (v); }}, "numLines" : { get : function () { return this.get_numLines (); }}, "restrict" : { get : function () { return this.get_restrict (); }, set : function (v) { return this.set_restrict (v); }}, "scrollH" : { get : function () { return this.get_scrollH (); }, set : function (v) { return this.set_scrollH (v); }}, "scrollV" : { get : function () { return this.get_scrollV (); }, set : function (v) { return this.set_scrollV (v); }}, "selectable" : { get : function () { return this.get_selectable (); }, set : function (v) { return this.set_selectable (v); }}, "selectionBeginIndex" : { get : function () { return this.get_selectionBeginIndex (); }}, "selectionEndIndex" : { get : function () { return this.get_selectionEndIndex (); }}, "sharpness" : { get : function () { return this.get_sharpness (); }, set : function (v) { return this.set_sharpness (v); }}, "text" : { get : function () { return this.get_text (); }, set : function (v) { return this.set_text (v); }}, "textColor" : { get : function () { return this.get_textColor (); }, set : function (v) { return this.set_textColor (v); }}, "textHeight" : { get : function () { return this.get_textHeight (); }}, "textWidth" : { get : function () { return this.get_textWidth (); }}, "type" : { get : function () { return this.get_type (); }, set : function (v) { return this.set_type (v); }}, "wordWrap" : { get : function () { return this.get_wordWrap (); }, set : function (v) { return this.set_wordWrap (v); }}});
// Statics
TextField.__missingFontWarning = new (haxe_ds_StringMap().default)()
// Export
exports.default = TextField;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 131 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text._UTF8String.UTF8String_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_text_unifill_Unifill() {return __webpack_require__(327);}
function lime_text_unifill_Unicode() {return __webpack_require__(99);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function lime_text_unifill_InvalidCodePoint() {return __webpack_require__(331);}
function lime_text_unifill_InternalEncoding() {return __webpack_require__(98);}
function haxe_Utf8() {return __webpack_require__(332);}
function StringBuf() {return __webpack_require__(31);}
function Std() {return __webpack_require__(4);}
// Constructor
var UTF8String_Impl_ = function(){}
// Meta
UTF8String_Impl_.__name__ = ["lime","text","_UTF8String","UTF8String_Impl_"];
UTF8String_Impl_.prototype = {
	
};
UTF8String_Impl_.prototype.__class__ = $hxClasses["lime.text._UTF8String.UTF8String_Impl_"] = UTF8String_Impl_;
// Init
// Statics
UTF8String_Impl_._new = function(str) {
	var this1 = new String(str);
	return this1;
}
UTF8String_Impl_.charAt = function(this1,index) {
	return (lime_text_unifill_Unifill().default).uCharAt(this1,index);
}
UTF8String_Impl_.charCodeAt = function(this1,index) {
	if(index < 0 || index >= (lime_text_unifill_Unifill().default).uLength(this1)) {
		return null;
	}
	return (lime_text_unifill_Unifill().default).uCharCodeAt(this1,index);
}
UTF8String_Impl_.fromCharCode = function(code) {
	if(!(lime_text_unifill_Unicode().default).isScalar(code)) {
		throw new (js__$Boot_HaxeError().default)(new (lime_text_unifill_InvalidCodePoint().default)(code));
	}
	var this1 = code;
	return (lime_text_unifill_InternalEncoding().default).fromCodePoint(this1);
}
UTF8String_Impl_.fromCharCodes = function(codes) {
	var s = "";
	var _g = 0;
	while(_g < codes.length) {
		var code = codes[_g];
		++_g;
		if(!(lime_text_unifill_Unicode().default).isScalar(code)) {
			throw new (js__$Boot_HaxeError().default)(new (lime_text_unifill_InvalidCodePoint().default)(code));
		}
		var this1 = code;
		s += (lime_text_unifill_InternalEncoding().default).fromCodePoint(this1);
	}
	return s;
}
UTF8String_Impl_.indexOf = function(this1,str,startIndex) {
	if(startIndex == null) {
		startIndex = 0;
	}
	return (lime_text_unifill_Unifill().default).uIndexOf(this1,str,startIndex);
}
UTF8String_Impl_.lastIndexOf = function(this1,str,startIndex) {
	return (lime_text_unifill_Unifill().default).uLastIndexOf(this1,str,startIndex);
}
UTF8String_Impl_.split = function(this1,delimiter) {
	return (lime_text_unifill_Unifill().default).uSplit(this1,delimiter);
}
UTF8String_Impl_.substr = function(this1,pos,len) {
	return (haxe_Utf8().default).sub(this1,pos,len);
}
UTF8String_Impl_.substring = function(this1,startIndex,endIndex) {
	return (lime_text_unifill_Unifill().default).uSubstring(this1,startIndex,endIndex);
}
UTF8String_Impl_.toLowerCase = function(this1) {
	return this1.toLowerCase();
}
UTF8String_Impl_.toString = function(this1) {
	return this1;
}
UTF8String_Impl_.toUpperCase = function(this1) {
	return this1.toUpperCase();
}
UTF8String_Impl_.equals = function(a,b) {
	if(a == null || b == null) {
		return a == b;
	}
	return (lime_text_unifill_Unifill().default).uCompare(a,b) == 0;
}
UTF8String_Impl_.lt = function(a,b) {
	if(b == null) {
		return false;
	}
	if(a == null) {
		return true;
	}
	return (lime_text_unifill_Unifill().default).uCompare(a,b) == -1;
}
UTF8String_Impl_.gt = function(a,b) {
	if(a == null) {
		return false;
	}
	if(b == null) {
		return true;
	}
	return (lime_text_unifill_Unifill().default).uCompare(a,b) == 1;
}
UTF8String_Impl_.lteq = function(a,b) {
	if(b == null) {
		return a == null;
	}
	if(a == null) {
		return true;
	}
	return (lime_text_unifill_Unifill().default).uCompare(a,b) != 1;
}
UTF8String_Impl_.gteq = function(a,b) {
	if(a == null) {
		return b == null;
	}
	if(b == null) {
		return true;
	}
	return (lime_text_unifill_Unifill().default).uCompare(a,b) != -1;
}
UTF8String_Impl_.plus = function(a,b) {
	if(a == null && b == null) {
		return null;
	}
	if(a == null) {
		return b;
	}
	if(b == null) {
		return a;
	}
	var sb = new (StringBuf().default)();
	sb.add(UTF8String_Impl_.toString(a));
	sb.add(UTF8String_Impl_.toString(b));
	return sb.toString();
}
UTF8String_Impl_.fromDynamic = function(value) {
	return (Std().default).string(value);
}
UTF8String_Impl_.get_length = function(this1) {
	if(this1 == null) {
		return 0;
	} else {
		return this1.length;
	}
}
// Export
exports.default = UTF8String_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 132 */
/***/ (function(module, exports, __webpack_require__) {
Object.defineProperty(exports, "__esModule", {value: true});
var $bind = __webpack_require__(8).default;
var HxOverrides = __webpack_require__(7);
exports.default = function $iterator(o) {
    if( o instanceof Array ) {
        return function() {
            return HxOverrides.default.iter(o);
        };
    }
    return typeof(o.iterator) == 'function' ? $bind(o,o.iterator) : o.iterator;
}
/***/ }),
/* 133 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill._Utf16.Utf16Impl
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_text_unifill_Unicode() {return __webpack_require__(99);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function lime_text_unifill_InvalidCodeUnitSequence() {return __webpack_require__(183);}
// Constructor
var Utf16Impl = function(){}
// Meta
Utf16Impl.__name__ = ["lime","text","unifill","_Utf16","Utf16Impl"];
Utf16Impl.prototype = {
	
};
Utf16Impl.prototype.__class__ = $hxClasses["lime.text.unifill._Utf16.Utf16Impl"] = Utf16Impl;
// Init
// Statics
Utf16Impl.code_point_width = function(c) {
	if(!(lime_text_unifill_Unicode().default).isHighSurrogate(c)) {
		return 1;
	} else {
		return 2;
	}
}
Utf16Impl.find_prev_code_point = function(accessor,index) {
	var c = accessor(index - 1);
	if(!(lime_text_unifill_Unicode().default).isLowSurrogate(c)) {
		return 1;
	} else {
		return 2;
	}
}
Utf16Impl.encode_code_point = function(addUnit,codePoint) {
	if(codePoint <= 65535) {
		addUnit(codePoint);
	} else {
		addUnit((lime_text_unifill_Unicode().default).encodeHighSurrogate(codePoint));
		addUnit((lime_text_unifill_Unicode().default).encodeLowSurrogate(codePoint));
	}
}
Utf16Impl.decode_code_point = function(len,accessor,index) {
	if(index < 0 || len <= index) {
		throw new (js__$Boot_HaxeError().default)(new (lime_text_unifill_InvalidCodeUnitSequence().default)(index));
	}
	var hi = accessor(index);
	if((lime_text_unifill_Unicode().default).isHighSurrogate(hi)) {
		if(index + 1 < 0 || len <= index + 1) {
			throw new (js__$Boot_HaxeError().default)(new (lime_text_unifill_InvalidCodeUnitSequence().default)(index));
		}
		var lo = accessor(index + 1);
		if((lime_text_unifill_Unicode().default).isLowSurrogate(lo)) {
			return (lime_text_unifill_Unicode().default).decodeSurrogate(hi,lo);
		} else {
			throw new (js__$Boot_HaxeError().default)(new (lime_text_unifill_InvalidCodeUnitSequence().default)(index));
		}
	} else if((lime_text_unifill_Unicode().default).isLowSurrogate(hi)) {
		throw new (js__$Boot_HaxeError().default)(new (lime_text_unifill_InvalidCodeUnitSequence().default)(index));
	} else {
		return hi;
	}
}
// Export
exports.default = Utf16Impl;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 134 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.URLVariables
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
function StringTools() {return __webpack_require__(12);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var URLVariables = function(source) {
	if(source != null) {
		this.decode(source);
	}
}
// Meta
URLVariables.__name__ = ["openfl","net","URLVariables"];
URLVariables.prototype = {
	decode: function(source) {
		var fields = (Reflect().default).fields(this);
		var _g = 0;
		while(_g < fields.length) {
			var f = fields[_g];
			++_g;
			(Reflect().default).deleteField(this,f);
		}
		var fields1 = source.split(";").join("&").split("&");
		var _g1 = 0;
		while(_g1 < fields1.length) {
			var f1 = fields1[_g1];
			++_g1;
			var eq = f1.indexOf("=");
			if(eq > 0) {
				(Reflect().default).setField(this,(StringTools().default).urlDecode((HxOverrides().default).substr(f1,0,eq)),(StringTools().default).urlDecode((HxOverrides().default).substr(f1,eq + 1,null)));
			} else if(eq != 0) {
				(Reflect().default).setField(this,(StringTools().default).urlDecode(f1),"");
			}
		}
	},
	toString: function() {
		var result = [];
		var fields = (Reflect().default).fields(this);
		var _g = 0;
		while(_g < fields.length) {
			var f = fields[_g];
			++_g;
			result.push((StringTools().default).urlEncode(f) + "=" + (StringTools().default).urlEncode((Reflect().default).field(this,f)));
		}
		return result.join("&");
	}
};
URLVariables.prototype.__class__ = $hxClasses["openfl.net.URLVariables"] = URLVariables;
// Init
// Statics
// Export
exports.default = URLVariables;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 135 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.text.TextFormat
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var TextFormat = function(font,size,color,bold,italic,underline,url,target,align,leftMargin,rightMargin,indent,leading) {
	this.font = font;
	this.size = size;
	this.color = color;
	this.bold = bold;
	this.italic = italic;
	this.underline = underline;
	this.url = url;
	this.target = target;
	this.align = align;
	this.leftMargin = leftMargin;
	this.rightMargin = rightMargin;
	this.indent = indent;
	this.leading = leading;
}
// Meta
TextFormat.__name__ = ["openfl","text","TextFormat"];
TextFormat.prototype = {
	clone: function() {
		var newFormat = new TextFormat(this.font,this.size,this.color,this.bold,this.italic,this.underline,this.url,this.target);
		newFormat.align = this.align;
		newFormat.leftMargin = this.leftMargin;
		newFormat.rightMargin = this.rightMargin;
		newFormat.indent = this.indent;
		newFormat.leading = this.leading;
		newFormat.blockIndent = this.blockIndent;
		newFormat.bullet = this.bullet;
		newFormat.kerning = this.kerning;
		newFormat.letterSpacing = this.letterSpacing;
		newFormat.tabStops = this.tabStops;
		newFormat.__ascent = this.__ascent;
		newFormat.__descent = this.__descent;
		return newFormat;
	},
	__merge: function(format) {
		if(format.font != null) {
			this.font = format.font;
		}
		if(format.size != null) {
			this.size = format.size;
		}
		if(format.color != null) {
			this.color = format.color;
		}
		if(format.bold != null) {
			this.bold = format.bold;
		}
		if(format.italic != null) {
			this.italic = format.italic;
		}
		if(format.underline != null) {
			this.underline = format.underline;
		}
		if(format.url != null && format.url != "") {
			this.url = format.url;
		}
		if(format.url == "" && this.url == null) {
			this.url = "";
		}
		if(format.target != null) {
			this.target = format.target;
		}
		if(format.align != null) {
			this.align = format.align;
		}
		if(format.leftMargin != null) {
			this.leftMargin = format.leftMargin;
		}
		if(format.rightMargin != null) {
			this.rightMargin = format.rightMargin;
		}
		if(format.indent != null) {
			this.indent = format.indent;
		}
		if(format.leading != null) {
			this.leading = format.leading;
		}
		if(format.blockIndent != null) {
			this.blockIndent = format.blockIndent;
		}
		if(format.bullet != null) {
			this.bullet = format.bullet;
		}
		if(format.kerning != null) {
			this.kerning = format.kerning;
		}
		if(format.letterSpacing != null) {
			this.letterSpacing = format.letterSpacing;
		}
		if(format.tabStops != null) {
			this.tabStops = format.tabStops;
		}
		if(format.__ascent != null) {
			this.__ascent = format.__ascent;
		}
		if(format.__descent != null) {
			this.__descent = format.__descent;
		}
	}
};
TextFormat.prototype.__class__ = $hxClasses["openfl.text.TextFormat"] = TextFormat;
// Init
// Statics
// Export
exports.default = TextFormat;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 136 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.Font
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function lime_app_Promise() {return __webpack_require__(39);}
function js_Browser() {return __webpack_require__(11);}
function lime_utils_Log() {return __webpack_require__(23);}
function lime_app_Future() {return __webpack_require__(24);}
function lime_net__$HTTPRequest_$lime_$text_$Font() {return __webpack_require__(336);}
function lime_utils_Assets() {return __webpack_require__(61);}
// Constructor
var Font = function(name) {
	if(name != null) {
		this.name = name;
	}
	if(this.__fontID != null) {
		if((lime_utils_Assets().default).isLocal(this.__fontID)) {
			this.__fromBytes((lime_utils_Assets().default).getBytes(this.__fontID));
		}
	} else if(this.__fontPath != null) {
		this.__fromFile(this.__fontPath);
	}
}
// Meta
Font.__name__ = ["lime","text","Font"];
Font.prototype = {
	decompose: function() {
		return null;
	},
	getGlyph: function(character) {
		return -1;
	},
	getGlyphs: function(characters) {
		if(characters == null) {
			characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^`'\"/\\&*()[]{}<>|:;_-+=?,. ";
		}
		return null;
	},
	getGlyphMetrics: function(glyph) {
		return null;
	},
	renderGlyph: function(glyph,fontSize) {
		return null;
	},
	renderGlyphs: function(glyphs,fontSize) {
		return null;
	},
	__copyFrom: function(other) {
		if(other != null) {
			this.ascender = other.ascender;
			this.descender = other.descender;
			this.height = other.height;
			this.name = other.name;
			this.numGlyphs = other.numGlyphs;
			this.src = other.src;
			this.underlinePosition = other.underlinePosition;
			this.underlineThickness = other.underlineThickness;
			this.unitsPerEM = other.unitsPerEM;
			this.__fontID = other.__fontID;
			this.__fontPath = other.__fontPath;
		}
	},
	__fromBytes: function(bytes) {
		this.__fontPath = null;
	},
	__fromFile: function(path) {
		this.__fontPath = path;
	},
	__initializeSource: function() {
	},
	__loadFromName: function(name) {
		var _gthis = this;
		var promise = new (lime_app_Promise().default)();
		this.name = name;
		var ua = (js_Browser().default).get_navigator().userAgent.toLowerCase();
		var isSafari = ua.indexOf(" safari/") >= 0 && ua.indexOf(" chrome/") < 0;
		if(!isSafari && ((js_Browser().default).get_document().fonts && ($_=(js_Browser().default).get_document().fonts,$bind($_,$_.load)))) {
			(js_Browser().default).get_document().fonts.load("1em '" + name + "'").then(function(_) {
				promise.complete(_gthis);
			},function(_1) {
				(lime_utils_Log().default).warn("Could not load web font \"" + name + "\"",{ fileName : "Font.hx", lineNumber : 516, className : "lime.text.Font", methodName : "__loadFromName"});
				promise.complete(_gthis);
			});
		} else {
			var node1 = Font.__measureFontNode("'" + name + "', sans-serif");
			var node2 = Font.__measureFontNode("'" + name + "', serif");
			var width1 = node1.offsetWidth;
			var width2 = node2.offsetWidth;
			var interval = -1;
			var timeout = 3000;
			var intervalLength = 50;
			var intervalCount = 0;
			var loaded;
			var timeExpired;
			var checkFont = function() {
				intervalCount += 1;
				if(node1.offsetWidth == width1) {
					loaded = node2.offsetWidth != width2;
				} else {
					loaded = true;
				}
				timeExpired = intervalCount * intervalLength >= timeout;
				if(loaded || timeExpired) {
					(js_Browser().default).get_window().clearInterval(interval);
					node1.parentNode.removeChild(node1);
					node2.parentNode.removeChild(node2);
					node1 = null;
					node2 = null;
					if(timeExpired) {
						(lime_utils_Log().default).warn("Could not load web font \"" + name + "\"",{ fileName : "Font.hx", lineNumber : 552, className : "lime.text.Font", methodName : "__loadFromName"});
					}
					promise.complete(_gthis);
				}
			};
			interval = (js_Browser().default).get_window().setInterval(checkFont,intervalLength);
		}
		return promise.future;
	},
	__setSize: function(size) {
	}
};
Font.prototype.__class__ = $hxClasses["lime.text.Font"] = Font;
// Init
// Statics
Font.fromBytes = function(bytes) {
	if(bytes == null) {
		return null;
	}
	var font = new Font();
	font.__fromBytes(bytes);
	return font;
}
Font.fromFile = function(path) {
	if(path == null) {
		return null;
	}
	var font = new Font();
	font.__fromFile(path);
	return font;
}
Font.loadFromBytes = function(bytes) {
	return (lime_app_Future().default).withValue(Font.fromBytes(bytes));
}
Font.loadFromFile = function(path) {
	var request = new (lime_net__$HTTPRequest_$lime_$text_$Font().default)();
	return request.load(path).then(function(font) {
		if(font != null) {
			return (lime_app_Future().default).withValue(font);
		} else {
			return (lime_app_Future().default).withError("");
		}
	});
}
Font.loadFromName = function(path) {
	var font = new Font();
	return font.__loadFromName(path);
}
Font.__measureFontNode = function(fontFamily) {
	var node = (js_Browser().default).get_document().createElement("span");
	node.setAttribute("aria-hidden","true");
	var text = (js_Browser().default).get_document().createTextNode("BESbswy");
	node.appendChild(text);
	var style = node.style;
	style.display = "block";
	style.position = "absolute";
	style.top = "-9999px";
	style.left = "-9999px";
	style.fontSize = "300px";
	style.width = "auto";
	style.height = "auto";
	style.lineHeight = "normal";
	style.margin = "0";
	style.padding = "0";
	style.fontVariant = "normal";
	style.whiteSpace = "nowrap";
	style.fontFamily = fontFamily;
	(js_Browser().default).get_document().body.appendChild(node);
	return node;
}
// Export
exports.default = Font;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 137 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.AssetLibrary
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function js_Boot() {return __webpack_require__(20);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function lime_media_AudioBuffer() {return __webpack_require__(88);}
function Type() {return __webpack_require__(10);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function lime_utils__$Bytes_Bytes_$Impl_$() {return __webpack_require__(74);}
function lime_text_Font() {return __webpack_require__(136);}
function lime_graphics_Image() {return __webpack_require__(56);}
function lime_app_Future() {return __webpack_require__(24);}
function lime_app_Promise() {return __webpack_require__(39);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function lime_utils_Log() {return __webpack_require__(23);}
function lime_net__$HTTPRequest_$String() {return __webpack_require__(192);}
function Reflect() {return __webpack_require__(5);}
function Std() {return __webpack_require__(4);}
function lime_utils_AssetManifest() {return __webpack_require__(103);}
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
// Constructor
var AssetLibrary = function() {
	this.types = new (haxe_ds_StringMap().default)();
	this.sizes = new (haxe_ds_StringMap().default)();
	this.preload = new (haxe_ds_StringMap().default)();
	this.paths = new (haxe_ds_StringMap().default)();
	this.pathGroups = new (haxe_ds_StringMap().default)();
	this.classTypes = new (haxe_ds_StringMap().default)();
	this.cachedText = new (haxe_ds_StringMap().default)();
	this.cachedImages = new (haxe_ds_StringMap().default)();
	this.cachedFonts = new (haxe_ds_StringMap().default)();
	this.cachedBytes = new (haxe_ds_StringMap().default)();
	this.cachedAudioBuffers = new (haxe_ds_StringMap().default)();
	this.onChange = new (lime_app__$Event_$Void_$Void().default)();
	this.bytesLoaded = 0;
	this.bytesTotal = 0;
}
// Meta
AssetLibrary.__name__ = ["lime","utils","AssetLibrary"];
AssetLibrary.prototype = {
	exists: function(id,type) {
		var requestedType = type != null ? (js_Boot().default).__cast(type , String) : null;
		var assetType = this.types.get(id);
		if(assetType != null) {
			if(assetType == requestedType || (requestedType == "SOUND" || requestedType == "MUSIC") && (assetType == "MUSIC" || assetType == "SOUND")) {
				return true;
			}
			if(requestedType == "BINARY" || requestedType == null || assetType == "BINARY" && requestedType == "TEXT") {
				return true;
			}
		}
		return false;
	},
	getAsset: function(id,type) {
		switch(type) {
		case "BINARY":
			return this.getBytes(id);
		case "FONT":
			return this.getFont(id);
		case "IMAGE":
			return this.getImage(id);
		case "MUSIC":case "SOUND":
			return this.getAudioBuffer(id);
		case "TEMPLATE":
			throw new (js__$Boot_HaxeError().default)("Not sure how to get template: " + id);
			break;
		case "TEXT":
			return this.getText(id);
		default:
			throw new (js__$Boot_HaxeError().default)("Unknown asset type: " + type);
		}
	},
	getAudioBuffer: function(id) {
		if(this.cachedAudioBuffers.exists(id)) {
			return this.cachedAudioBuffers.get(id);
		} else if(this.classTypes.exists(id)) {
			return (lime_media_AudioBuffer().default).fromBytes((js_Boot().default).__cast((Type().default).createInstance(this.classTypes.get(id),[]) , (haxe_io_Bytes().default)));
		} else {
			return (lime_media_AudioBuffer().default).fromFile(this.paths.get(id));
		}
	},
	getBytes: function(id) {
		if(this.cachedBytes.exists(id)) {
			return this.cachedBytes.get(id);
		} else if(this.cachedText.exists(id)) {
			var bytes = (lime_utils__$Bytes_Bytes_$Impl_$().default).ofString(this.cachedText.get(id));
			this.cachedBytes.set(id,bytes);
			return bytes;
		} else if(this.classTypes.exists(id)) {
			return (js_Boot().default).__cast((Type().default).createInstance(this.classTypes.get(id),[]) , (haxe_io_Bytes().default));
		} else {
			return (lime_utils__$Bytes_Bytes_$Impl_$().default).fromFile(this.paths.get(id));
		}
	},
	getFont: function(id) {
		if(this.cachedFonts.exists(id)) {
			return this.cachedFonts.get(id);
		} else if(this.classTypes.exists(id)) {
			return (js_Boot().default).__cast((Type().default).createInstance(this.classTypes.get(id),[]) , (lime_text_Font().default));
		} else {
			return (lime_text_Font().default).fromFile(this.paths.get(id));
		}
	},
	getImage: function(id) {
		if(this.cachedImages.exists(id)) {
			return this.cachedImages.get(id);
		} else if(this.classTypes.exists(id)) {
			return (js_Boot().default).__cast((Type().default).createInstance(this.classTypes.get(id),[]) , (lime_graphics_Image().default));
		} else {
			return (lime_graphics_Image().default).fromFile(this.paths.get(id));
		}
	},
	getPath: function(id) {
		return this.paths.get(id);
	},
	getText: function(id) {
		if(this.cachedText.exists(id)) {
			return this.cachedText.get(id);
		} else {
			var bytes = this.getBytes(id);
			if(bytes == null) {
				return null;
			} else {
				return bytes.getString(0,bytes.get_length());
			}
		}
	},
	isLocal: function(id,type) {
		if(this.classTypes.exists(id)) {
			return true;
		}
		var requestedType = type != null ? (js_Boot().default).__cast(type , String) : null;
		switch(requestedType) {
		case "FONT":
			return this.cachedFonts.exists(id);
		case "IMAGE":
			return this.cachedImages.exists(id);
		case "MUSIC":case "SOUND":
			return this.cachedAudioBuffers.exists(id);
		default:
			if(!this.cachedBytes.exists(id)) {
				return this.cachedText.exists(id);
			} else {
				return true;
			}
		}
	},
	list: function(type) {
		var requestedType = type != null ? (js_Boot().default).__cast(type , String) : null;
		var items = [];
		var id = this.types.keys();
		while(id.hasNext()) {
			var id1 = id.next();
			if(requestedType == null || this.exists(id1,type)) {
				items.push(id1);
			}
		}
		return items;
	},
	loadAsset: function(id,type) {
		switch(type) {
		case "BINARY":
			return this.loadBytes(id);
		case "FONT":
			return this.loadFont(id);
		case "IMAGE":
			return this.loadImage(id);
		case "MUSIC":case "SOUND":
			return this.loadAudioBuffer(id);
		case "TEMPLATE":
			throw new (js__$Boot_HaxeError().default)("Not sure how to load template: " + id);
			break;
		case "TEXT":
			return this.loadText(id);
		default:
			throw new (js__$Boot_HaxeError().default)("Unknown asset type: " + type);
		}
	},
	load: function() {
		if(this.loaded) {
			return (lime_app_Future().default).withValue(this);
		}
		if(this.promise == null) {
			this.promise = new (lime_app_Promise().default)();
			this.bytesLoadedCache = new (haxe_ds_StringMap().default)();
			this.assetsLoaded = 0;
			this.assetsTotal = 1;
			var id = this.preload.keys();
			while(id.hasNext()) {
				var id1 = id.next();
				if(!this.preload.get(id1)) {
					continue;
				}
				(lime_utils_Log().default).verbose("Preloading asset: " + id1 + " [" + this.types.get(id1) + "]",{ fileName : "AssetLibrary.hx", lineNumber : 440, className : "lime.utils.AssetLibrary", methodName : "load"});
				var _g = this.types.get(id1);
				if(_g != null) {
					switch(_g) {
					case "BINARY":
						this.assetsTotal++;
						var future = this.loadBytes(id1);
						future.onProgress((function(id2,f) {
							return function(a1,a2) {
								f[0](id2[0],a1,a2);
							};
						})([id1],[$bind(this,this.load_onProgress)]));
						future.onError((function(id3,f1) {
							return function(a11) {
								f1[0](id3[0],a11);
							};
						})([id1],[$bind(this,this.load_onError)]));
						future.onComplete((function(id4,f2) {
							return function(a12) {
								f2[0](id4[0],a12);
							};
						})([id1],[$bind(this,this.loadBytes_onComplete)]));
						break;
					case "FONT":
						this.assetsTotal++;
						var future1 = this.loadFont(id1);
						future1.onProgress((function(id5,f3) {
							return function(a13,a21) {
								f3[0](id5[0],a13,a21);
							};
						})([id1],[$bind(this,this.load_onProgress)]));
						future1.onError((function(id6,f4) {
							return function(a14) {
								f4[0](id6[0],a14);
							};
						})([id1],[$bind(this,this.load_onError)]));
						future1.onComplete((function(id7,f5) {
							return function(a15) {
								f5[0](id7[0],a15);
							};
						})([id1],[$bind(this,this.loadFont_onComplete)]));
						break;
					case "IMAGE":
						this.assetsTotal++;
						var future2 = this.loadImage(id1);
						future2.onProgress((function(id8,f6) {
							return function(a16,a22) {
								f6[0](id8[0],a16,a22);
							};
						})([id1],[$bind(this,this.load_onProgress)]));
						future2.onError((function(id9,f7) {
							return function(a17) {
								f7[0](id9[0],a17);
							};
						})([id1],[$bind(this,this.load_onError)]));
						future2.onComplete((function(id10,f8) {
							return function(a18) {
								f8[0](id10[0],a18);
							};
						})([id1],[$bind(this,this.loadImage_onComplete)]));
						break;
					case "MUSIC":case "SOUND":
						this.assetsTotal++;
						var future3 = this.loadAudioBuffer(id1);
						future3.onProgress((function(id11,f9) {
							return function(a19,a23) {
								f9[0](id11[0],a19,a23);
							};
						})([id1],[$bind(this,this.load_onProgress)]));
						future3.onError((function(id12,f10) {
							return function(a110) {
								f10[0](id12[0],a110);
							};
						})([id1],[$bind(this,this.load_onError)]));
						future3.onComplete((function(id13,f11) {
							return function(a111) {
								f11[0](id13[0],a111);
							};
						})([id1],[$bind(this,this.loadAudioBuffer_onComplete)]));
						break;
					case "TEXT":
						this.assetsTotal++;
						var future4 = this.loadText(id1);
						future4.onProgress((function(id14,f12) {
							return function(a112,a24) {
								f12[0](id14[0],a112,a24);
							};
						})([id1],[$bind(this,this.load_onProgress)]));
						future4.onError((function(id15,f13) {
							return function(a113) {
								f13[0](id15[0],a113);
							};
						})([id1],[$bind(this,this.load_onError)]));
						future4.onComplete((function(id16,f14) {
							return function(a114) {
								f14[0](id16[0],a114);
							};
						})([id1],[$bind(this,this.loadText_onComplete)]));
						break;
					default:
					}
				}
			}
			this.__assetLoaded(null);
		}
		return this.promise.future;
	},
	loadAudioBuffer: function(id) {
		if(this.cachedAudioBuffers.exists(id)) {
			return (lime_app_Future().default).withValue(this.cachedAudioBuffers.get(id));
		} else if(this.classTypes.exists(id)) {
			return (lime_app_Future().default).withValue((Type().default).createInstance(this.classTypes.get(id),[]));
		} else if(this.pathGroups.exists(id)) {
			return (lime_media_AudioBuffer().default).loadFromFiles(this.pathGroups.get(id));
		} else {
			return (lime_media_AudioBuffer().default).loadFromFile(this.paths.get(id));
		}
	},
	loadBytes: function(id) {
		if(this.cachedBytes.exists(id)) {
			return (lime_app_Future().default).withValue(this.cachedBytes.get(id));
		} else if(this.classTypes.exists(id)) {
			return (lime_app_Future().default).withValue((Type().default).createInstance(this.classTypes.get(id),[]));
		} else {
			return (lime_utils__$Bytes_Bytes_$Impl_$().default).loadFromFile(this.paths.get(id));
		}
	},
	loadFont: function(id) {
		if(this.cachedFonts.exists(id)) {
			return (lime_app_Future().default).withValue(this.cachedFonts.get(id));
		} else if(this.classTypes.exists(id)) {
			var font = (Type().default).createInstance(this.classTypes.get(id),[]);
			return font.__loadFromName(font.name);
		} else {
			return (lime_text_Font().default).loadFromName(this.paths.get(id));
		}
	},
	loadImage: function(id) {
		if(this.cachedImages.exists(id)) {
			return (lime_app_Future().default).withValue(this.cachedImages.get(id));
		} else if(this.classTypes.exists(id)) {
			return (lime_app_Future().default).withValue((Type().default).createInstance(this.classTypes.get(id),[]));
		} else {
			return (lime_graphics_Image().default).loadFromFile(this.paths.get(id));
		}
	},
	loadText: function(id) {
		if(this.cachedText.exists(id)) {
			return (lime_app_Future().default).withValue(this.cachedText.get(id));
		} else if(this.cachedBytes.exists(id) || this.classTypes.exists(id)) {
			var bytes = this.getBytes(id);
			if(bytes == null) {
				return (lime_app_Future().default).withValue(null);
			} else {
				var text = bytes.getString(0,bytes.get_length());
				this.cachedText.set(id,text);
				return (lime_app_Future().default).withValue(text);
			}
		} else {
			var request = new (lime_net__$HTTPRequest_$String().default)();
			return request.load(this.paths.get(id));
		}
	},
	unload: function() {
	},
	__assetLoaded: function(id) {
		this.assetsLoaded++;
		if(id != null) {
			(lime_utils_Log().default).verbose("Loaded asset: " + id + " [" + this.types.get(id) + "] (" + (this.assetsLoaded - 1) + "/" + (this.assetsTotal - 1) + ")",{ fileName : "AssetLibrary.hx", lineNumber : 686, className : "lime.utils.AssetLibrary", methodName : "__assetLoaded"});
		}
		if(id != null) {
			var size = this.sizes.get(id);
			if(!this.bytesLoadedCache.exists(id)) {
				this.bytesLoaded += size;
			} else {
				var cache = this.bytesLoadedCache.get(id);
				if(cache < size) {
					this.bytesLoaded += size - cache;
				}
			}
			this.bytesLoadedCache.set(id,size);
		}
		if(this.assetsLoaded < this.assetsTotal) {
			this.promise.progress(this.bytesLoaded,this.bytesTotal);
		} else {
			this.loaded = true;
			this.promise.progress(this.bytesTotal,this.bytesTotal);
			this.promise.complete(this);
		}
	},
	__cacheBreak: function(path) {
		return path;
	},
	__fromManifest: function(manifest) {
		var hasSize = manifest.version >= 2;
		var size;
		var id;
		var pathGroup;
		var classRef;
		var basePath = manifest.rootPath;
		if(basePath == null) {
			basePath = "";
		}
		if(basePath != "") {
			basePath += "/";
		}
		var _g = 0;
		var _g1 = manifest.assets;
		while(_g < _g1.length) {
			var asset = _g1[_g];
			++_g;
			if(hasSize) {
				size = asset.size;
			} else {
				size = 100;
			}
			id = asset.id;
			if((Reflect().default).hasField(asset,"path")) {
				this.paths.set(id,this.__cacheBreak(basePath + (Std().default).string((Reflect().default).field(asset,"path"))));
			}
			if((Reflect().default).hasField(asset,"pathGroup")) {
				pathGroup = (Reflect().default).field(asset,"pathGroup");
				var _g3 = 0;
				var _g2 = pathGroup.length;
				while(_g3 < _g2) {
					var i = _g3++;
					pathGroup[i] = this.__cacheBreak(basePath + pathGroup[i]);
				}
				this.pathGroups.set(id,pathGroup);
			}
			this.sizes.set(id,size);
			this.types.set(id,asset.type);
			if((Reflect().default).hasField(asset,"preload")) {
				this.preload.set(id,(Reflect().default).field(asset,"preload"));
			}
			if((Reflect().default).hasField(asset,"className")) {
				classRef = (Type().default).resolveClass((Reflect().default).field(asset,"className"));
				this.classTypes.set(id,classRef);
			}
		}
		this.bytesTotal = 0;
		var _g4 = 0;
		var _g11 = manifest.assets;
		while(_g4 < _g11.length) {
			var asset1 = _g11[_g4];
			++_g4;
			id = asset1.id;
			if(this.preload.exists(id) && this.preload.get(id)) {
				this.bytesTotal += this.sizes.get(id);
			}
		}
	},
	loadAudioBuffer_onComplete: function(id,audioBuffer) {
		this.cachedAudioBuffers.set(id,audioBuffer);
		if(this.pathGroups.exists(id)) {
			var pathGroup = this.pathGroups.get(id);
			var otherID = this.pathGroups.keys();
			while(otherID.hasNext()) {
				var otherID1 = otherID.next();
				if(otherID1 == id) {
					continue;
				}
				var _g = 0;
				while(_g < pathGroup.length) {
					var path = pathGroup[_g];
					++_g;
					if(this.pathGroups.get(otherID1).indexOf(path) > -1) {
						this.cachedAudioBuffers.set(otherID1,audioBuffer);
						break;
					}
				}
			}
		}
		this.__assetLoaded(id);
	},
	loadBytes_onComplete: function(id,bytes) {
		this.cachedBytes.set(id,bytes);
		this.__assetLoaded(id);
	},
	loadFont_onComplete: function(id,font) {
		this.cachedFonts.set(id,font);
		this.__assetLoaded(id);
	},
	loadImage_onComplete: function(id,image) {
		this.cachedImages.set(id,image);
		this.__assetLoaded(id);
	},
	loadText_onComplete: function(id,text) {
		this.cachedText.set(id,text);
		this.__assetLoaded(id);
	},
	load_onError: function(id,message) {
		if(message != null && message != "") {
			this.promise.error("Error loading asset \"" + id + "\": " + (Std().default).string(message));
		} else {
			this.promise.error("Error loading asset \"" + id + "\"");
		}
	},
	load_onProgress: function(id,bytesLoaded,bytesTotal) {
		if(bytesLoaded > 0) {
			var size = this.sizes.get(id);
			var percent;
			if(bytesTotal > 0) {
				percent = bytesLoaded / bytesTotal;
				if(percent > 1) {
					percent = 1;
				}
				bytesLoaded = Math.floor(percent * size);
			} else if(bytesLoaded > size) {
				bytesLoaded = size;
			}
			if(this.bytesLoadedCache.exists(id)) {
				var cache = this.bytesLoadedCache.get(id);
				if(bytesLoaded != cache) {
					this.bytesLoaded += bytesLoaded - cache;
				}
			} else {
				this.bytesLoaded += bytesLoaded;
			}
			this.bytesLoadedCache.set(id,bytesLoaded);
			this.promise.progress(this.bytesLoaded,this.bytesTotal);
		}
	}
};
AssetLibrary.prototype.__class__ = $hxClasses["lime.utils.AssetLibrary"] = AssetLibrary;
// Init
// Statics
AssetLibrary.fromBytes = function(bytes,rootPath) {
	return AssetLibrary.fromManifest((lime_utils_AssetManifest().default).fromBytes(bytes,rootPath));
}
AssetLibrary.fromFile = function(path,rootPath) {
	return AssetLibrary.fromManifest((lime_utils_AssetManifest().default).fromFile(path,rootPath));
}
AssetLibrary.fromManifest = function(manifest) {
	if(manifest == null) {
		return null;
	}
	var library = null;
	if(manifest.libraryType == null) {
		library = new AssetLibrary();
	} else {
		var libraryClass = (Type().default).resolveClass(manifest.libraryType);
		if(libraryClass != null) {
			library = (Type().default).createInstance(libraryClass,manifest.libraryArgs);
		} else {
			(lime_utils_Log().default).warn("Could not find library type: " + manifest.libraryType,{ fileName : "AssetLibrary.hx", lineNumber : 140, className : "lime.utils.AssetLibrary", methodName : "fromManifest"});
			return null;
		}
	}
	library.__fromManifest(manifest);
	return library;
}
AssetLibrary.loadFromBytes = function(bytes,rootPath) {
	return (lime_utils_AssetManifest().default).loadFromBytes(bytes,rootPath).then(function(manifest) {
		return AssetLibrary.loadFromManifest(manifest);
	});
}
AssetLibrary.loadFromFile = function(path,rootPath) {
	return (lime_utils_AssetManifest().default).loadFromFile(path,rootPath).then(function(manifest) {
		return AssetLibrary.loadFromManifest(manifest);
	});
}
AssetLibrary.loadFromManifest = function(manifest) {
	var library = AssetLibrary.fromManifest(manifest);
	if(library != null) {
		return library.load();
	} else {
		return (lime_app_Future().default).withError("Could not load asset manifest");
	}
}
// Export
exports.default = AssetLibrary;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 138 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.text.TextEngine
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function EReg() {return __webpack_require__(27);}
function lime_text__$UTF8String_UTF8String_$Impl_$() {return __webpack_require__(131);}
function Std() {return __webpack_require__(4);}
function openfl_text_TextField() {return __webpack_require__(130);}
function openfl__$internal_text_TextLayoutGroup() {return __webpack_require__(343);}
function js_Browser() {return __webpack_require__(11);}
function HxOverrides() {return __webpack_require__(7);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function StringTools() {return __webpack_require__(12);}
function openfl_text_Font() {return __webpack_require__(102);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
// Constructor
var TextEngine = function(textField) {
	this.textField = textField;
	this.width = 100;
	this.height = 100;
	this.set_text("");
	this.bounds = new (openfl_geom_Rectangle().default)(0,0,0,0);
	this.type = "dynamic";
	this.autoSize = "none";
	this.embedFonts = false;
	this.selectable = true;
	this.borderColor = 0;
	this.border = false;
	this.backgroundColor = 16777215;
	this.background = false;
	this.gridFitType = "pixel";
	this.maxChars = 0;
	this.multiline = false;
	this.sharpness = 0;
	this.scrollH = 0;
	this.scrollV = 1;
	this.wordWrap = false;
	this.lineAscents = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.lineBreaks = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.lineDescents = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.lineLeadings = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.lineHeights = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.lineWidths = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.layoutGroups = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.textFormatRanges = (openfl__$Vector_Vector_$Impl_$().default)._new();
	TextEngine.__canvas = (js_Browser().default).get_document().createElement("canvas");
	TextEngine.__context = TextEngine.__canvas.getContext("2d");
}
// Meta
TextEngine.__name__ = ["openfl","_internal","text","TextEngine"];
TextEngine.prototype = {
	createRestrictRegexp: function(restrict) {
		var declinedRange = new (EReg().default)("\\^(.-.|.)","gu");
		var declined = "";
		var accepted = declinedRange.map(restrict,function(ereg) {
			declined += ereg.matched(1);
			return "";
		});
		var testRegexpParts = [];
		if(accepted.length > 0) {
			testRegexpParts.push("[^" + restrict + "]");
		}
		if(declined.length > 0) {
			testRegexpParts.push("[" + declined + "]");
		}
		return new (EReg().default)("(" + testRegexpParts.join("|") + ")","g");
	},
	getBounds: function() {
		var padding = this.border ? 1 : 0;
		this.bounds.width = this.width + padding;
		this.bounds.height = this.height + padding;
	},
	getLine: function(index) {
		if(index < 0 || index > this.lineBreaks.get_length() + 1) {
			return null;
		}
		if(this.lineBreaks.get_length() == 0) {
			return this.text;
		} else {
			return (lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(this.text,index > 0 ? this.lineBreaks.get(index - 1) : 0,this.lineBreaks.get(index));
		}
	},
	getLineBreakIndex: function(startIndex) {
		if(startIndex == null) {
			startIndex = 0;
		}
		var br = (lime_text__$UTF8String_UTF8String_$Impl_$().default).indexOf(this.text,"
",startIndex);
		var cr = (lime_text__$UTF8String_UTF8String_$Impl_$().default).indexOf(this.text,"\n",startIndex);
		var lf = (lime_text__$UTF8String_UTF8String_$Impl_$().default).indexOf(this.text,"\r",startIndex);
		if(cr == -1 && br == -1) {
			return lf;
		}
		if(lf == -1 && br == -1) {
			return cr;
		}
		if(lf == -1 && cr == -1) {
			return br;
		}
		if(cr == -1) {
			return (Std().default)["int"](Math.min(br,lf));
		}
		if(lf == -1) {
			return (Std().default)["int"](Math.min(br,cr));
		}
		if(br == -1) {
			return (Std().default)["int"](Math.min(cr,lf));
		}
		return (Std().default)["int"](Math.min(Math.min(cr,lf),br));
	},
	getLineMeasurements: function() {
		this.lineAscents.set_length(0);
		this.lineDescents.set_length(0);
		this.lineLeadings.set_length(0);
		this.lineHeights.set_length(0);
		this.lineWidths.set_length(0);
		var currentLineAscent = 0.0;
		var currentLineDescent = 0.0;
		var currentLineLeading = null;
		var currentLineHeight = 0.0;
		var currentLineWidth = 0.0;
		var currentTextHeight = 0.0;
		this.textWidth = 0;
		this.textHeight = 0;
		this.numLines = 1;
		this.bottomScrollV = 0;
		this.maxScrollH = 0;
		var _g = 0;
		var _g1 = this.layoutGroups;
		while(_g < _g1.get_length()) {
			var group = _g1.get(_g);
			++_g;
			while(group.lineIndex > this.numLines - 1) {
				this.lineAscents.push(currentLineAscent);
				this.lineDescents.push(currentLineDescent);
				this.lineLeadings.push(currentLineLeading != null ? currentLineLeading : 0);
				this.lineHeights.push(currentLineHeight);
				this.lineWidths.push(currentLineWidth);
				currentLineAscent = 0;
				currentLineDescent = 0;
				currentLineLeading = null;
				currentLineHeight = 0;
				currentLineWidth = 0;
				this.numLines++;
				if(this.textHeight <= this.height - 2) {
					this.bottomScrollV++;
				}
			}
			currentLineAscent = Math.max(currentLineAscent,group.ascent);
			currentLineDescent = Math.max(currentLineDescent,group.descent);
			if(currentLineLeading == null) {
				currentLineLeading = group.leading;
			} else {
				currentLineLeading = (Std().default)["int"](Math.max(currentLineLeading,group.leading));
			}
			currentLineHeight = Math.max(currentLineHeight,group.height);
			currentLineWidth = group.offsetX - 2 + group.width;
			if(currentLineWidth > this.textWidth) {
				this.textWidth = currentLineWidth;
			}
			currentTextHeight = group.offsetY - 2 + group.ascent + group.descent;
			if(currentTextHeight > this.textHeight) {
				this.textHeight = currentTextHeight;
			}
		}
		if(this.textHeight == 0 && this.textField != null) {
			var currentFormat = this.textField.__textFormat;
			var ascent;
			var descent;
			var leading;
			var heightValue;
			if(currentFormat.__ascent != null) {
				ascent = currentFormat.size * currentFormat.__ascent;
				descent = currentFormat.size * currentFormat.__descent;
			} else {
				ascent = currentFormat.size;
				descent = currentFormat.size * 0.185;
			}
			leading = currentFormat.leading;
			heightValue = ascent + descent + leading;
			currentLineAscent = ascent;
			currentLineDescent = descent;
			currentLineLeading = leading;
			currentTextHeight = ascent + descent;
			this.textHeight = currentTextHeight;
		}
		this.lineAscents.push(currentLineAscent);
		this.lineDescents.push(currentLineDescent);
		this.lineLeadings.push(currentLineLeading != null ? currentLineLeading : 0);
		this.lineHeights.push(currentLineHeight);
		this.lineWidths.push(currentLineWidth);
		if(this.numLines == 1) {
			this.bottomScrollV = 1;
			if(currentLineLeading > 0) {
				this.textHeight += currentLineLeading;
			}
		} else if(this.textHeight <= this.height - 2) {
			this.bottomScrollV++;
		}
		if(this.autoSize != "none") {
			var _g2 = this.autoSize;
			switch(_g2) {
			case "center":case "left":case "right":
				if(!this.wordWrap) {
					this.width = this.textWidth + 4;
				}
				this.height = this.textHeight + 4;
				this.bottomScrollV = this.numLines;
				break;
			default:
			}
		}
		if(this.textWidth > this.width - 4) {
			this.maxScrollH = (Std().default)["int"](this.textWidth - this.width + 4);
		} else {
			this.maxScrollH = 0;
		}
		this.maxScrollV = this.numLines - this.bottomScrollV + 1;
	},
	getLayoutGroups: function() {
		var _gthis = this;
		this.layoutGroups.set_length(0);
		if(this.text == null || (lime_text__$UTF8String_UTF8String_$Impl_$().default).equals(this.text,"")) {
			return;
		}
		var rangeIndex = -1;
		var formatRange = null;
		var font = null;
		var currentFormat = (openfl_text_TextField().default).__defaultTextFormat.clone();
		var leading = 0;
		var ascent = 0.0;
		var maxAscent = 0.0;
		var descent = 0.0;
		var layoutGroup = null;
		var positions = null;
		var widthValue = 0.0;
		var heightValue = 0.0;
		var maxHeightValue = 0.0;
		var previousSpaceIndex = -2;
		var spaceIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).indexOf(this.text," ");
		var breakIndex = this.getLineBreakIndex();
		var offsetX = 2.0;
		var offsetY = 2.0;
		var textIndex = 0;
		var lineIndex = 0;
		var lineFormat = null;
		if(rangeIndex < _gthis.textFormatRanges.get_length() - 1) {
			++rangeIndex;
			formatRange = _gthis.textFormatRanges.get(rangeIndex);
			currentFormat.__merge(formatRange.format);
			TextEngine.__context.font = TextEngine.getFont(currentFormat);
			if(currentFormat.__ascent != null) {
				ascent = currentFormat.size * currentFormat.__ascent;
				descent = currentFormat.size * currentFormat.__descent;
			} else {
				ascent = currentFormat.size;
				descent = currentFormat.size * 0.185;
			}
			leading = currentFormat.leading;
			heightValue = ascent + descent + leading;
		}
		if(heightValue > maxHeightValue) {
			maxHeightValue = heightValue;
		}
		if(ascent > maxAscent) {
			maxAscent = ascent;
		}
		lineFormat = formatRange.format;
		var wrap;
		var maxLoops = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.text) + 1;
		while(textIndex < maxLoops) if(breakIndex > -1 && (spaceIndex == -1 || breakIndex < spaceIndex) && formatRange.end >= breakIndex) {
			if(textIndex <= breakIndex) {
				if(this.wordWrap && previousSpaceIndex <= textIndex && this.width >= 4) {
					var text = (lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(_gthis.text,textIndex,breakIndex);
					var tempWidth = TextEngine.__context.measureText(text).width;
					while(offsetX + tempWidth > _gthis.width - 2) {
						var i = 1;
						while(textIndex + i < breakIndex + 1) {
							var text1 = (lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(_gthis.text,textIndex,i);
							tempWidth = TextEngine.__context.measureText(text1).width;
							if(offsetX + tempWidth > _gthis.width - 2) {
								--i;
								break;
							}
							++i;
						}
						if(i == 0 && tempWidth > _gthis.width - 4) {
							i = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(_gthis.text);
						}
						if(i == 0) {
							offsetX = 2;
							offsetY += layoutGroup.height;
							++lineIndex;
							break;
						} else {
							var endIndex = textIndex + i;
							if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
								layoutGroup = new (openfl__$internal_text_TextLayoutGroup().default)(formatRange.format,textIndex,endIndex);
								_gthis.layoutGroups.push(layoutGroup);
							} else {
								layoutGroup.format = formatRange.format;
								layoutGroup.startIndex = textIndex;
								layoutGroup.endIndex = endIndex;
							}
							var text2 = _gthis.text;
							var endIndex1 = textIndex + i;
							var positions1 = [];
							if(_gthis.__useIntAdvances == null) {
								_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
							}
							if(_gthis.__useIntAdvances) {
								var previousWidth = 0.0;
								var width;
								var _g1 = textIndex;
								var _g = endIndex1;
								while(_g1 < _g) {
									var i1 = _g1++;
									width = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text2,textIndex,i1 + 1)).width;
									positions1.push(width - previousWidth);
									previousWidth = width;
								}
							} else {
								var _g11 = textIndex;
								var _g2 = endIndex1;
								while(_g11 < _g2) {
									var i2 = _g11++;
									var advance;
									if(i2 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text2) - 1) {
										var nextWidth = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text2,i2 + 1)).width;
										var twoWidths = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text2,i2,2)).width;
										advance = twoWidths - nextWidth;
									} else {
										advance = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text2,i2)).width;
									}
									positions1.push(advance);
								}
							}
							layoutGroup.positions = positions1;
							layoutGroup.offsetX = offsetX;
							layoutGroup.ascent = ascent;
							layoutGroup.descent = descent;
							layoutGroup.leading = leading;
							layoutGroup.lineIndex = lineIndex;
							layoutGroup.offsetY = offsetY;
							var positions2 = layoutGroup.positions;
							var width1 = 0.0;
							var _g3 = 0;
							while(_g3 < positions2.length) {
								var position = positions2[_g3];
								++_g3;
								width1 += position;
							}
							layoutGroup.width = width1;
							layoutGroup.height = heightValue;
							layoutGroup = null;
							if(ascent > maxAscent) {
								maxAscent = ascent;
							}
							if(heightValue > maxHeightValue) {
								maxHeightValue = heightValue;
							}
							var _g4 = 0;
							var _g12 = _gthis.layoutGroups;
							while(_g4 < _g12.get_length()) {
								var lg = _g12.get(_g4);
								++_g4;
								if(lg.lineIndex < lineIndex) {
									continue;
								}
								if(lg.lineIndex > lineIndex) {
									break;
								}
								lg.ascent = maxAscent;
								lg.height = maxHeightValue;
							}
							offsetY += maxHeightValue;
							maxAscent = 0.0;
							maxHeightValue = 0.0;
							++lineIndex;
							offsetX = 2;
							textIndex += i;
							var text3 = _gthis.text;
							var positions3 = [];
							if(_gthis.__useIntAdvances == null) {
								_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
							}
							if(_gthis.__useIntAdvances) {
								var previousWidth1 = 0.0;
								var width2;
								var _g13 = textIndex;
								var _g5 = breakIndex;
								while(_g13 < _g5) {
									var i3 = _g13++;
									width2 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text3,textIndex,i3 + 1)).width;
									positions3.push(width2 - previousWidth1);
									previousWidth1 = width2;
								}
							} else {
								var _g14 = textIndex;
								var _g6 = breakIndex;
								while(_g14 < _g6) {
									var i4 = _g14++;
									var advance1;
									if(i4 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text3) - 1) {
										var nextWidth1 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text3,i4 + 1)).width;
										var twoWidths1 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text3,i4,2)).width;
										advance1 = twoWidths1 - nextWidth1;
									} else {
										advance1 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text3,i4)).width;
									}
									positions3.push(advance1);
								}
							}
							positions = positions3;
							var width3 = 0.0;
							var _g7 = 0;
							while(_g7 < positions.length) {
								var position1 = positions[_g7];
								++_g7;
								width3 += position1;
							}
							widthValue = width3;
							tempWidth = widthValue;
						}
					}
				}
				if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
					layoutGroup = new (openfl__$internal_text_TextLayoutGroup().default)(formatRange.format,textIndex,breakIndex);
					_gthis.layoutGroups.push(layoutGroup);
				} else {
					layoutGroup.format = formatRange.format;
					layoutGroup.startIndex = textIndex;
					layoutGroup.endIndex = breakIndex;
				}
				var text4 = this.text;
				var positions4 = [];
				if(_gthis.__useIntAdvances == null) {
					_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
				}
				if(_gthis.__useIntAdvances) {
					var previousWidth2 = 0.0;
					var width4;
					var _g15 = textIndex;
					var _g8 = breakIndex;
					while(_g15 < _g8) {
						var i5 = _g15++;
						width4 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text4,textIndex,i5 + 1)).width;
						positions4.push(width4 - previousWidth2);
						previousWidth2 = width4;
					}
				} else {
					var _g16 = textIndex;
					var _g9 = breakIndex;
					while(_g16 < _g9) {
						var i6 = _g16++;
						var advance2;
						if(i6 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text4) - 1) {
							var nextWidth2 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text4,i6 + 1)).width;
							var twoWidths2 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text4,i6,2)).width;
							advance2 = twoWidths2 - nextWidth2;
						} else {
							advance2 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text4,i6)).width;
						}
						positions4.push(advance2);
					}
				}
				layoutGroup.positions = positions4;
				layoutGroup.offsetX = offsetX;
				layoutGroup.ascent = ascent;
				layoutGroup.descent = descent;
				layoutGroup.leading = leading;
				layoutGroup.lineIndex = lineIndex;
				layoutGroup.offsetY = offsetY;
				var positions5 = layoutGroup.positions;
				var width5 = 0.0;
				var _g10 = 0;
				while(_g10 < positions5.length) {
					var position2 = positions5[_g10];
					++_g10;
					width5 += position2;
				}
				layoutGroup.width = width5;
				layoutGroup.height = heightValue;
				layoutGroup = null;
			} else if(layoutGroup != null && layoutGroup.startIndex != layoutGroup.endIndex) {
				if(layoutGroup.endIndex == spaceIndex) {
					layoutGroup.width -= layoutGroup.getAdvance(layoutGroup.positions.length - 1);
				}
				layoutGroup = null;
			}
			if(formatRange.end == breakIndex) {
				if(rangeIndex < _gthis.textFormatRanges.get_length() - 1) {
					++rangeIndex;
					formatRange = _gthis.textFormatRanges.get(rangeIndex);
					currentFormat.__merge(formatRange.format);
					TextEngine.__context.font = TextEngine.getFont(currentFormat);
					if(currentFormat.__ascent != null) {
						ascent = currentFormat.size * currentFormat.__ascent;
						descent = currentFormat.size * currentFormat.__descent;
					} else {
						ascent = currentFormat.size;
						descent = currentFormat.size * 0.185;
					}
					leading = currentFormat.leading;
					heightValue = ascent + descent + leading;
				}
				if(heightValue > maxHeightValue) {
					maxHeightValue = heightValue;
				}
				if(ascent > maxAscent) {
					maxAscent = ascent;
				}
				lineFormat = formatRange.format;
			}
			if(breakIndex >= (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.text) - 1) {
				offsetY -= maxHeightValue;
			}
			if(ascent > maxAscent) {
				maxAscent = ascent;
			}
			if(heightValue > maxHeightValue) {
				maxHeightValue = heightValue;
			}
			var _g17 = 0;
			var _g18 = _gthis.layoutGroups;
			while(_g17 < _g18.get_length()) {
				var lg1 = _g18.get(_g17);
				++_g17;
				if(lg1.lineIndex < lineIndex) {
					continue;
				}
				if(lg1.lineIndex > lineIndex) {
					break;
				}
				lg1.ascent = maxAscent;
				lg1.height = maxHeightValue;
			}
			offsetY += maxHeightValue;
			maxAscent = 0.0;
			maxHeightValue = 0.0;
			++lineIndex;
			offsetX = 2;
			textIndex = breakIndex + 1;
			breakIndex = this.getLineBreakIndex(textIndex);
		} else if(formatRange.end >= spaceIndex && spaceIndex > -1 && textIndex < formatRange.end) {
			if(layoutGroup != null && layoutGroup.startIndex != layoutGroup.endIndex) {
				layoutGroup = null;
			}
			wrap = false;
			while(textIndex != formatRange.end) {
				var endIndex2 = -1;
				if(spaceIndex == -1) {
					endIndex2 = breakIndex;
				} else {
					endIndex2 = spaceIndex + 1;
					if(breakIndex > -1 && breakIndex < endIndex2) {
						endIndex2 = breakIndex;
					}
				}
				if(endIndex2 == -1 || endIndex2 > formatRange.end) {
					endIndex2 = formatRange.end;
				}
				var text5 = this.text;
				var positions6 = [];
				if(_gthis.__useIntAdvances == null) {
					_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
				}
				if(_gthis.__useIntAdvances) {
					var previousWidth3 = 0.0;
					var width6;
					var _g19 = textIndex;
					var _g20 = endIndex2;
					while(_g19 < _g20) {
						var i7 = _g19++;
						width6 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text5,textIndex,i7 + 1)).width;
						positions6.push(width6 - previousWidth3);
						previousWidth3 = width6;
					}
				} else {
					var _g110 = textIndex;
					var _g21 = endIndex2;
					while(_g110 < _g21) {
						var i8 = _g110++;
						var advance3;
						if(i8 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text5) - 1) {
							var nextWidth3 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text5,i8 + 1)).width;
							var twoWidths3 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text5,i8,2)).width;
							advance3 = twoWidths3 - nextWidth3;
						} else {
							advance3 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text5,i8)).width;
						}
						positions6.push(advance3);
					}
				}
				positions = positions6;
				var width7 = 0.0;
				var _g22 = 0;
				while(_g22 < positions.length) {
					var position3 = positions[_g22];
					++_g22;
					width7 += position3;
				}
				widthValue = width7;
				if(lineFormat.align == "justify") {
					if(positions.length > 0 && textIndex == previousSpaceIndex) {
						++textIndex;
						var spaceWidth = positions.shift();
						widthValue -= spaceWidth;
						offsetX += spaceWidth;
					}
					if(positions.length > 0 && endIndex2 == spaceIndex + 1) {
						--endIndex2;
						var spaceWidth1 = positions.pop();
						widthValue -= spaceWidth1;
					}
				}
				if(this.wordWrap) {
					if(offsetX + widthValue > this.width - 2) {
						wrap = true;
						if(positions.length > 0 && endIndex2 == spaceIndex + 1) {
							var lastPosition = positions[positions.length - 1];
							var spaceWidth2 = lastPosition;
							if(offsetX + widthValue - spaceWidth2 <= this.width - 2) {
								wrap = false;
							}
						}
					}
				}
				if(wrap) {
					if(lineFormat.align != "justify" && (layoutGroup != null || this.layoutGroups.get_length() > 0)) {
						var previous = layoutGroup;
						if(previous == null) {
							previous = this.layoutGroups.get(this.layoutGroups.get_length() - 1);
						}
						previous.width -= previous.getAdvance(previous.positions.length - 1);
						previous.endIndex--;
					}
					var i9 = this.layoutGroups.get_length() - 1;
					var offsetCount = 0;
					while(true) {
						layoutGroup = this.layoutGroups.get(i9);
						if(i9 > 0 && layoutGroup.startIndex > previousSpaceIndex) {
							++offsetCount;
						} else {
							break;
						}
						--i9;
					}
					if(textIndex == previousSpaceIndex + 1) {
						if(ascent > maxAscent) {
							maxAscent = ascent;
						}
						if(heightValue > maxHeightValue) {
							maxHeightValue = heightValue;
						}
						var _g23 = 0;
						var _g111 = _gthis.layoutGroups;
						while(_g23 < _g111.get_length()) {
							var lg2 = _g111.get(_g23);
							++_g23;
							if(lg2.lineIndex < lineIndex) {
								continue;
							}
							if(lg2.lineIndex > lineIndex) {
								break;
							}
							lg2.ascent = maxAscent;
							lg2.height = maxHeightValue;
						}
						offsetY += maxHeightValue;
						maxAscent = 0.0;
						maxHeightValue = 0.0;
						++lineIndex;
						offsetX = 2;
					}
					offsetX = 2;
					if(offsetCount > 0) {
						var bumpX = this.layoutGroups.get(this.layoutGroups.get_length() - offsetCount).offsetX;
						var _g112 = this.layoutGroups.get_length() - offsetCount;
						var _g24 = this.layoutGroups.get_length();
						while(_g112 < _g24) {
							var i10 = _g112++;
							layoutGroup = this.layoutGroups.get(i10);
							layoutGroup.offsetX -= bumpX;
							layoutGroup.offsetY = offsetY;
							layoutGroup.lineIndex = lineIndex;
							offsetX += layoutGroup.width;
						}
					}
					if(this.width >= 4) {
						var text6 = (lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(_gthis.text,textIndex,endIndex2);
						var tempWidth1 = TextEngine.__context.measureText(text6).width;
						while(offsetX + tempWidth1 > _gthis.width - 2) {
							var i11 = 1;
							while(textIndex + i11 < endIndex2 + 1) {
								var text7 = (lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(_gthis.text,textIndex,i11);
								tempWidth1 = TextEngine.__context.measureText(text7).width;
								if(offsetX + tempWidth1 > _gthis.width - 2) {
									--i11;
									break;
								}
								++i11;
							}
							if(i11 == 0 && tempWidth1 > _gthis.width - 4) {
								i11 = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(_gthis.text);
							}
							if(i11 == 0) {
								offsetX = 2;
								offsetY += layoutGroup.height;
								++lineIndex;
								break;
							} else {
								var endIndex3 = textIndex + i11;
								if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
									layoutGroup = new (openfl__$internal_text_TextLayoutGroup().default)(formatRange.format,textIndex,endIndex3);
									_gthis.layoutGroups.push(layoutGroup);
								} else {
									layoutGroup.format = formatRange.format;
									layoutGroup.startIndex = textIndex;
									layoutGroup.endIndex = endIndex3;
								}
								var text8 = _gthis.text;
								var endIndex4 = textIndex + i11;
								var positions7 = [];
								if(_gthis.__useIntAdvances == null) {
									_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
								}
								if(_gthis.__useIntAdvances) {
									var previousWidth4 = 0.0;
									var width8;
									var _g113 = textIndex;
									var _g25 = endIndex4;
									while(_g113 < _g25) {
										var i12 = _g113++;
										width8 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text8,textIndex,i12 + 1)).width;
										positions7.push(width8 - previousWidth4);
										previousWidth4 = width8;
									}
								} else {
									var _g114 = textIndex;
									var _g26 = endIndex4;
									while(_g114 < _g26) {
										var i13 = _g114++;
										var advance4;
										if(i13 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text8) - 1) {
											var nextWidth4 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text8,i13 + 1)).width;
											var twoWidths4 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text8,i13,2)).width;
											advance4 = twoWidths4 - nextWidth4;
										} else {
											advance4 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text8,i13)).width;
										}
										positions7.push(advance4);
									}
								}
								layoutGroup.positions = positions7;
								layoutGroup.offsetX = offsetX;
								layoutGroup.ascent = ascent;
								layoutGroup.descent = descent;
								layoutGroup.leading = leading;
								layoutGroup.lineIndex = lineIndex;
								layoutGroup.offsetY = offsetY;
								var positions8 = layoutGroup.positions;
								var width9 = 0.0;
								var _g27 = 0;
								while(_g27 < positions8.length) {
									var position4 = positions8[_g27];
									++_g27;
									width9 += position4;
								}
								layoutGroup.width = width9;
								layoutGroup.height = heightValue;
								layoutGroup = null;
								if(ascent > maxAscent) {
									maxAscent = ascent;
								}
								if(heightValue > maxHeightValue) {
									maxHeightValue = heightValue;
								}
								var _g28 = 0;
								var _g115 = _gthis.layoutGroups;
								while(_g28 < _g115.get_length()) {
									var lg3 = _g115.get(_g28);
									++_g28;
									if(lg3.lineIndex < lineIndex) {
										continue;
									}
									if(lg3.lineIndex > lineIndex) {
										break;
									}
									lg3.ascent = maxAscent;
									lg3.height = maxHeightValue;
								}
								offsetY += maxHeightValue;
								maxAscent = 0.0;
								maxHeightValue = 0.0;
								++lineIndex;
								offsetX = 2;
								textIndex += i11;
								var text9 = _gthis.text;
								var positions9 = [];
								if(_gthis.__useIntAdvances == null) {
									_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
								}
								if(_gthis.__useIntAdvances) {
									var previousWidth5 = 0.0;
									var width10;
									var _g116 = textIndex;
									var _g29 = endIndex2;
									while(_g116 < _g29) {
										var i14 = _g116++;
										width10 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text9,textIndex,i14 + 1)).width;
										positions9.push(width10 - previousWidth5);
										previousWidth5 = width10;
									}
								} else {
									var _g117 = textIndex;
									var _g30 = endIndex2;
									while(_g117 < _g30) {
										var i15 = _g117++;
										var advance5;
										if(i15 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text9) - 1) {
											var nextWidth5 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text9,i15 + 1)).width;
											var twoWidths5 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text9,i15,2)).width;
											advance5 = twoWidths5 - nextWidth5;
										} else {
											advance5 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text9,i15)).width;
										}
										positions9.push(advance5);
									}
								}
								positions = positions9;
								var width11 = 0.0;
								var _g31 = 0;
								while(_g31 < positions.length) {
									var position5 = positions[_g31];
									++_g31;
									width11 += position5;
								}
								widthValue = width11;
								tempWidth1 = widthValue;
							}
						}
					}
					if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
						layoutGroup = new (openfl__$internal_text_TextLayoutGroup().default)(formatRange.format,textIndex,endIndex2);
						_gthis.layoutGroups.push(layoutGroup);
					} else {
						layoutGroup.format = formatRange.format;
						layoutGroup.startIndex = textIndex;
						layoutGroup.endIndex = endIndex2;
					}
					layoutGroup.positions = positions;
					layoutGroup.offsetX = offsetX;
					layoutGroup.ascent = ascent;
					layoutGroup.descent = descent;
					layoutGroup.leading = leading;
					layoutGroup.lineIndex = lineIndex;
					layoutGroup.offsetY = offsetY;
					layoutGroup.width = widthValue;
					layoutGroup.height = heightValue;
					offsetX += widthValue;
					textIndex = endIndex2;
					wrap = false;
				} else {
					if(layoutGroup != null && textIndex == spaceIndex) {
						if(lineFormat.align != "justify") {
							layoutGroup.endIndex = spaceIndex;
							layoutGroup.positions = layoutGroup.positions.concat(positions);
							layoutGroup.width += widthValue;
						}
					} else if(layoutGroup == null || lineFormat.align == "justify") {
						if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
							layoutGroup = new (openfl__$internal_text_TextLayoutGroup().default)(formatRange.format,textIndex,endIndex2);
							_gthis.layoutGroups.push(layoutGroup);
						} else {
							layoutGroup.format = formatRange.format;
							layoutGroup.startIndex = textIndex;
							layoutGroup.endIndex = endIndex2;
						}
						layoutGroup.positions = positions;
						layoutGroup.offsetX = offsetX;
						layoutGroup.ascent = ascent;
						layoutGroup.descent = descent;
						layoutGroup.leading = leading;
						layoutGroup.lineIndex = lineIndex;
						layoutGroup.offsetY = offsetY;
						layoutGroup.width = widthValue;
						layoutGroup.height = heightValue;
					} else {
						layoutGroup.endIndex = endIndex2;
						layoutGroup.positions = layoutGroup.positions.concat(positions);
						layoutGroup.width += widthValue;
						if(breakIndex == endIndex2) {
							++endIndex2;
						}
					}
					offsetX += widthValue;
					textIndex = endIndex2;
				}
				var nextSpaceIndex = (lime_text__$UTF8String_UTF8String_$Impl_$().default).indexOf(this.text," ",textIndex);
				if(formatRange.end <= previousSpaceIndex) {
					layoutGroup = null;
					textIndex = formatRange.end;
					if(rangeIndex < _gthis.textFormatRanges.get_length() - 1) {
						++rangeIndex;
						formatRange = _gthis.textFormatRanges.get(rangeIndex);
						currentFormat.__merge(formatRange.format);
						TextEngine.__context.font = TextEngine.getFont(currentFormat);
						if(currentFormat.__ascent != null) {
							ascent = currentFormat.size * currentFormat.__ascent;
							descent = currentFormat.size * currentFormat.__descent;
						} else {
							ascent = currentFormat.size;
							descent = currentFormat.size * 0.185;
						}
						leading = currentFormat.leading;
						heightValue = ascent + descent + leading;
					}
					if(heightValue > maxHeightValue) {
						maxHeightValue = heightValue;
					}
					if(ascent > maxAscent) {
						maxAscent = ascent;
					}
				} else {
					if(breakIndex == previousSpaceIndex) {
						layoutGroup.endIndex = breakIndex;
						if(breakIndex - layoutGroup.startIndex - layoutGroup.positions.length < 0) {
							layoutGroup.positions.push(0.0);
						}
						textIndex = breakIndex + 1;
					}
					previousSpaceIndex = spaceIndex;
					spaceIndex = nextSpaceIndex;
				}
				if(breakIndex > -1 && breakIndex <= textIndex && (spaceIndex > breakIndex || spaceIndex == -1) || textIndex > (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.text) || spaceIndex > formatRange.end) {
					break;
				}
			}
		} else {
			if(textIndex > formatRange.end) {
				break;
			} else if(textIndex < formatRange.end || textIndex == (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.text)) {
				if(this.wordWrap && this.width >= 4) {
					var endIndex5 = formatRange.end;
					var text10 = (lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(_gthis.text,textIndex,endIndex5);
					var tempWidth2 = TextEngine.__context.measureText(text10).width;
					while(offsetX + tempWidth2 > _gthis.width - 2) {
						var i16 = 1;
						while(textIndex + i16 < endIndex5 + 1) {
							var text11 = (lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(_gthis.text,textIndex,i16);
							tempWidth2 = TextEngine.__context.measureText(text11).width;
							if(offsetX + tempWidth2 > _gthis.width - 2) {
								--i16;
								break;
							}
							++i16;
						}
						if(i16 == 0 && tempWidth2 > _gthis.width - 4) {
							i16 = (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(_gthis.text);
						}
						if(i16 == 0) {
							offsetX = 2;
							offsetY += layoutGroup.height;
							++lineIndex;
							break;
						} else {
							var endIndex6 = textIndex + i16;
							if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
								layoutGroup = new (openfl__$internal_text_TextLayoutGroup().default)(formatRange.format,textIndex,endIndex6);
								_gthis.layoutGroups.push(layoutGroup);
							} else {
								layoutGroup.format = formatRange.format;
								layoutGroup.startIndex = textIndex;
								layoutGroup.endIndex = endIndex6;
							}
							var text12 = _gthis.text;
							var endIndex7 = textIndex + i16;
							var positions10 = [];
							if(_gthis.__useIntAdvances == null) {
								_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
							}
							if(_gthis.__useIntAdvances) {
								var previousWidth6 = 0.0;
								var width12;
								var _g118 = textIndex;
								var _g32 = endIndex7;
								while(_g118 < _g32) {
									var i17 = _g118++;
									width12 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text12,textIndex,i17 + 1)).width;
									positions10.push(width12 - previousWidth6);
									previousWidth6 = width12;
								}
							} else {
								var _g119 = textIndex;
								var _g33 = endIndex7;
								while(_g119 < _g33) {
									var i18 = _g119++;
									var advance6;
									if(i18 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text12) - 1) {
										var nextWidth6 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text12,i18 + 1)).width;
										var twoWidths6 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text12,i18,2)).width;
										advance6 = twoWidths6 - nextWidth6;
									} else {
										advance6 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text12,i18)).width;
									}
									positions10.push(advance6);
								}
							}
							layoutGroup.positions = positions10;
							layoutGroup.offsetX = offsetX;
							layoutGroup.ascent = ascent;
							layoutGroup.descent = descent;
							layoutGroup.leading = leading;
							layoutGroup.lineIndex = lineIndex;
							layoutGroup.offsetY = offsetY;
							var positions11 = layoutGroup.positions;
							var width13 = 0.0;
							var _g34 = 0;
							while(_g34 < positions11.length) {
								var position6 = positions11[_g34];
								++_g34;
								width13 += position6;
							}
							layoutGroup.width = width13;
							layoutGroup.height = heightValue;
							layoutGroup = null;
							if(ascent > maxAscent) {
								maxAscent = ascent;
							}
							if(heightValue > maxHeightValue) {
								maxHeightValue = heightValue;
							}
							var _g35 = 0;
							var _g120 = _gthis.layoutGroups;
							while(_g35 < _g120.get_length()) {
								var lg4 = _g120.get(_g35);
								++_g35;
								if(lg4.lineIndex < lineIndex) {
									continue;
								}
								if(lg4.lineIndex > lineIndex) {
									break;
								}
								lg4.ascent = maxAscent;
								lg4.height = maxHeightValue;
							}
							offsetY += maxHeightValue;
							maxAscent = 0.0;
							maxHeightValue = 0.0;
							++lineIndex;
							offsetX = 2;
							textIndex += i16;
							var text13 = _gthis.text;
							var positions12 = [];
							if(_gthis.__useIntAdvances == null) {
								_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
							}
							if(_gthis.__useIntAdvances) {
								var previousWidth7 = 0.0;
								var width14;
								var _g121 = textIndex;
								var _g36 = endIndex5;
								while(_g121 < _g36) {
									var i19 = _g121++;
									width14 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text13,textIndex,i19 + 1)).width;
									positions12.push(width14 - previousWidth7);
									previousWidth7 = width14;
								}
							} else {
								var _g122 = textIndex;
								var _g37 = endIndex5;
								while(_g122 < _g37) {
									var i20 = _g122++;
									var advance7;
									if(i20 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text13) - 1) {
										var nextWidth7 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text13,i20 + 1)).width;
										var twoWidths7 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text13,i20,2)).width;
										advance7 = twoWidths7 - nextWidth7;
									} else {
										advance7 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text13,i20)).width;
									}
									positions12.push(advance7);
								}
							}
							positions = positions12;
							var width15 = 0.0;
							var _g38 = 0;
							while(_g38 < positions.length) {
								var position7 = positions[_g38];
								++_g38;
								width15 += position7;
							}
							widthValue = width15;
							tempWidth2 = widthValue;
						}
					}
				}
				var text14 = this.text;
				var endIndex8 = formatRange.end;
				var positions13 = [];
				if(_gthis.__useIntAdvances == null) {
					_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
				}
				if(_gthis.__useIntAdvances) {
					var previousWidth8 = 0.0;
					var width16;
					var _g123 = textIndex;
					var _g39 = endIndex8;
					while(_g123 < _g39) {
						var i21 = _g123++;
						width16 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text14,textIndex,i21 + 1)).width;
						positions13.push(width16 - previousWidth8);
						previousWidth8 = width16;
					}
				} else {
					var _g124 = textIndex;
					var _g40 = endIndex8;
					while(_g124 < _g40) {
						var i22 = _g124++;
						var advance8;
						if(i22 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text14) - 1) {
							var nextWidth8 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text14,i22 + 1)).width;
							var twoWidths8 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text14,i22,2)).width;
							advance8 = twoWidths8 - nextWidth8;
						} else {
							advance8 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text14,i22)).width;
						}
						positions13.push(advance8);
					}
				}
				positions = positions13;
				var width17 = 0.0;
				var _g41 = 0;
				while(_g41 < positions.length) {
					var position8 = positions[_g41];
					++_g41;
					width17 += position8;
				}
				widthValue = width17;
				var endIndex9 = formatRange.end;
				if(layoutGroup == null || layoutGroup.startIndex != layoutGroup.endIndex) {
					layoutGroup = new (openfl__$internal_text_TextLayoutGroup().default)(formatRange.format,textIndex,endIndex9);
					_gthis.layoutGroups.push(layoutGroup);
				} else {
					layoutGroup.format = formatRange.format;
					layoutGroup.startIndex = textIndex;
					layoutGroup.endIndex = endIndex9;
				}
				var text15 = this.text;
				var endIndex10 = formatRange.end;
				var positions14 = [];
				if(_gthis.__useIntAdvances == null) {
					_gthis.__useIntAdvances = new (EReg().default)("Trident/7.0","").match((js_Browser().default).get_navigator().userAgent);
				}
				if(_gthis.__useIntAdvances) {
					var previousWidth9 = 0.0;
					var width18;
					var _g125 = textIndex;
					var _g42 = endIndex10;
					while(_g125 < _g42) {
						var i23 = _g125++;
						width18 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text15,textIndex,i23 + 1)).width;
						positions14.push(width18 - previousWidth9);
						previousWidth9 = width18;
					}
				} else {
					var _g126 = textIndex;
					var _g43 = endIndex10;
					while(_g126 < _g43) {
						var i24 = _g126++;
						var advance9;
						if(i24 < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(text15) - 1) {
							var nextWidth9 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text15,i24 + 1)).width;
							var twoWidths9 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substr(text15,i24,2)).width;
							advance9 = twoWidths9 - nextWidth9;
						} else {
							advance9 = TextEngine.__context.measureText((lime_text__$UTF8String_UTF8String_$Impl_$().default).charAt(text15,i24)).width;
						}
						positions14.push(advance9);
					}
				}
				layoutGroup.positions = positions14;
				layoutGroup.offsetX = offsetX;
				layoutGroup.ascent = ascent;
				layoutGroup.descent = descent;
				layoutGroup.leading = leading;
				layoutGroup.lineIndex = lineIndex;
				layoutGroup.offsetY = offsetY;
				var positions15 = layoutGroup.positions;
				var width19 = 0.0;
				var _g44 = 0;
				while(_g44 < positions15.length) {
					var position9 = positions15[_g44];
					++_g44;
					width19 += position9;
				}
				layoutGroup.width = width19;
				layoutGroup.height = heightValue;
				offsetX += widthValue;
				textIndex = formatRange.end;
			}
			if(rangeIndex < _gthis.textFormatRanges.get_length() - 1) {
				++rangeIndex;
				formatRange = _gthis.textFormatRanges.get(rangeIndex);
				currentFormat.__merge(formatRange.format);
				TextEngine.__context.font = TextEngine.getFont(currentFormat);
				if(currentFormat.__ascent != null) {
					ascent = currentFormat.size * currentFormat.__ascent;
					descent = currentFormat.size * currentFormat.__descent;
				} else {
					ascent = currentFormat.size;
					descent = currentFormat.size * 0.185;
				}
				leading = currentFormat.leading;
				heightValue = ascent + descent + leading;
			}
			if(heightValue > maxHeightValue) {
				maxHeightValue = heightValue;
			}
			if(ascent > maxAscent) {
				maxAscent = ascent;
			}
			if(textIndex == formatRange.end) {
				if(ascent > maxAscent) {
					maxAscent = ascent;
				}
				if(heightValue > maxHeightValue) {
					maxHeightValue = heightValue;
				}
				var _g45 = 0;
				var _g127 = _gthis.layoutGroups;
				while(_g45 < _g127.get_length()) {
					var lg5 = _g127.get(_g45);
					++_g45;
					if(lg5.lineIndex < lineIndex) {
						continue;
					}
					if(lg5.lineIndex > lineIndex) {
						break;
					}
					lg5.ascent = maxAscent;
					lg5.height = maxHeightValue;
				}
				offsetY += maxHeightValue;
				maxAscent = 0.0;
				maxHeightValue = 0.0;
				++lineIndex;
				offsetX = 2;
				++textIndex;
				break;
			}
		}
	},
	setTextAlignment: function() {
		var lineIndex = -1;
		var offsetX = 0.0;
		var totalWidth = this.width - 4;
		var group;
		var lineLength;
		var _g1 = 0;
		var _g = this.layoutGroups.get_length();
		while(_g1 < _g) {
			var i = _g1++;
			group = this.layoutGroups.get(i);
			if(group.lineIndex != lineIndex) {
				lineIndex = group.lineIndex;
				var _g2 = group.format.align;
				switch(_g2) {
				case "center":
					if(this.lineWidths.get(lineIndex) < totalWidth) {
						offsetX = Math.round((totalWidth - this.lineWidths.get(lineIndex)) / 2);
					} else {
						offsetX = 0;
					}
					break;
				case "justify":
					if(this.lineWidths.get(lineIndex) < totalWidth) {
						lineLength = 1;
						var _g3 = i + 1;
						var _g21 = this.layoutGroups.get_length();
						while(_g3 < _g21) {
							var j = _g3++;
							if(this.layoutGroups.get(j).lineIndex == lineIndex) {
								if(j == 0 || (lime_text__$UTF8String_UTF8String_$Impl_$().default).charCodeAt(this.text,this.layoutGroups.get(j).startIndex - 1) == 32) {
									++lineLength;
								}
							} else {
								break;
							}
						}
						if(lineLength > 1) {
							group = this.layoutGroups.get(i + lineLength - 1);
							var endChar = (lime_text__$UTF8String_UTF8String_$Impl_$().default).charCodeAt(this.text,group.endIndex);
							if(group.endIndex < (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.text) && endChar != 10 && endChar != 13) {
								offsetX = (totalWidth - this.lineWidths.get(lineIndex)) / (lineLength - 1);
								var j1 = 0;
								while(true) {
									if(j1 > 1 && (lime_text__$UTF8String_UTF8String_$Impl_$().default).charCodeAt(this.text,this.layoutGroups.get(j1).startIndex - 1) != 32) {
										this.layoutGroups.get(i + j1).offsetX += offsetX * (j1 - 1);
										++j1;
									}
									this.layoutGroups.get(i + j1).offsetX += offsetX * j1;
									if(!(++j1 < lineLength)) {
										break;
									}
								}
							}
						}
					}
					offsetX = 0;
					break;
				case "right":
					if(this.lineWidths.get(lineIndex) < totalWidth) {
						offsetX = Math.round(totalWidth - this.lineWidths.get(lineIndex));
					} else {
						offsetX = 0;
					}
					break;
				default:
					offsetX = 0;
				}
			}
			if(offsetX > 0) {
				group.offsetX += offsetX;
			}
		}
	},
	update: function() {
		if(this.text == null || this.textFormatRanges.get_length() == 0) {
			this.lineAscents.set_length(0);
			this.lineBreaks.set_length(0);
			this.lineDescents.set_length(0);
			this.lineLeadings.set_length(0);
			this.lineHeights.set_length(0);
			this.lineWidths.set_length(0);
			this.layoutGroups.set_length(0);
			this.textWidth = 0;
			this.textHeight = 0;
			this.numLines = 1;
			this.maxScrollH = 0;
			this.maxScrollV = 1;
			this.bottomScrollV = 1;
		} else {
			this.getLayoutGroups();
			this.getLineMeasurements();
			this.setTextAlignment();
		}
		this.getBounds();
	},
	set_restrict: function(value) {
		if((lime_text__$UTF8String_UTF8String_$Impl_$().default).equals(this.restrict,value)) {
			return this.restrict;
		}
		this.restrict = value;
		if(this.restrict == null || (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(this.restrict) == 0) {
			this.__restrictRegexp = null;
		} else {
			this.__restrictRegexp = this.createRestrictRegexp(value);
		}
		return this.restrict;
	},
	set_text: function(value) {
		if(value == null) {
			return this.text = value;
		}
		if(this.__restrictRegexp != null) {
			value = this.__restrictRegexp.split(value).join("");
		}
		if(this.maxChars > 0 && value.length > this.maxChars) {
			value = (HxOverrides().default).substr(value,0,this.maxChars);
		}
		this.text = value;
		return this.text;
	}
};
TextEngine.prototype.__class__ = $hxClasses["openfl._internal.text.TextEngine"] = TextEngine;
// Init
// Statics
TextEngine.findFont = function(name) {
	return null;
}
TextEngine.findFontVariant = function(format) {
	var fontName = format.font;
	var bold = format.bold;
	var italic = format.italic;
	var fontNamePrefix = (StringTools().default).replace((StringTools().default).replace(fontName," Normal","")," Regular","");
	if(bold && italic && (openfl_text_Font().default).__fontByName.exists(fontNamePrefix + " Bold Italic")) {
		return TextEngine.findFont(fontNamePrefix + " Bold Italic");
	} else if(bold && (openfl_text_Font().default).__fontByName.exists(fontNamePrefix + " Bold")) {
		return TextEngine.findFont(fontNamePrefix + " Bold");
	} else if(italic && (openfl_text_Font().default).__fontByName.exists(fontNamePrefix + " Italic")) {
		return TextEngine.findFont(fontNamePrefix + " Italic");
	}
	return TextEngine.findFont(fontName);
}
TextEngine.getFormatHeight = function(format) {
	var ascent;
	var descent;
	var leading;
	TextEngine.__context.font = TextEngine.getFont(format);
	if(format.__ascent != null) {
		ascent = format.size * format.__ascent;
		descent = format.size * format.__descent;
	} else {
		ascent = format.size;
		descent = format.size * 0.185;
	}
	leading = format.leading;
	return ascent + descent + leading;
}
TextEngine.getFont = function(format) {
	var fontName = format.font;
	var bold = format.bold;
	var italic = format.italic;
	if(fontName == null) {
		fontName = "_serif";
	}
	var fontNamePrefix = (StringTools().default).replace((StringTools().default).replace(fontName," Normal","")," Regular","");
	if(bold && italic && (openfl_text_Font().default).__fontByName.exists(fontNamePrefix + " Bold Italic")) {
		fontName = fontNamePrefix + " Bold Italic";
		bold = false;
		italic = false;
	} else if(bold && (openfl_text_Font().default).__fontByName.exists(fontNamePrefix + " Bold")) {
		fontName = fontNamePrefix + " Bold";
		bold = false;
	} else if(italic && (openfl_text_Font().default).__fontByName.exists(fontNamePrefix + " Italic")) {
		fontName = fontNamePrefix + " Italic";
		italic = false;
	} else {
		if(bold && (fontName.indexOf(" Bold ") > -1 || (StringTools().default).endsWith(fontName," Bold"))) {
			bold = false;
		}
		if(italic && (fontName.indexOf(" Italic ") > -1 || (StringTools().default).endsWith(fontName," Italic"))) {
			italic = false;
		}
	}
	var font = italic ? "italic " : "normal ";
	font += "normal ";
	font += bold ? "bold " : "normal ";
	font += format.size + "px";
	font += "/" + (format.leading + format.size + 3) + "px ";
	var font1;
	switch(fontName) {
	case "_sans":
		font1 = "sans-serif";
		break;
	case "_serif":
		font1 = "serif";
		break;
	case "_typewriter":
		font1 = "monospace";
		break;
	default:
		font1 = "'" + new (EReg().default)("^[\\s'\"]+(.*)[\\s'\"]+$","").replace(fontName,"$1") + "'";
	}
	font += "" + font1;
	return font;
}
TextEngine.getFontInstance = function(format) {
	return null;
}
TextEngine.UTF8_TAB = 9
TextEngine.UTF8_ENDLINE = 10
TextEngine.UTF8_SPACE = 32
TextEngine.UTF8_HYPHEN = 45
TextEngine.__defaultFonts = new (haxe_ds_StringMap().default)()
// Export
exports.default = TextEngine;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 139 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.LoaderInfo
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_events_ProgressEvent() {return __webpack_require__(53);}
function js_Browser() {return __webpack_require__(11);}
function openfl_events_UncaughtErrorEvents() {return __webpack_require__(207);}
function openfl_system_ApplicationDomain() {return __webpack_require__(208);}
// Constructor
var LoaderInfo = function() {
	(openfl_events_EventDispatcher().default).call(this);
	this.applicationDomain = (openfl_system_ApplicationDomain().default).currentDomain;
	this.bytesLoaded = 0;
	this.bytesTotal = 0;
	this.childAllowsParent = true;
	this.parameters = { };
}
// Meta
LoaderInfo.__name__ = ["openfl","display","LoaderInfo"];
LoaderInfo.__super__ = (openfl_events_EventDispatcher().default);
LoaderInfo.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	__complete: function() {
		if(!this.__completed) {
			if(this.bytesLoaded < this.bytesTotal) {
				this.bytesLoaded = this.bytesTotal;
			}
			this.__update(this.bytesLoaded,this.bytesTotal);
			this.__completed = true;
			this.dispatchEvent(new (openfl_events_Event().default)("complete"));
		}
	},
	__update: function(bytesLoaded,bytesTotal) {
		this.bytesLoaded = bytesLoaded;
		this.bytesTotal = bytesTotal;
		this.dispatchEvent(new (openfl_events_ProgressEvent().default)("progress",false,false,bytesLoaded,bytesTotal));
	}
});
LoaderInfo.prototype.__class__ = $hxClasses["openfl.display.LoaderInfo"] = LoaderInfo;
// Init
// Statics
LoaderInfo.create = function(loader) {
	var loaderInfo = new LoaderInfo();
	loaderInfo.uncaughtErrorEvents = new (openfl_events_UncaughtErrorEvents().default)();
	if(loader != null) {
		loaderInfo.loader = loader;
	} else {
		loaderInfo.url = LoaderInfo.__rootURL;
	}
	return loaderInfo;
}
LoaderInfo.__rootURL = (js_Browser().default).get_supported() ? (js_Browser().default).get_document().URL : ""
// Export
exports.default = LoaderInfo;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 140 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.ui.GameInputControl
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
// Constructor
var GameInputControl = function(device,id,minValue,maxValue,value) {
	if(value == null) {
		value = 0;
	}
	(openfl_events_EventDispatcher().default).call(this);
	this.device = device;
	this.id = id;
	this.minValue = minValue;
	this.maxValue = maxValue;
	this.value = value;
}
// Meta
GameInputControl.__name__ = ["openfl","ui","GameInputControl"];
GameInputControl.__super__ = (openfl_events_EventDispatcher().default);
GameInputControl.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	
});
GameInputControl.prototype.__class__ = $hxClasses["openfl.ui.GameInputControl"] = GameInputControl;
// Init
// Statics
// Export
exports.default = GameInputControl;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 141 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Stage3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl_display3D_Context3D() {return __webpack_require__(62);}
function js_Browser() {return __webpack_require__(11);}
function Reflect() {return __webpack_require__(5);}
function js_html__$CanvasElement_CanvasUtil() {return __webpack_require__(414);}
function lime__$backend_html5_HTML5GLRenderContext() {return __webpack_require__(153);}
function lime_graphics_opengl_GL() {return __webpack_require__(49);}
function openfl_events_ErrorEvent() {return __webpack_require__(60);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl__$internal_stage3D_opengl_GLStage3D() {return __webpack_require__(415);}
// Constructor
var Stage3D = function() {
	(openfl_events_EventDispatcher().default).call(this);
	this.__x = 0;
	this.__y = 0;
	this.visible = true;
}
// Meta
Stage3D.__name__ = ["openfl","display","Stage3D"];
Stage3D.__super__ = (openfl_events_EventDispatcher().default);
Stage3D.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	requestContext3D: function(context3DRenderMode,profile) {
		if(profile == null) {
			profile = "baseline";
		}
		if(context3DRenderMode == null) {
			context3DRenderMode = "auto";
		}
		this.__contextRequested = true;
		if(this.context3D != null) {
			(haxe_Timer().default).delay($bind(this,this.__dispatchCreate),1);
		}
	},
	requestContext3DMatchingProfiles: function(profiles) {
		this.requestContext3D();
	},
	__createContext: function(stage,renderSession) {
		this.__stage = stage;
		if(renderSession.gl != null) {
			this.context3D = new (openfl_display3D_Context3D().default)(this,renderSession);
			this.__dispatchCreate();
		} else {
			this.__canvas = (js_Browser().default).get_document().createElement("canvas");
			this.__canvas.width = stage.stageWidth;
			this.__canvas.height = stage.stageHeight;
			var $window = stage.window;
			var transparentBackground = (Reflect().default).hasField($window.config,"background") && $window.config.background == null;
			var colorDepth = (Reflect().default).hasField($window.config,"colorDepth") ? $window.config.colorDepth : 16;
			var options = { alpha : transparentBackground || colorDepth > 16, antialias : (Reflect().default).hasField($window.config,"antialiasing") && $window.config.antialiasing > 0, depth : (Reflect().default).hasField($window.config,"depthBuffer") ? $window.config.depthBuffer : true, premultipliedAlpha : true, stencil : (Reflect().default).hasField($window.config,"stencilBuffer") && $window.config.stencilBuffer, preserveDrawingBuffer : false};
			this.__webgl = (js_html__$CanvasElement_CanvasUtil().default).getContextWebGL(this.__canvas,options);
			if(this.__webgl != null) {
				this.__renderContext = new (lime__$backend_html5_HTML5GLRenderContext().default)(this.__webgl);
				(lime_graphics_opengl_GL().default).context = this.__renderContext;
				this.context3D = new (openfl_display3D_Context3D().default)(this,renderSession);
				renderSession.element.appendChild(this.__canvas);
				this.__style = this.__canvas.style;
				this.__style.setProperty("position","absolute",null);
				this.__style.setProperty("top","0",null);
				this.__style.setProperty("left","0",null);
				this.__style.setProperty(renderSession.transformOriginProperty,"0 0 0",null);
				this.__style.setProperty("z-index","-1",null);
				this.__dispatchCreate();
			} else {
				this.__dispatchError();
			}
		}
	},
	__dispatchError: function() {
		this.__contextRequested = false;
		this.dispatchEvent(new (openfl_events_ErrorEvent().default)("error",false,false,"Context3D not available"));
	},
	__dispatchCreate: function() {
		if(this.__contextRequested) {
			this.__contextRequested = false;
			this.dispatchEvent(new (openfl_events_Event().default)("context3DCreate"));
		}
	},
	__renderCairo: function(stage,renderSession) {
		if(!this.visible) {
			return;
		}
		if(this.__contextRequested) {
			this.__dispatchError();
			this.__contextRequested = false;
		}
	},
	__renderCanvas: function(stage,renderSession) {
		if(!this.visible) {
			return;
		}
		if(this.__contextRequested) {
			this.__dispatchError();
			this.__contextRequested = false;
		}
	},
	__renderDOM: function(stage,renderSession) {
		if(!this.visible) {
			return;
		}
		if(this.__contextRequested && this.context3D == null) {
			this.__createContext(stage,renderSession);
		}
		if(this.context3D != null) {
			(lime_graphics_opengl_GL().default).context = this.__renderContext;
			this.__resetContext3DStates();
		}
	},
	__renderGL: function(stage,renderSession) {
		if(!this.visible) {
			return;
		}
		if(this.__contextRequested && this.context3D == null) {
			this.__createContext(stage,renderSession);
		}
		if(this.context3D != null) {
			this.__resetContext3DStates();
			(openfl__$internal_stage3D_opengl_GLStage3D().default).render(this,renderSession);
		}
	},
	__resize: function(width,height) {
		if(this.__canvas != null) {
			this.__canvas.width = width;
			this.__canvas.height = height;
		}
	},
	__resetContext3DStates: function() {
		this.context3D.__updateBlendFactors();
		this.context3D.__updateBackbufferViewport();
	},
	get_x: function() {
		return this.__x;
	},
	set_x: function(value) {
		if(this.__x == value) {
			return value;
		}
		this.__x = value;
		if(this.context3D != null) {
			this.context3D.__updateBackbufferViewport();
		}
		return value;
	},
	get_y: function() {
		return this.__y;
	},
	set_y: function(value) {
		if(this.__y == value) {
			return value;
		}
		this.__y = value;
		if(this.context3D != null) {
			this.context3D.__updateBackbufferViewport();
		}
		return value;
	}
});
Stage3D.prototype.__class__ = $hxClasses["openfl.display.Stage3D"] = Stage3D;
// Init
Object.defineProperties(Stage3D.prototype,{ "x" : { get : function () { return this.get_x (); }, set : function (v) { return this.set_x (v); }}, "y" : { get : function () { return this.get_y (); }, set : function (v) { return this.set_y (v); }}});
// Statics
// Export
exports.default = Stage3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 142 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.textures.RectangleTexture
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display3D_textures_TextureBase() {return __webpack_require__(82);}
function openfl__$internal_stage3D_opengl_GLRectangleTexture() {return __webpack_require__(398);}
// Constructor
var RectangleTexture = function(context,width,height,format,optimizeForRenderToTexture) {
	(openfl_display3D_textures_TextureBase().default).call(this,context);
	this.__width = width;
	this.__height = height;
	this.__optimizeForRenderToTexture = optimizeForRenderToTexture;
	(openfl__$internal_stage3D_opengl_GLRectangleTexture().default).create(this,this.__context.__renderSession);
}
// Meta
RectangleTexture.__name__ = ["openfl","display3D","textures","RectangleTexture"];
RectangleTexture.__super__ = (openfl_display3D_textures_TextureBase().default);
RectangleTexture.prototype = $extend((openfl_display3D_textures_TextureBase().default).prototype, {
	uploadFromBitmapData: function(source) {
		(openfl__$internal_stage3D_opengl_GLRectangleTexture().default).uploadFromBitmapData(this,this.__context.__renderSession,source);
	},
	uploadFromByteArray: function(data,byteArrayOffset) {
		(openfl__$internal_stage3D_opengl_GLRectangleTexture().default).uploadFromByteArray(this,this.__context.__renderSession,data,byteArrayOffset);
	},
	uploadFromTypedArray: function(data) {
		(openfl__$internal_stage3D_opengl_GLRectangleTexture().default).uploadFromTypedArray(this,this.__context.__renderSession,data);
	},
	__setSamplerState: function(state) {
		(openfl__$internal_stage3D_opengl_GLRectangleTexture().default).setSamplerState(this,this.__context.__renderSession,state);
	}
});
RectangleTexture.prototype.__class__ = $hxClasses["openfl.display3D.textures.RectangleTexture"] = RectangleTexture;
// Init
// Statics
// Export
exports.default = RectangleTexture;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 143 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: openfl._internal.stage3D._AGALConverter.ProgramType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var ProgramType = $hxClasses["openfl._internal.stage3D._AGALConverter.ProgramType"] = { __ename__: ["openfl","_internal","stage3D","_AGALConverter","ProgramType"], __constructs__: ["VERTEX","FRAGMENT"] }
ProgramType.VERTEX = ["VERTEX",0];
ProgramType.VERTEX.toString = $estr;
ProgramType.VERTEX.__enum__ = ProgramType;
ProgramType.FRAGMENT = ["FRAGMENT",1];
ProgramType.FRAGMENT.toString = $estr;
ProgramType.FRAGMENT.__enum__ = ProgramType;
exports.default = ProgramType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 144 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.NetStatusEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var NetStatusEvent = function(type,bubbles,cancelable,info) {
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	this.info = info;
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
}
// Meta
NetStatusEvent.__name__ = ["openfl","events","NetStatusEvent"];
NetStatusEvent.__super__ = (openfl_events_Event().default);
NetStatusEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new NetStatusEvent(this.type,this.bubbles,this.cancelable,this.info);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("NetStatusEvent",["type","bubbles","cancelable","info"]);
	}
});
NetStatusEvent.prototype.__class__ = $hxClasses["openfl.events.NetStatusEvent"] = NetStatusEvent;
// Init
// Statics
NetStatusEvent.NET_STATUS = "netStatus"
// Export
exports.default = NetStatusEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 145 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: js.Lib
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var Lib = function(){}
// Meta
Lib.__name__ = ["js","Lib"];
Lib.prototype = {
	
};
Lib.prototype.__class__ = $hxClasses["js.Lib"] = Lib;
// Init
// Statics
Lib.eval = function(code) {
	return eval(code);
}
Lib.get_undefined = function() {
	return undefined;
}
// Export
exports.default = Lib;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 146 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app.IModule
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IModule = function() {}
// Meta
IModule.__name__ = ["lime","app","IModule"];
IModule.prototype = {
	
};
IModule.prototype.__class__ = $hxClasses["lime.app.IModule"] = IModule;
// Init
// Statics
// Export
exports.default = IModule;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 147 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.ui.Window
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_app__$Event_$String_$Void() {return __webpack_require__(148);}
function lime_app__$Event_$String_$Int_$Int_$Void() {return __webpack_require__(250);}
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
function lime_app__$Event_$Int_$Int_$Void() {return __webpack_require__(149);}
function lime_app__$Event_$Float_$Float_$Void() {return __webpack_require__(251);}
function lime_app__$Event_$Float_$Float_$Int_$Void() {return __webpack_require__(252);}
function lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void() {return __webpack_require__(253);}
function Reflect() {return __webpack_require__(5);}
function lime__$backend_html5_HTML5Window() {return __webpack_require__(254);}
// Constructor
var Window = function(config) {
	this.onTextInput = new (lime_app__$Event_$String_$Void().default)();
	this.onTextEdit = new (lime_app__$Event_$String_$Int_$Int_$Void().default)();
	this.onRestore = new (lime_app__$Event_$Void_$Void().default)();
	this.onResize = new (lime_app__$Event_$Int_$Int_$Void().default)();
	this.onMove = new (lime_app__$Event_$Float_$Float_$Void().default)();
	this.onMouseWheel = new (lime_app__$Event_$Float_$Float_$Void().default)();
	this.onMouseUp = new (lime_app__$Event_$Float_$Float_$Int_$Void().default)();
	this.onMouseMoveRelative = new (lime_app__$Event_$Float_$Float_$Void().default)();
	this.onMouseMove = new (lime_app__$Event_$Float_$Float_$Void().default)();
	this.onMouseDown = new (lime_app__$Event_$Float_$Float_$Int_$Void().default)();
	this.onMinimize = new (lime_app__$Event_$Void_$Void().default)();
	this.onLeave = new (lime_app__$Event_$Void_$Void().default)();
	this.onKeyUp = new (lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void().default)();
	this.onKeyDown = new (lime_app__$Event_$lime_$ui_$KeyCode_$lime_$ui_$KeyModifier_$Void().default)();
	this.onFullscreen = new (lime_app__$Event_$Void_$Void().default)();
	this.onFocusOut = new (lime_app__$Event_$Void_$Void().default)();
	this.onFocusIn = new (lime_app__$Event_$Void_$Void().default)();
	this.onEnter = new (lime_app__$Event_$Void_$Void().default)();
	this.onDropFile = new (lime_app__$Event_$String_$Void().default)();
	this.onDeactivate = new (lime_app__$Event_$Void_$Void().default)();
	this.onCreate = new (lime_app__$Event_$Void_$Void().default)();
	this.onClose = new (lime_app__$Event_$Void_$Void().default)();
	this.onActivate = new (lime_app__$Event_$Void_$Void().default)();
	this.config = config;
	this.__width = 0;
	this.__height = 0;
	this.__fullscreen = false;
	this.__scale = 1;
	this.__x = 0;
	this.__y = 0;
	this.__title = "";
	this.id = -1;
	if(config != null) {
		if((Reflect().default).hasField(config,"width")) {
			this.__width = config.width;
		}
		if((Reflect().default).hasField(config,"height")) {
			this.__height = config.height;
		}
		if((Reflect().default).hasField(config,"x")) {
			this.__x = config.x;
		}
		if((Reflect().default).hasField(config,"y")) {
			this.__y = config.y;
		}
		if((Reflect().default).hasField(config,"fullscreen")) {
			this.__fullscreen = config.fullscreen;
		}
		if((Reflect().default).hasField(config,"borderless")) {
			this.__borderless = config.borderless;
		}
		if((Reflect().default).hasField(config,"resizable")) {
			this.__resizable = config.resizable;
		}
		if((Reflect().default).hasField(config,"title")) {
			this.__title = config.title;
		}
	}
	this.backend = new (lime__$backend_html5_HTML5Window().default)(this);
}
// Meta
Window.__name__ = ["lime","ui","Window"];
Window.prototype = {
	alert: function(message,title) {
		this.backend.alert(message,title);
	},
	close: function() {
		this.backend.close();
	},
	create: function(application) {
		this.application = application;
		if(this.config == null) {
			this.config = { };
		}
		this.backend.create(application);
		if(this.renderer != null) {
			this.renderer.create();
		}
	},
	focus: function() {
		this.backend.focus();
	},
	move: function(x,y) {
		this.backend.move(x,y);
		this.__x = x;
		this.__y = y;
	},
	resize: function(width,height) {
		this.backend.resize(width,height);
		this.__width = width;
		this.__height = height;
	},
	setIcon: function(image) {
		if(image == null) {
			return;
		}
		this.backend.setIcon(image);
	},
	toString: function() {
		return "[object Window]";
	},
	get_display: function() {
		return this.backend.getDisplay();
	},
	get_displayMode: function() {
		return this.backend.getDisplayMode();
	},
	set_displayMode: function(value) {
		return this.backend.setDisplayMode(value);
	},
	get_borderless: function() {
		return this.__borderless;
	},
	set_borderless: function(value) {
		return this.__borderless = this.backend.setBorderless(value);
	},
	get_enableTextEvents: function() {
		return this.backend.getEnableTextEvents();
	},
	set_enableTextEvents: function(value) {
		return this.backend.setEnableTextEvents(value);
	},
	get_fullscreen: function() {
		return this.__fullscreen;
	},
	set_fullscreen: function(value) {
		return this.__fullscreen = this.backend.setFullscreen(value);
	},
	get_height: function() {
		return this.__height;
	},
	set_height: function(value) {
		this.resize(this.__width,value);
		return this.__height;
	},
	get_maximized: function() {
		return this.__maximized;
	},
	set_maximized: function(value) {
		this.__minimized = false;
		return this.__maximized = this.backend.setMaximized(value);
	},
	get_minimized: function() {
		return this.__minimized;
	},
	set_minimized: function(value) {
		this.__maximized = false;
		return this.__minimized = this.backend.setMinimized(value);
	},
	get_resizable: function() {
		return this.__resizable;
	},
	set_resizable: function(value) {
		this.__resizable = this.backend.setResizable(value);
		return this.__resizable;
	},
	get_scale: function() {
		return this.__scale;
	},
	get_title: function() {
		return this.__title;
	},
	set_title: function(value) {
		return this.__title = this.backend.setTitle(value);
	},
	get_width: function() {
		return this.__width;
	},
	set_width: function(value) {
		this.resize(value,this.__height);
		return this.__width;
	},
	get_x: function() {
		return this.__x;
	},
	set_x: function(value) {
		this.move(value,this.__y);
		return this.__x;
	},
	get_y: function() {
		return this.__y;
	},
	set_y: function(value) {
		this.move(this.__x,value);
		return this.__y;
	}
};
Window.prototype.__class__ = $hxClasses["lime.ui.Window"] = Window;
// Init
{
	var p = Window.prototype;
	Object.defineProperties(p,{ "borderless" : { get : p.get_borderless, set : p.set_borderless}, "display" : { get : p.get_display}, "displayMode" : { get : p.get_displayMode, set : p.set_displayMode}, "enableTextEvents" : { get : p.get_enableTextEvents, set : p.set_enableTextEvents}, "fullscreen" : { get : p.get_fullscreen, set : p.set_fullscreen}, "height" : { get : p.get_height, set : p.set_height}, "maximized" : { get : p.get_maximized, set : p.set_maximized}, "resizable" : { get : p.get_resizable, set : p.set_resizable}, "scale" : { get : p.get_scale}, "title" : { get : p.get_title, set : p.set_title}, "width" : { get : p.get_width, set : p.set_width}, "x" : { get : p.get_x, set : p.set_y}, "y" : { get : p.get_x, set : p.set_y}});
};
// Statics
// Export
exports.default = Window;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 148 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_String_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_String_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_String_Void.__name__ = ["lime","app","_Event_String_Void"];
_Event_String_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_String_Void.prototype.__class__ = $hxClasses["lime.app._Event_String_Void"] = _Event_String_Void;
// Init
// Statics
// Export
exports.default = _Event_String_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 149 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Int_Int_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Int_Int_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Int_Int_Void.__name__ = ["lime","app","_Event_Int_Int_Void"];
_Event_Int_Int_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Int_Int_Void.prototype.__class__ = $hxClasses["lime.app._Event_Int_Int_Void"] = _Event_Int_Int_Void;
// Init
// Statics
// Export
exports.default = _Event_Int_Int_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 150 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.math._ColorMatrix.ColorMatrix_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
// Constructor
var ColorMatrix_Impl_ = function(){}
// Meta
ColorMatrix_Impl_.__name__ = ["lime","math","_ColorMatrix","ColorMatrix_Impl_"];
ColorMatrix_Impl_.prototype = {
	
};
ColorMatrix_Impl_.prototype.__class__ = $hxClasses["lime.math._ColorMatrix.ColorMatrix_Impl_"] = ColorMatrix_Impl_;
// Init
// Statics
ColorMatrix_Impl_._new = function(data) {
	var this1;
	if(data != null && data.length == 20) {
		this1 = data;
	} else {
		var array = ColorMatrix_Impl_.__identity;
		var this2;
		if(array != null) {
			this2 = new Float32Array(array);
		} else {
			this2 = null;
		}
		this1 = this2;
	}
	return this1;
}
ColorMatrix_Impl_.clone = function(this1) {
	var this2;
	if(this1 != null) {
		this2 = new Float32Array(this1);
	} else {
		this2 = null;
	}
	return ColorMatrix_Impl_._new(this2);
}
ColorMatrix_Impl_.concat = function(this1,second) {
	var _g = this1;
	_g[0] += second[0];
	var _g1 = this1;
	_g1[6] += second[6];
	var _g2 = this1;
	_g2[12] += second[12];
	var _g3 = this1;
	_g3[18] += second[18];
}
ColorMatrix_Impl_.copyFrom = function(this1,other) {
	this1.set(other);
}
ColorMatrix_Impl_.identity = function(this1) {
	this1[0] = 1;
	this1[1] = 0;
	this1[2] = 0;
	this1[3] = 0;
	this1[4] = 0;
	this1[5] = 0;
	this1[6] = 1;
	this1[7] = 0;
	this1[8] = 0;
	this1[9] = 0;
	this1[10] = 0;
	this1[11] = 0;
	this1[12] = 1;
	this1[13] = 0;
	this1[14] = 0;
	this1[15] = 0;
	this1[16] = 0;
	this1[17] = 0;
	this1[18] = 1;
	this1[19] = 0;
}
ColorMatrix_Impl_.getAlphaTable = function(this1) {
	if(ColorMatrix_Impl_.__alphaTable == null) {
		var this2 = new Uint8Array(256);
		ColorMatrix_Impl_.__alphaTable = this2;
	}
	var value;
	ColorMatrix_Impl_.__alphaTable[0] = 0;
	var _g = 1;
	while(_g < 256) {
		var i = _g++;
		value = Math.floor(i * this1[18] + this1[19] * 255);
		if(value > 255) {
			value = 255;
		}
		if(value < 0) {
			value = 0;
		}
		ColorMatrix_Impl_.__alphaTable[i] = value;
	}
	return ColorMatrix_Impl_.__alphaTable;
}
ColorMatrix_Impl_.getBlueTable = function(this1) {
	if(ColorMatrix_Impl_.__blueTable == null) {
		var this2 = new Uint8Array(256);
		ColorMatrix_Impl_.__blueTable = this2;
	}
	var value;
	var _g = 0;
	while(_g < 256) {
		var i = _g++;
		value = Math.floor(i * this1[12] + this1[14] * 255);
		if(value > 255) {
			value = 255;
		}
		if(value < 0) {
			value = 0;
		}
		ColorMatrix_Impl_.__blueTable[i] = value;
	}
	return ColorMatrix_Impl_.__blueTable;
}
ColorMatrix_Impl_.getGreenTable = function(this1) {
	if(ColorMatrix_Impl_.__greenTable == null) {
		var this2 = new Uint8Array(256);
		ColorMatrix_Impl_.__greenTable = this2;
	}
	var value;
	var _g = 0;
	while(_g < 256) {
		var i = _g++;
		value = Math.floor(i * this1[6] + this1[9] * 255);
		if(value > 255) {
			value = 255;
		}
		if(value < 0) {
			value = 0;
		}
		ColorMatrix_Impl_.__greenTable[i] = value;
	}
	return ColorMatrix_Impl_.__greenTable;
}
ColorMatrix_Impl_.getRedTable = function(this1) {
	if(ColorMatrix_Impl_.__redTable == null) {
		var this2 = new Uint8Array(256);
		ColorMatrix_Impl_.__redTable = this2;
	}
	var value;
	var _g = 0;
	while(_g < 256) {
		var i = _g++;
		value = Math.floor(i * this1[0] + this1[4] * 255);
		if(value > 255) {
			value = 255;
		}
		if(value < 0) {
			value = 0;
		}
		ColorMatrix_Impl_.__redTable[i] = value;
	}
	return ColorMatrix_Impl_.__redTable;
}
ColorMatrix_Impl_.__toFlashColorTransform = function(this1) {
	return null;
}
ColorMatrix_Impl_.get_alphaMultiplier = function(this1) {
	return this1[18];
}
ColorMatrix_Impl_.set_alphaMultiplier = function(this1,value) {
	return this1[18] = value;
}
ColorMatrix_Impl_.get_alphaOffset = function(this1) {
	return this1[19] * 255;
}
ColorMatrix_Impl_.set_alphaOffset = function(this1,value) {
	return this1[19] = value / 255;
}
ColorMatrix_Impl_.get_blueMultiplier = function(this1) {
	return this1[12];
}
ColorMatrix_Impl_.set_blueMultiplier = function(this1,value) {
	return this1[12] = value;
}
ColorMatrix_Impl_.get_blueOffset = function(this1) {
	return this1[14] * 255;
}
ColorMatrix_Impl_.set_blueOffset = function(this1,value) {
	return this1[14] = value / 255;
}
ColorMatrix_Impl_.get_color = function(this1) {
	return (Std().default)["int"](this1[4] * 255) << 16 | (Std().default)["int"](this1[9] * 255) << 8 | (Std().default)["int"](this1[14] * 255);
}
ColorMatrix_Impl_.set_color = function(this1,value) {
	this1[4] = (value >> 16 & 255) / 255;
	this1[9] = (value >> 8 & 255) / 255;
	this1[14] = (value & 255) / 255;
	this1[0] = 0;
	this1[6] = 0;
	this1[12] = 0;
	return ColorMatrix_Impl_.get_color(this1);
}
ColorMatrix_Impl_.get_greenMultiplier = function(this1) {
	return this1[6];
}
ColorMatrix_Impl_.set_greenMultiplier = function(this1,value) {
	return this1[6] = value;
}
ColorMatrix_Impl_.get_greenOffset = function(this1) {
	return this1[9] * 255;
}
ColorMatrix_Impl_.set_greenOffset = function(this1,value) {
	return this1[9] = value / 255;
}
ColorMatrix_Impl_.get_redMultiplier = function(this1) {
	return this1[0];
}
ColorMatrix_Impl_.set_redMultiplier = function(this1,value) {
	return this1[0] = value;
}
ColorMatrix_Impl_.get_redOffset = function(this1) {
	return this1[4] * 255;
}
ColorMatrix_Impl_.set_redOffset = function(this1,value) {
	return this1[4] = value / 255;
}
ColorMatrix_Impl_.get = function(this1,index) {
	return this1[index];
}
ColorMatrix_Impl_.set = function(this1,index,value) {
	return this1[index] = value;
}
ColorMatrix_Impl_.__identity = [1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0]
// Export
exports.default = ColorMatrix_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 151 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.math.color._RGBA.RGBA_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var RGBA_Impl_ = function(){}
// Meta
RGBA_Impl_.__name__ = ["lime","math","color","_RGBA","RGBA_Impl_"];
RGBA_Impl_.prototype = {
	
};
RGBA_Impl_.prototype.__class__ = $hxClasses["lime.math.color._RGBA.RGBA_Impl_"] = RGBA_Impl_;
// Init
{
	var this1 = new Uint32Array(256);
	RGBA_Impl_.__alpha16 = this1;
	var _g = 0;
	while(_g < 256) {
		var i = _g++;
		RGBA_Impl_.__alpha16[i] = Math.ceil(i * 257.003921568627447);
	}
	var this2 = new Uint8Array(510);
	RGBA_Impl_.__clamp = this2;
	var _g1 = 0;
	while(_g1 < 255) {
		var i1 = _g1++;
		RGBA_Impl_.__clamp[i1] = i1;
	}
	var _g11 = 255;
	var _g2 = 511;
	while(_g11 < _g2) {
		var i2 = _g11++;
		RGBA_Impl_.__clamp[i2] = 255;
	}
};
// Statics
RGBA_Impl_._new = function(rgba) {
	if(rgba == null) {
		rgba = 0;
	}
	var this1 = rgba;
	return this1;
}
RGBA_Impl_.create = function(r,g,b,a) {
	var this1 = 0;
	var rgba = this1;
	rgba = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | a & 255;
	return rgba;
}
RGBA_Impl_.multiplyAlpha = function(this1) {
	if((this1 & 255) == 0) {
		if(this1 != 0) {
			this1 = 0;
		}
	} else if((this1 & 255) != 255) {
		RGBA_Impl_.a16 = RGBA_Impl_.__alpha16[this1 & 255];
		this1 = ((this1 >>> 24 & 255) * RGBA_Impl_.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * RGBA_Impl_.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * RGBA_Impl_.a16 >> 16 & 255) << 8 | this1 & 255 & 255;
	}
}
RGBA_Impl_.readUInt8 = function(this1,data,offset,format,premultiplied) {
	if(premultiplied == null) {
		premultiplied = false;
	}
	if(format == null) {
		format = 0;
	}
	switch(format) {
	case 0:
		this1 = (data[offset] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset + 2] & 255) << 8 | data[offset + 3] & 255;
		break;
	case 1:
		this1 = (data[offset + 1] & 255) << 24 | (data[offset + 2] & 255) << 16 | (data[offset + 3] & 255) << 8 | data[offset] & 255;
		break;
	case 2:
		this1 = (data[offset + 2] & 255) << 24 | (data[offset + 1] & 255) << 16 | (data[offset] & 255) << 8 | data[offset + 3] & 255;
		break;
	}
	if(premultiplied) {
		if((this1 & 255) != 0 && (this1 & 255) != 255) {
			RGBA_Impl_.unmult = 255.0 / (this1 & 255);
			this1 = (RGBA_Impl_.__clamp[Math.round((this1 >>> 24 & 255) * RGBA_Impl_.unmult)] & 255) << 24 | (RGBA_Impl_.__clamp[Math.round((this1 >>> 16 & 255) * RGBA_Impl_.unmult)] & 255) << 16 | (RGBA_Impl_.__clamp[Math.round((this1 >>> 8 & 255) * RGBA_Impl_.unmult)] & 255) << 8 | this1 & 255 & 255;
		}
	}
}
RGBA_Impl_.set = function(this1,r,g,b,a) {
	this1 = (r & 255) << 24 | (g & 255) << 16 | (b & 255) << 8 | a & 255;
}
RGBA_Impl_.unmultiplyAlpha = function(this1) {
	if((this1 & 255) != 0 && (this1 & 255) != 255) {
		RGBA_Impl_.unmult = 255.0 / (this1 & 255);
		this1 = (RGBA_Impl_.__clamp[Math.round((this1 >>> 24 & 255) * RGBA_Impl_.unmult)] & 255) << 24 | (RGBA_Impl_.__clamp[Math.round((this1 >>> 16 & 255) * RGBA_Impl_.unmult)] & 255) << 16 | (RGBA_Impl_.__clamp[Math.round((this1 >>> 8 & 255) * RGBA_Impl_.unmult)] & 255) << 8 | this1 & 255 & 255;
	}
}
RGBA_Impl_.writeUInt8 = function(this1,data,offset,format,premultiplied) {
	if(premultiplied == null) {
		premultiplied = false;
	}
	if(format == null) {
		format = 0;
	}
	if(premultiplied) {
		if((this1 & 255) == 0) {
			if(this1 != 0) {
				this1 = 0;
			}
		} else if((this1 & 255) != 255) {
			RGBA_Impl_.a16 = RGBA_Impl_.__alpha16[this1 & 255];
			this1 = ((this1 >>> 24 & 255) * RGBA_Impl_.a16 >> 16 & 255) << 24 | ((this1 >>> 16 & 255) * RGBA_Impl_.a16 >> 16 & 255) << 16 | ((this1 >>> 8 & 255) * RGBA_Impl_.a16 >> 16 & 255) << 8 | this1 & 255 & 255;
		}
	}
	switch(format) {
	case 0:
		data[offset] = this1 >>> 24 & 255;
		data[offset + 1] = this1 >>> 16 & 255;
		data[offset + 2] = this1 >>> 8 & 255;
		data[offset + 3] = this1 & 255;
		break;
	case 1:
		data[offset] = this1 & 255;
		data[offset + 1] = this1 >>> 24 & 255;
		data[offset + 2] = this1 >>> 16 & 255;
		data[offset + 3] = this1 >>> 8 & 255;
		break;
	case 2:
		data[offset] = this1 >>> 8 & 255;
		data[offset + 1] = this1 >>> 16 & 255;
		data[offset + 2] = this1 >>> 24 & 255;
		data[offset + 3] = this1 & 255;
		break;
	}
}
RGBA_Impl_.__fromARGB = function(argb) {
	var this1 = 0;
	var rgba = this1;
	rgba = (argb >>> 16 & 255 & 255) << 24 | (argb >>> 8 & 255 & 255) << 16 | (argb & 255 & 255) << 8 | argb >>> 24 & 255 & 255;
	return rgba;
}
RGBA_Impl_.__fromBGRA = function(bgra) {
	var this1 = 0;
	var rgba = this1;
	rgba = (bgra >>> 8 & 255 & 255) << 24 | (bgra >>> 16 & 255 & 255) << 16 | (bgra >>> 24 & 255 & 255) << 8 | bgra & 255 & 255;
	return rgba;
}
RGBA_Impl_.get_a = function(this1) {
	return this1 & 255;
}
RGBA_Impl_.set_a = function(this1,value) {
	this1 = (this1 >>> 24 & 255 & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | value & 255;
	return value;
}
RGBA_Impl_.get_b = function(this1) {
	return this1 >>> 8 & 255;
}
RGBA_Impl_.set_b = function(this1,value) {
	this1 = (this1 >>> 24 & 255 & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (value & 255) << 8 | this1 & 255 & 255;
	return value;
}
RGBA_Impl_.get_g = function(this1) {
	return this1 >>> 16 & 255;
}
RGBA_Impl_.set_g = function(this1,value) {
	this1 = (this1 >>> 24 & 255 & 255) << 24 | (value & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | this1 & 255 & 255;
	return value;
}
RGBA_Impl_.get_r = function(this1) {
	return this1 >>> 24 & 255;
}
RGBA_Impl_.set_r = function(this1,value) {
	this1 = (value & 255) << 24 | (this1 >>> 16 & 255 & 255) << 16 | (this1 >>> 8 & 255 & 255) << 8 | this1 & 255 & 255;
	return value;
}
// Export
exports.default = RGBA_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 152 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: ValueType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var ValueType = $hxClasses["ValueType"] = { __ename__: ["ValueType"], __constructs__: ["TNull","TInt","TFloat","TBool","TObject","TFunction","TClass","TEnum","TUnknown"] }
ValueType.TClass = function(c) { var $x = ["TClass",6,c]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }
ValueType.TNull = ["TNull",0];
ValueType.TNull.toString = $estr;
ValueType.TNull.__enum__ = ValueType;
ValueType.TObject = ["TObject",4];
ValueType.TObject.toString = $estr;
ValueType.TObject.__enum__ = ValueType;
ValueType.TFunction = ["TFunction",5];
ValueType.TFunction.toString = $estr;
ValueType.TFunction.__enum__ = ValueType;
ValueType.TInt = ["TInt",1];
ValueType.TInt.toString = $estr;
ValueType.TInt.__enum__ = ValueType;
ValueType.TUnknown = ["TUnknown",8];
ValueType.TUnknown.toString = $estr;
ValueType.TUnknown.__enum__ = ValueType;
ValueType.TEnum = function(e) { var $x = ["TEnum",7,e]; $x.__enum__ = ValueType; $x.toString = $estr; return $x; }
ValueType.TFloat = ["TFloat",2];
ValueType.TFloat.toString = $estr;
ValueType.TFloat.__enum__ = ValueType;
ValueType.TBool = ["TBool",3];
ValueType.TBool.toString = $estr;
ValueType.TBool.__enum__ = ValueType;
exports.default = ValueType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 153 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime._backend.html5.HTML5GLRenderContext
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function js_Boot() {return __webpack_require__(20);}
function Std() {return __webpack_require__(4);}
function haxe__$Int64__$_$_$Int64() {return __webpack_require__(54);}
function lime_graphics_opengl_GLContextType() {return __webpack_require__(87);}
function Reflect() {return __webpack_require__(5);}
function js_Browser() {return __webpack_require__(11);}
// Constructor
var HTML5GLRenderContext = function(context) {
	this.MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 37447;
	this.TIMEOUT_IGNORED = -1;
	this.INVALID_INDEX = -1;
	this.DEPTH32F_STENCIL8 = 36013;
	this.DEPTH_COMPONENT32F = 36012;
	this.DYNAMIC_COPY = 35050;
	this.DYNAMIC_READ = 35049;
	this.STATIC_COPY = 35046;
	this.STATIC_READ = 35045;
	this.STREAM_COPY = 35042;
	this.STREAM_READ = 35041;
	this.DEPTH_COMPONENT24 = 33190;
	this.MAX = 32776;
	this.MIN = 32775;
	this.STENCIL = 6146;
	this.DEPTH = 6145;
	this.COLOR = 6144;
	this.SYNC_FLUSH_COMMANDS_BIT = 1;
	this.WAIT_FAILED = 37149;
	this.CONDITION_SATISFIED = 37148;
	this.TIMEOUT_EXPIRED = 37147;
	this.ALREADY_SIGNALED = 37146;
	this.SIGNALED = 37145;
	this.UNSIGNALED = 37144;
	this.SYNC_GPU_COMMANDS_COMPLETE = 37143;
	this.SYNC_FENCE = 37142;
	this.SYNC_FLAGS = 37141;
	this.SYNC_STATUS = 37140;
	this.SYNC_CONDITION = 37139;
	this.OBJECT_TYPE = 37138;
	this.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 35398;
	this.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 35396;
	this.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 35395;
	this.UNIFORM_BLOCK_ACTIVE_UNIFORMS = 35394;
	this.UNIFORM_BLOCK_DATA_SIZE = 35392;
	this.UNIFORM_BLOCK_BINDING = 35391;
	this.UNIFORM_IS_ROW_MAJOR = 35390;
	this.UNIFORM_MATRIX_STRIDE = 35389;
	this.UNIFORM_ARRAY_STRIDE = 35388;
	this.UNIFORM_OFFSET = 35387;
	this.UNIFORM_BLOCK_INDEX = 35386;
	this.UNIFORM_SIZE = 35384;
	this.UNIFORM_TYPE = 35383;
	this.ACTIVE_UNIFORM_BLOCKS = 35382;
	this.UNIFORM_BUFFER_OFFSET_ALIGNMENT = 35380;
	this.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 35379;
	this.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 35377;
	this.MAX_UNIFORM_BLOCK_SIZE = 35376;
	this.MAX_UNIFORM_BUFFER_BINDINGS = 35375;
	this.MAX_COMBINED_UNIFORM_BLOCKS = 35374;
	this.MAX_FRAGMENT_UNIFORM_BLOCKS = 35373;
	this.MAX_VERTEX_UNIFORM_BLOCKS = 35371;
	this.UNIFORM_BUFFER_SIZE = 35370;
	this.UNIFORM_BUFFER_START = 35369;
	this.UNIFORM_BUFFER_BINDING = 35368;
	this.UNIFORM_BUFFER = 35345;
	this.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 36182;
	this.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 36052;
	this.RENDERBUFFER_SAMPLES = 36011;
	this.READ_FRAMEBUFFER_BINDING = 36010;
	this.DRAW_FRAMEBUFFER = 36009;
	this.READ_FRAMEBUFFER = 36008;
	this.DRAW_FRAMEBUFFER_BINDING = 36006;
	this.DEPTH24_STENCIL8 = 35056;
	this.FRAMEBUFFER_DEFAULT = 33304;
	this.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 33303;
	this.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 33302;
	this.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 33301;
	this.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 33300;
	this.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 33299;
	this.FRAMEBUFFER_ATTACHMENT_RED_SIZE = 33298;
	this.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 33297;
	this.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 33296;
	this.TRANSFORM_FEEDBACK_BINDING = 36389;
	this.TRANSFORM_FEEDBACK_ACTIVE = 36388;
	this.TRANSFORM_FEEDBACK_PAUSED = 36387;
	this.TRANSFORM_FEEDBACK = 36386;
	this.TRANSFORM_FEEDBACK_BUFFER_BINDING = 35983;
	this.TRANSFORM_FEEDBACK_BUFFER = 35982;
	this.SEPARATE_ATTRIBS = 35981;
	this.INTERLEAVED_ATTRIBS = 35980;
	this.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 35979;
	this.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 35978;
	this.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 35976;
	this.TRANSFORM_FEEDBACK_BUFFER_SIZE = 35973;
	this.TRANSFORM_FEEDBACK_BUFFER_START = 35972;
	this.TRANSFORM_FEEDBACK_VARYINGS = 35971;
	this.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 35968;
	this.TRANSFORM_FEEDBACK_BUFFER_MODE = 35967;
	this.VERTEX_ATTRIB_ARRAY_DIVISOR = 35070;
	this.VERTEX_ATTRIB_ARRAY_INTEGER = 35069;
	this.SIGNED_NORMALIZED = 36764;
	this.UNSIGNED_NORMALIZED = 35863;
	this.UNSIGNED_INT_VEC4 = 36296;
	this.UNSIGNED_INT_VEC3 = 36295;
	this.UNSIGNED_INT_VEC2 = 36294;
	this.FLOAT_MAT4x3 = 35690;
	this.FLOAT_MAT4x2 = 35689;
	this.FLOAT_MAT3x4 = 35688;
	this.FLOAT_MAT3x2 = 35687;
	this.FLOAT_MAT2x4 = 35686;
	this.FLOAT_MAT2x3 = 35685;
	this.COPY_WRITE_BUFFER_BINDING = 36663;
	this.COPY_READ_BUFFER_BINDING = 36662;
	this.COPY_WRITE_BUFFER = 36663;
	this.COPY_READ_BUFFER = 36662;
	this.PIXEL_UNPACK_BUFFER_BINDING = 35055;
	this.PIXEL_PACK_BUFFER_BINDING = 35053;
	this.PIXEL_UNPACK_BUFFER = 35052;
	this.PIXEL_PACK_BUFFER = 35051;
	this.SAMPLER_BINDING = 35097;
	this.MAX_SAMPLES = 36183;
	this.UNSIGNED_INT_SAMPLER_2D_ARRAY = 36311;
	this.UNSIGNED_INT_SAMPLER_CUBE = 36308;
	this.UNSIGNED_INT_SAMPLER_3D = 36307;
	this.UNSIGNED_INT_SAMPLER_2D = 36306;
	this.INT_SAMPLER_2D_ARRAY = 36303;
	this.INT_SAMPLER_CUBE = 36300;
	this.INT_SAMPLER_3D = 36299;
	this.INT_SAMPLER_2D = 36298;
	this.SAMPLER_CUBE_SHADOW = 36293;
	this.SAMPLER_2D_ARRAY_SHADOW = 36292;
	this.SAMPLER_2D_ARRAY = 36289;
	this.SAMPLER_2D_SHADOW = 35682;
	this.SAMPLER_3D = 35679;
	this.COLOR_ATTACHMENT15 = 36079;
	this.COLOR_ATTACHMENT14 = 36078;
	this.COLOR_ATTACHMENT13 = 36077;
	this.COLOR_ATTACHMENT12 = 36076;
	this.COLOR_ATTACHMENT11 = 36075;
	this.COLOR_ATTACHMENT10 = 36074;
	this.COLOR_ATTACHMENT9 = 36073;
	this.COLOR_ATTACHMENT8 = 36072;
	this.COLOR_ATTACHMENT7 = 36071;
	this.COLOR_ATTACHMENT6 = 36070;
	this.COLOR_ATTACHMENT5 = 36069;
	this.COLOR_ATTACHMENT4 = 36068;
	this.COLOR_ATTACHMENT3 = 36067;
	this.COLOR_ATTACHMENT2 = 36066;
	this.COLOR_ATTACHMENT1 = 36065;
	this.MAX_COLOR_ATTACHMENTS = 36063;
	this.DRAW_BUFFER15 = 34868;
	this.DRAW_BUFFER14 = 34867;
	this.DRAW_BUFFER13 = 34866;
	this.DRAW_BUFFER12 = 34865;
	this.DRAW_BUFFER11 = 34864;
	this.DRAW_BUFFER10 = 34863;
	this.DRAW_BUFFER9 = 34862;
	this.DRAW_BUFFER8 = 34861;
	this.DRAW_BUFFER7 = 34860;
	this.DRAW_BUFFER6 = 34859;
	this.DRAW_BUFFER5 = 34858;
	this.DRAW_BUFFER4 = 34857;
	this.DRAW_BUFFER3 = 34856;
	this.DRAW_BUFFER2 = 34855;
	this.DRAW_BUFFER1 = 34854;
	this.DRAW_BUFFER0 = 34853;
	this.MAX_DRAW_BUFFERS = 34852;
	this.ANY_SAMPLES_PASSED_CONSERVATIVE = 36202;
	this.ANY_SAMPLES_PASSED = 35887;
	this.QUERY_RESULT_AVAILABLE = 34919;
	this.QUERY_RESULT = 34918;
	this.CURRENT_QUERY = 34917;
	this.INT_2_10_10_10_REV = 36255;
	this.RG_INTEGER = 33320;
	this.RG = 33319;
	this.HALF_FLOAT = 5131;
	this.UNSIGNED_INT_24_8 = 34042;
	this.FLOAT_32_UNSIGNED_INT_24_8_REV = 36269;
	this.UNSIGNED_INT_5_9_9_9_REV = 35902;
	this.UNSIGNED_INT_10F_11F_11F_REV = 35899;
	this.UNSIGNED_INT_2_10_10_10_REV = 33640;
	this.TEXTURE_IMMUTABLE_LEVELS = 33503;
	this.TEXTURE_IMMUTABLE_FORMAT = 37167;
	this.RGB10_A2UI = 36975;
	this.RGBA8_SNORM = 36759;
	this.RGB8_SNORM = 36758;
	this.RG8_SNORM = 36757;
	this.R8_SNORM = 36756;
	this.RG32UI = 33340;
	this.RG32I = 33339;
	this.RG16UI = 33338;
	this.RG16I = 33337;
	this.RG8UI = 33336;
	this.RG8I = 33335;
	this.R32UI = 33334;
	this.R32I = 33333;
	this.R16UI = 33332;
	this.R16I = 33331;
	this.R8UI = 33330;
	this.R8I = 33329;
	this.RG32F = 33328;
	this.RG16F = 33327;
	this.R32F = 33326;
	this.R16F = 33325;
	this.RG8 = 33323;
	this.R8 = 33321;
	this.RGBA_INTEGER = 36249;
	this.RGB_INTEGER = 36248;
	this.RED_INTEGER = 36244;
	this.RGB8I = 36239;
	this.RGBA8I = 36238;
	this.RGB16I = 36233;
	this.RGBA16I = 36232;
	this.RGB32I = 36227;
	this.RGBA32I = 36226;
	this.RGB8UI = 36221;
	this.RGBA8UI = 36220;
	this.RGB16UI = 36215;
	this.RGBA16UI = 36214;
	this.RGB32UI = 36209;
	this.RGBA32UI = 36208;
	this.RGB9_E5 = 35901;
	this.R11F_G11F_B10F = 35898;
	this.TEXTURE_BINDING_2D_ARRAY = 35869;
	this.TEXTURE_2D_ARRAY = 35866;
	this.RGB16F = 34843;
	this.RGBA16F = 34842;
	this.RGB32F = 34837;
	this.RGBA32F = 34836;
	this.COMPARE_REF_TO_TEXTURE = 34894;
	this.SRGB8_ALPHA8 = 35907;
	this.SRGB8 = 35905;
	this.SRGB = 35904;
	this.TEXTURE_COMPARE_FUNC = 34893;
	this.TEXTURE_COMPARE_MODE = 34892;
	this.TEXTURE_MAX_LEVEL = 33085;
	this.TEXTURE_BASE_LEVEL = 33084;
	this.TEXTURE_MAX_LOD = 33083;
	this.TEXTURE_MIN_LOD = 33082;
	this.TEXTURE_WRAP_R = 32882;
	this.TEXTURE_3D = 32879;
	this.RGB10_A2 = 32857;
	this.RGBA8 = 32856;
	this.RGB8 = 32849;
	this.RED = 6403;
	this.MAX_ELEMENT_INDEX = 36203;
	this.MAX_SERVER_WAIT_TIMEOUT = 37137;
	this.MAX_FRAGMENT_INPUT_COMPONENTS = 37157;
	this.MAX_VERTEX_OUTPUT_COMPONENTS = 37154;
	this.VERTEX_ARRAY_BINDING = 34229;
	this.RASTERIZER_DISCARD = 35977;
	this.FRAGMENT_SHADER_DERIVATIVE_HINT = 35723;
	this.MAX_VARYING_COMPONENTS = 35659;
	this.MAX_PROGRAM_TEXEL_OFFSET = 35077;
	this.MIN_PROGRAM_TEXEL_OFFSET = 35076;
	this.MAX_ARRAY_TEXTURE_LAYERS = 35071;
	this.MAX_VERTEX_UNIFORM_COMPONENTS = 35658;
	this.MAX_FRAGMENT_UNIFORM_COMPONENTS = 35657;
	this.MAX_TEXTURE_LOD_BIAS = 34045;
	this.MAX_ELEMENTS_INDICES = 33001;
	this.MAX_ELEMENTS_VERTICES = 33000;
	this.MAX_3D_TEXTURE_SIZE = 32883;
	this.UNPACK_IMAGE_HEIGHT = 32878;
	this.UNPACK_SKIP_IMAGES = 32877;
	this.TEXTURE_BINDING_3D = 32874;
	this.PACK_SKIP_PIXELS = 3332;
	this.PACK_SKIP_ROWS = 3331;
	this.PACK_ROW_LENGTH = 3330;
	this.UNPACK_SKIP_PIXELS = 3316;
	this.UNPACK_SKIP_ROWS = 3315;
	this.UNPACK_ROW_LENGTH = 3314;
	this.READ_BUFFER = 3074;
	this.BROWSER_DEFAULT_WEBGL = 37444;
	this.UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443;
	this.CONTEXT_LOST_WEBGL = 37442;
	this.UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441;
	this.UNPACK_FLIP_Y_WEBGL = 37440;
	this.INVALID_FRAMEBUFFER_OPERATION = 1286;
	this.MAX_RENDERBUFFER_SIZE = 34024;
	this.RENDERBUFFER_BINDING = 36007;
	this.FRAMEBUFFER_BINDING = 36006;
	this.FRAMEBUFFER_UNSUPPORTED = 36061;
	this.FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 36057;
	this.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 36055;
	this.FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 36054;
	this.FRAMEBUFFER_COMPLETE = 36053;
	this.NONE = 0;
	this.DEPTH_STENCIL_ATTACHMENT = 33306;
	this.STENCIL_ATTACHMENT = 36128;
	this.DEPTH_ATTACHMENT = 36096;
	this.COLOR_ATTACHMENT0 = 36064;
	this.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 36051;
	this.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 36050;
	this.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 36049;
	this.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 36048;
	this.RENDERBUFFER_STENCIL_SIZE = 36181;
	this.RENDERBUFFER_DEPTH_SIZE = 36180;
	this.RENDERBUFFER_ALPHA_SIZE = 36179;
	this.RENDERBUFFER_BLUE_SIZE = 36178;
	this.RENDERBUFFER_GREEN_SIZE = 36177;
	this.RENDERBUFFER_RED_SIZE = 36176;
	this.RENDERBUFFER_INTERNAL_FORMAT = 36164;
	this.RENDERBUFFER_HEIGHT = 36163;
	this.RENDERBUFFER_WIDTH = 36162;
	this.DEPTH_STENCIL = 34041;
	this.STENCIL_INDEX8 = 36168;
	this.STENCIL_INDEX = 6401;
	this.DEPTH_COMPONENT16 = 33189;
	this.RGB565 = 36194;
	this.RGB5_A1 = 32855;
	this.RGBA4 = 32854;
	this.RENDERBUFFER = 36161;
	this.FRAMEBUFFER = 36160;
	this.HIGH_INT = 36341;
	this.MEDIUM_INT = 36340;
	this.LOW_INT = 36339;
	this.HIGH_FLOAT = 36338;
	this.MEDIUM_FLOAT = 36337;
	this.LOW_FLOAT = 36336;
	this.COMPILE_STATUS = 35713;
	this.POINT_SPRITE = 34913;
	this.VERTEX_PROGRAM_POINT_SIZE = 34370;
	this.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 34975;
	this.VERTEX_ATTRIB_ARRAY_POINTER = 34373;
	this.VERTEX_ATTRIB_ARRAY_NORMALIZED = 34922;
	this.VERTEX_ATTRIB_ARRAY_TYPE = 34341;
	this.VERTEX_ATTRIB_ARRAY_STRIDE = 34340;
	this.VERTEX_ATTRIB_ARRAY_SIZE = 34339;
	this.VERTEX_ATTRIB_ARRAY_ENABLED = 34338;
	this.SAMPLER_CUBE = 35680;
	this.SAMPLER_2D = 35678;
	this.FLOAT_MAT4 = 35676;
	this.FLOAT_MAT3 = 35675;
	this.FLOAT_MAT2 = 35674;
	this.BOOL_VEC4 = 35673;
	this.BOOL_VEC3 = 35672;
	this.BOOL_VEC2 = 35671;
	this.BOOL = 35670;
	this.INT_VEC4 = 35669;
	this.INT_VEC3 = 35668;
	this.INT_VEC2 = 35667;
	this.FLOAT_VEC4 = 35666;
	this.FLOAT_VEC3 = 35665;
	this.FLOAT_VEC2 = 35664;
	this.MIRRORED_REPEAT = 33648;
	this.CLAMP_TO_EDGE = 33071;
	this.REPEAT = 10497;
	this.ACTIVE_TEXTURE = 34016;
	this.TEXTURE31 = 34015;
	this.TEXTURE30 = 34014;
	this.TEXTURE29 = 34013;
	this.TEXTURE28 = 34012;
	this.TEXTURE27 = 34011;
	this.TEXTURE26 = 34010;
	this.TEXTURE25 = 34009;
	this.TEXTURE24 = 34008;
	this.TEXTURE23 = 34007;
	this.TEXTURE22 = 34006;
	this.TEXTURE21 = 34005;
	this.TEXTURE20 = 34004;
	this.TEXTURE19 = 34003;
	this.TEXTURE18 = 34002;
	this.TEXTURE17 = 34001;
	this.TEXTURE16 = 34000;
	this.TEXTURE15 = 33999;
	this.TEXTURE14 = 33998;
	this.TEXTURE13 = 33997;
	this.TEXTURE12 = 33996;
	this.TEXTURE11 = 33995;
	this.TEXTURE10 = 33994;
	this.TEXTURE9 = 33993;
	this.TEXTURE8 = 33992;
	this.TEXTURE7 = 33991;
	this.TEXTURE6 = 33990;
	this.TEXTURE5 = 33989;
	this.TEXTURE4 = 33988;
	this.TEXTURE3 = 33987;
	this.TEXTURE2 = 33986;
	this.TEXTURE1 = 33985;
	this.TEXTURE0 = 33984;
	this.MAX_CUBE_MAP_TEXTURE_SIZE = 34076;
	this.TEXTURE_CUBE_MAP_NEGATIVE_Z = 34074;
	this.TEXTURE_CUBE_MAP_POSITIVE_Z = 34073;
	this.TEXTURE_CUBE_MAP_NEGATIVE_Y = 34072;
	this.TEXTURE_CUBE_MAP_POSITIVE_Y = 34071;
	this.TEXTURE_CUBE_MAP_NEGATIVE_X = 34070;
	this.TEXTURE_CUBE_MAP_POSITIVE_X = 34069;
	this.TEXTURE_BINDING_CUBE_MAP = 34068;
	this.TEXTURE_CUBE_MAP = 34067;
	this.TEXTURE = 5890;
	this.TEXTURE_2D = 3553;
	this.TEXTURE_WRAP_T = 10243;
	this.TEXTURE_WRAP_S = 10242;
	this.TEXTURE_MIN_FILTER = 10241;
	this.TEXTURE_MAG_FILTER = 10240;
	this.LINEAR_MIPMAP_LINEAR = 9987;
	this.NEAREST_MIPMAP_LINEAR = 9986;
	this.LINEAR_MIPMAP_NEAREST = 9985;
	this.NEAREST_MIPMAP_NEAREST = 9984;
	this.LINEAR = 9729;
	this.NEAREST = 9728;
	this.VERSION = 7938;
	this.RENDERER = 7937;
	this.VENDOR = 7936;
	this.DECR_WRAP = 34056;
	this.INCR_WRAP = 34055;
	this.INVERT = 5386;
	this.DECR = 7683;
	this.INCR = 7682;
	this.REPLACE = 7681;
	this.KEEP = 7680;
	this.ALWAYS = 519;
	this.GEQUAL = 518;
	this.NOTEQUAL = 517;
	this.GREATER = 516;
	this.LEQUAL = 515;
	this.EQUAL = 514;
	this.LESS = 513;
	this.NEVER = 512;
	this.CURRENT_PROGRAM = 35725;
	this.SHADING_LANGUAGE_VERSION = 35724;
	this.ACTIVE_ATTRIBUTES = 35721;
	this.ACTIVE_UNIFORMS = 35718;
	this.ATTACHED_SHADERS = 35717;
	this.VALIDATE_STATUS = 35715;
	this.LINK_STATUS = 35714;
	this.DELETE_STATUS = 35712;
	this.SHADER_TYPE = 35663;
	this.MAX_FRAGMENT_UNIFORM_VECTORS = 36349;
	this.MAX_TEXTURE_IMAGE_UNITS = 34930;
	this.MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;
	this.MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;
	this.MAX_VARYING_VECTORS = 36348;
	this.MAX_VERTEX_UNIFORM_VECTORS = 36347;
	this.MAX_VERTEX_ATTRIBS = 34921;
	this.VERTEX_SHADER = 35633;
	this.FRAGMENT_SHADER = 35632;
	this.UNSIGNED_SHORT_5_6_5 = 33635;
	this.UNSIGNED_SHORT_5_5_5_1 = 32820;
	this.UNSIGNED_SHORT_4_4_4_4 = 32819;
	this.LUMINANCE_ALPHA = 6410;
	this.LUMINANCE = 6409;
	this.RGBA = 6408;
	this.RGB = 6407;
	this.ALPHA = 6406;
	this.DEPTH_COMPONENT = 6402;
	this.FLOAT = 5126;
	this.UNSIGNED_INT = 5125;
	this.INT = 5124;
	this.UNSIGNED_SHORT = 5123;
	this.SHORT = 5122;
	this.UNSIGNED_BYTE = 5121;
	this.BYTE = 5120;
	this.GENERATE_MIPMAP_HINT = 33170;
	this.NICEST = 4354;
	this.FASTEST = 4353;
	this.DONT_CARE = 4352;
	this.COMPRESSED_TEXTURE_FORMATS = 34467;
	this.SAMPLE_COVERAGE_INVERT = 32939;
	this.SAMPLE_COVERAGE_VALUE = 32938;
	this.SAMPLES = 32937;
	this.SAMPLE_BUFFERS = 32936;
	this.TEXTURE_BINDING_2D = 32873;
	this.POLYGON_OFFSET_FACTOR = 32824;
	this.POLYGON_OFFSET_UNITS = 10752;
	this.STENCIL_BITS = 3415;
	this.DEPTH_BITS = 3414;
	this.ALPHA_BITS = 3413;
	this.BLUE_BITS = 3412;
	this.GREEN_BITS = 3411;
	this.RED_BITS = 3410;
	this.SUBPIXEL_BITS = 3408;
	this.MAX_VIEWPORT_DIMS = 3386;
	this.MAX_TEXTURE_SIZE = 3379;
	this.PACK_ALIGNMENT = 3333;
	this.UNPACK_ALIGNMENT = 3317;
	this.COLOR_WRITEMASK = 3107;
	this.COLOR_CLEAR_VALUE = 3106;
	this.SCISSOR_BOX = 3088;
	this.VIEWPORT = 2978;
	this.STENCIL_BACK_WRITEMASK = 36005;
	this.STENCIL_BACK_VALUE_MASK = 36004;
	this.STENCIL_BACK_REF = 36003;
	this.STENCIL_BACK_PASS_DEPTH_PASS = 34819;
	this.STENCIL_BACK_PASS_DEPTH_FAIL = 34818;
	this.STENCIL_BACK_FAIL = 34817;
	this.STENCIL_BACK_FUNC = 34816;
	this.STENCIL_WRITEMASK = 2968;
	this.STENCIL_VALUE_MASK = 2963;
	this.STENCIL_REF = 2967;
	this.STENCIL_PASS_DEPTH_PASS = 2966;
	this.STENCIL_PASS_DEPTH_FAIL = 2965;
	this.STENCIL_FAIL = 2964;
	this.STENCIL_FUNC = 2962;
	this.STENCIL_CLEAR_VALUE = 2961;
	this.DEPTH_FUNC = 2932;
	this.DEPTH_CLEAR_VALUE = 2931;
	this.DEPTH_WRITEMASK = 2930;
	this.DEPTH_RANGE = 2928;
	this.FRONT_FACE = 2886;
	this.CULL_FACE_MODE = 2885;
	this.ALIASED_LINE_WIDTH_RANGE = 33902;
	this.ALIASED_POINT_SIZE_RANGE = 33901;
	this.LINE_WIDTH = 2849;
	this.CCW = 2305;
	this.CW = 2304;
	this.OUT_OF_MEMORY = 1285;
	this.INVALID_OPERATION = 1282;
	this.INVALID_VALUE = 1281;
	this.INVALID_ENUM = 1280;
	this.NO_ERROR = 0;
	this.SAMPLE_COVERAGE = 32928;
	this.SAMPLE_ALPHA_TO_COVERAGE = 32926;
	this.POLYGON_OFFSET_FILL = 32823;
	this.SCISSOR_TEST = 3089;
	this.DEPTH_TEST = 2929;
	this.STENCIL_TEST = 2960;
	this.DITHER = 3024;
	this.BLEND = 3042;
	this.CULL_FACE = 2884;
	this.FRONT_AND_BACK = 1032;
	this.BACK = 1029;
	this.FRONT = 1028;
	this.CURRENT_VERTEX_ATTRIB = 34342;
	this.BUFFER_USAGE = 34661;
	this.BUFFER_SIZE = 34660;
	this.DYNAMIC_DRAW = 35048;
	this.STATIC_DRAW = 35044;
	this.STREAM_DRAW = 35040;
	this.ELEMENT_ARRAY_BUFFER_BINDING = 34965;
	this.ARRAY_BUFFER_BINDING = 34964;
	this.ELEMENT_ARRAY_BUFFER = 34963;
	this.ARRAY_BUFFER = 34962;
	this.BLEND_COLOR = 32773;
	this.ONE_MINUS_CONSTANT_ALPHA = 32772;
	this.CONSTANT_ALPHA = 32771;
	this.ONE_MINUS_CONSTANT_COLOR = 32770;
	this.CONSTANT_COLOR = 32769;
	this.BLEND_SRC_ALPHA = 32971;
	this.BLEND_DST_ALPHA = 32970;
	this.BLEND_SRC_RGB = 32969;
	this.BLEND_DST_RGB = 32968;
	this.FUNC_REVERSE_SUBTRACT = 32779;
	this.FUNC_SUBTRACT = 32778;
	this.BLEND_EQUATION_ALPHA = 34877;
	this.BLEND_EQUATION_RGB = 32777;
	this.BLEND_EQUATION = 32777;
	this.FUNC_ADD = 32774;
	this.SRC_ALPHA_SATURATE = 776;
	this.ONE_MINUS_DST_COLOR = 775;
	this.DST_COLOR = 774;
	this.ONE_MINUS_DST_ALPHA = 773;
	this.DST_ALPHA = 772;
	this.ONE_MINUS_SRC_ALPHA = 771;
	this.SRC_ALPHA = 770;
	this.ONE_MINUS_SRC_COLOR = 769;
	this.SRC_COLOR = 768;
	this.ONE = 1;
	this.ZERO = 0;
	this.TRIANGLE_FAN = 6;
	this.TRIANGLE_STRIP = 5;
	this.TRIANGLES = 4;
	this.LINE_STRIP = 3;
	this.LINE_LOOP = 2;
	this.LINES = 1;
	this.POINTS = 0;
	this.COLOR_BUFFER_BIT = 16384;
	this.STENCIL_BUFFER_BIT = 1024;
	this.DEPTH_BUFFER_BIT = 256;
	this.__context = context;
	this.version = 1;
	this.type = (lime_graphics_opengl_GLContextType().default).WEBGL;
	if(context != null) {
		var gl = context;
		if((Reflect().default).hasField(gl,"rawgl")) {
			gl = (Reflect().default).field(context,"rawgl");
		}
		if((Reflect().default).hasField((js_Browser().default).get_window(),"WebGL2RenderingContext") && (Std().default)["is"](gl,WebGL2RenderingContext)) {
			this.version = 2;
		}
	}
}
// Meta
HTML5GLRenderContext.__name__ = ["lime","_backend","html5","HTML5GLRenderContext"];
HTML5GLRenderContext.prototype = {
	activeTexture: function(texture) {
		this.__context.activeTexture(texture);
	},
	attachShader: function(program,shader) {
		this.__context.attachShader(program,shader);
	},
	beginQuery: function(target,query) {
		this.__context.beginQuery(target,query);
	},
	beginTransformFeedback: function(primitiveNode) {
		this.__context.beginTransformFeedback(primitiveNode);
	},
	bindAttribLocation: function(program,index,name) {
		this.__context.bindAttribLocation(program,index,name);
	},
	bindBuffer: function(target,buffer) {
		this.__context.bindBuffer(target,buffer);
	},
	bindBufferBase: function(target,index,buffer) {
		this.__context.bindBufferBase(target,index,buffer);
	},
	bindBufferRange: function(target,index,buffer,offset,size) {
		this.__context.bindBufferRange(target,index,buffer,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt((lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(offset)),(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(size));
	},
	bindFramebuffer: function(target,framebuffer) {
		this.__context.bindFramebuffer(target,framebuffer);
	},
	bindRenderbuffer: function(target,renderbuffer) {
		this.__context.bindRenderbuffer(target,renderbuffer);
	},
	bindSampler: function(unit,sampler) {
		this.__context.bindSampler(unit,sampler);
	},
	bindTexture: function(target,texture) {
		this.__context.bindTexture(target,texture);
	},
	bindTransformFeedback: function(target,transformFeedback) {
		this.__context.bindTransformFeedback(target,transformFeedback);
	},
	bindVertexArray: function(vertexArray) {
		this.__context.bindVertexArray(vertexArray);
	},
	blendColor: function(red,green,blue,alpha) {
		this.__context.blendColor(red,green,blue,alpha);
	},
	blendEquation: function(mode) {
		this.__context.blendEquation(mode);
	},
	blendEquationSeparate: function(modeRGB,modeAlpha) {
		this.__context.blendEquationSeparate(modeRGB,modeAlpha);
	},
	blendFunc: function(sfactor,dfactor) {
		this.__context.blendFunc(sfactor,dfactor);
	},
	blendFuncSeparate: function(srcRGB,dstRGB,srcAlpha,dstAlpha) {
		this.__context.blendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
	},
	blitFramebuffer: function(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1,mask,filter) {
		this.__context.blitFramebuffer(srcX0,srcY0,srcX1,srcY1,dstX0,dstY0,dstX1,dstY1,mask,filter);
	},
	bufferData: function(target,size,data,usage) {
		this.__context.bufferData(target,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data,size),usage);
	},
	bufferDataWEBGL: function(target,srcData,usage,srcOffset,length) {
		if(srcOffset != null) {
			this.__context.bufferData(target,srcData,usage,srcOffset,length);
		} else {
			this.__context.bufferData(target,srcData,usage);
		}
	},
	bufferSubData: function(target,dstByteOffset,size,data) {
		this.__context.bufferSubData(target,dstByteOffset,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data,size));
	},
	bufferSubDataWEBGL: function(target,dstByteOffset,srcData,srcOffset,length) {
		if(srcOffset != null) {
			this.__context.bufferSubData(target,dstByteOffset,srcData,srcOffset,length);
		} else {
			this.__context.bufferSubData(target,dstByteOffset,srcData);
		}
	},
	checkFramebufferStatus: function(target) {
		return this.__context.checkFramebufferStatus(target);
	},
	clear: function(mask) {
		this.__context.clear(mask);
	},
	clearBufferfi: function(buffer,drawbuffer,depth,stencil) {
		this.__context.clearBufferfi(buffer,drawbuffer,depth,stencil);
	},
	clearBufferfv: function(buffer,drawbuffer,values) {
		this.__context.clearBufferfv(buffer,drawbuffer,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(values));
	},
	clearBufferfvWEBGL: function(buffer,drawbuffer,values,srcOffset) {
		this.__context.clearBufferfv(buffer,drawbuffer,values,srcOffset);
	},
	clearBufferiv: function(buffer,drawbuffer,values) {
		this.__context.clearBufferiv(buffer,drawbuffer,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(values));
	},
	clearBufferivWEBGL: function(buffer,drawbuffer,values,srcOffset) {
		this.__context.clearBufferiv(buffer,drawbuffer,values,srcOffset);
	},
	clearBufferuiv: function(buffer,drawbuffer,values) {
		this.__context.clearBufferuiv(buffer,drawbuffer,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toUInt32Array(values));
	},
	clearBufferuivWEBGL: function(buffer,drawbuffer,values,srcOffset) {
		this.__context.clearBufferuiv(buffer,drawbuffer,values,srcOffset);
	},
	clearColor: function(red,green,blue,alpha) {
		this.__context.clearColor(red,green,blue,alpha);
	},
	clearDepth: function(depth) {
		this.__context.clearDepth(depth);
	},
	clearDepthf: function(depth) {
		this.clearDepth(depth);
	},
	clearStencil: function(s) {
		this.__context.clearStencil(s);
	},
	clientWaitSync: function(sync,flags,timeout) {
		return this.__context.clientWaitSync(sync,flags,timeout);
	},
	copyBufferSubData: function(readTarget,writeTarget,readOffset,writeOffset,size) {
	},
	colorMask: function(red,green,blue,alpha) {
		this.__context.colorMask(red,green,blue,alpha);
	},
	compileShader: function(shader) {
		this.__context.compileShader(shader);
	},
	compressedTexImage2D: function(target,level,internalformat,width,height,border,imageSize,data) {
		this.__context.compressedTexImage2D(target,level,internalformat,width,height,border,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data,imageSize));
	},
	compressedTexImage2DWEBGL: function(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride) {
		if(srcOffset != null) {
			this.__context.compressedTexImage2D(target,level,internalformat,width,height,border,srcData,srcOffset,srcLengthOverride);
		} else {
			this.__context.compressedTexImage2D(target,level,internalformat,width,height,border,srcData);
		}
	},
	compressedTexImage3D: function(target,level,internalformat,width,height,depth,border,imageSize,data) {
		this.__context.compressedTexImage3D(target,level,internalformat,width,height,depth,border,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data,imageSize));
	},
	compressedTexImage3DWEBGL: function(target,level,internalformat,width,height,depth,border,srcData,srcOffset,srcLengthOverride) {
		this.__context.compressedTexImage3D(target,level,internalformat,width,height,depth,border,srcData,srcOffset,srcLengthOverride);
	},
	compressedTexSubImage2D: function(target,level,xoffset,yoffset,width,height,format,imageSize,data) {
		this.__context.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data,imageSize));
	},
	compressedTexSubImage2DWEBGL: function(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride) {
		if(srcOffset != null) {
			this.__context.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData,srcOffset,srcLengthOverride);
		} else {
			this.__context.compressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,srcData);
		}
	},
	compressedTexSubImage3D: function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data) {
		this.__context.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data,imageSize));
	},
	compressedTexSubImage3DWEBGL: function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,srcData,srcOffset,srcLengthOverride) {
		this.__context.compressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,srcData,srcOffset,srcLengthOverride);
	},
	copySubBufferData: function(readTarget,writeTarget,readOffset,writeOffset,size) {
		this.__context.copySubBufferData(readTarget,writeTarget,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt((lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(readOffset)),(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt((lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(writeOffset)),size);
	},
	copyTexImage2D: function(target,level,internalformat,x,y,width,height,border) {
		this.__context.copyTexImage2D(target,level,internalformat,x,y,width,height,border);
	},
	copyTexSubImage2D: function(target,level,xoffset,yoffset,x,y,width,height) {
		this.__context.copyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height);
	},
	copyTexSubImage3D: function(target,level,xoffset,yoffset,zoffset,x,y,width,height) {
		this.__context.copyTexSubImage3D(target,level,xoffset,yoffset,zoffset,x,y,width,height);
	},
	createBuffer: function() {
		return this.__context.createBuffer();
	},
	createFramebuffer: function() {
		return this.__context.createFramebuffer();
	},
	createProgram: function() {
		return this.__context.createProgram();
	},
	createQuery: function() {
		return this.__context.createQuery();
	},
	createRenderbuffer: function() {
		return this.__context.createRenderbuffer();
	},
	createSampler: function() {
		return this.__context.createSampler();
	},
	createShader: function(type) {
		return this.__context.createShader(type);
	},
	createTexture: function() {
		return this.__context.createTexture();
	},
	createTransformFeedback: function() {
		return this.__context.createTransformFeedback();
	},
	createVertexArray: function() {
		return this.__context.createVertexArray();
	},
	cullFace: function(mode) {
		this.__context.cullFace(mode);
	},
	deleteBuffer: function(buffer) {
		this.__context.deleteBuffer(buffer);
	},
	deleteFramebuffer: function(framebuffer) {
		this.__context.deleteFramebuffer(framebuffer);
	},
	deleteProgram: function(program) {
		this.__context.deleteProgram(program);
	},
	deleteQuery: function(query) {
		this.__context.deleteQuery(query);
	},
	deleteRenderbuffer: function(renderbuffer) {
		this.__context.deleteRenderbuffer(renderbuffer);
	},
	deleteSampler: function(sampler) {
		this.__context.deleteSampler(sampler);
	},
	deleteShader: function(shader) {
		this.__context.deleteShader(shader);
	},
	deleteSync: function(sync) {
		this.__context.deleteSync(sync);
	},
	deleteTexture: function(texture) {
		this.__context.deleteTexture(texture);
	},
	deleteTransformFeedback: function(transformFeedback) {
		this.__context.deleteTransformFeedback(transformFeedback);
	},
	deleteVertexArray: function(vertexArray) {
		this.__context.deleteVertexArray(vertexArray);
	},
	depthFunc: function(func) {
		this.__context.depthFunc(func);
	},
	depthMask: function(flag) {
		this.__context.depthMask(flag);
	},
	depthRange: function(zNear,zFar) {
		this.__context.depthRange(zNear,zFar);
	},
	depthRangef: function(zNear,zFar) {
		this.depthRange(zNear,zFar);
	},
	detachShader: function(program,shader) {
		this.__context.detachShader(program,shader);
	},
	disable: function(cap) {
		this.__context.disable(cap);
	},
	disableVertexAttribArray: function(index) {
		this.__context.disableVertexAttribArray(index);
	},
	drawArrays: function(mode,first,count) {
		this.__context.drawArrays(mode,first,count);
	},
	drawArraysInstanced: function(mode,first,count,instanceCount) {
		this.__context.drawArraysInstanced(mode,first,count,instanceCount);
	},
	drawBuffers: function(buffers) {
		this.__context.drawBuffers(buffers);
	},
	drawElements: function(mode,count,type,offset) {
		this.__context.drawElements(mode,count,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(offset));
	},
	drawElementsInstanced: function(mode,count,type,offset,instanceCount) {
		this.__context.drawElementsInstanced(mode,count,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt((lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(offset)),instanceCount);
	},
	drawRangeElements: function(mode,start,end,count,type,offset) {
		this.__context.drawRangeElements(mode,start,end,count,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt((lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(offset)));
	},
	enable: function(cap) {
		this.__context.enable(cap);
	},
	enableVertexAttribArray: function(index) {
		this.__context.enableVertexAttribArray(index);
	},
	endQuery: function(target) {
		this.__context.endQuery(target);
	},
	endTransformFeedback: function() {
		this.__context.endTransformFeedback();
	},
	fenceSync: function(condition,flags) {
		return this.__context.fenceSync(condition,flags);
	},
	finish: function() {
		this.__context.finish();
	},
	flush: function() {
		this.__context.flush();
	},
	framebufferRenderbuffer: function(target,attachment,renderbuffertarget,renderbuffer) {
		this.__context.framebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer);
	},
	framebufferTexture2D: function(target,attachment,textarget,texture,level) {
		this.__context.framebufferTexture2D(target,attachment,textarget,texture,level);
	},
	framebufferTextureLayer: function(target,attachment,texture,level,layer) {
		this.__context.framebufferTextureLayer(target,attachment,texture,level,layer);
	},
	frontFace: function(mode) {
		this.__context.frontFace(mode);
	},
	generateMipmap: function(target) {
		this.__context.generateMipmap(target);
	},
	getActiveAttrib: function(program,index) {
		return this.__context.getActiveAttrib(program,index);
	},
	getActiveUniform: function(program,index) {
		return this.__context.getActiveUniform(program,index);
	},
	getActiveUniformBlocki: function(program,uniformBlockIndex,pname) {
		return this.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);
	},
	getActiveUniformBlockiv: function(program,uniformBlockIndex,pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(params);
		view[0] = this.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);
	},
	getActiveUniformBlockName: function(program,uniformBlockIndex) {
		return this.__context.getActiveUniformBlockName(program,uniformBlockIndex);
	},
	getActiveUniformBlockParameter: function(program,uniformBlockIndex,pname) {
		return this.__context.getActiveUniformBlockParameter(program,uniformBlockIndex,pname);
	},
	getActiveUniforms: function(program,uniformIndices,pname) {
		return this.__context.getActiveUniforms(program,uniformIndices,pname);
	},
	getActiveUniformsiv: function(program,uniformIndices,pname,params) {
	},
	getAttachedShaders: function(program) {
		return this.__context.getAttachedShaders(program);
	},
	getAttribLocation: function(program,name) {
		return this.__context.getAttribLocation(program,name);
	},
	getBoolean: function(pname) {
		return this.getParameter(pname);
	},
	getBooleanv: function(pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toUInt8Array(params);
		var result = this.getParameter(pname);
		if((result instanceof Array) && result.__enum__ == null) {
			var data = result;
			var _g1 = 0;
			var _g = data.length;
			while(_g1 < _g) {
				var i = _g1++;
				view[i] = data[i] ? 1 : 0;
			}
		} else {
			view[0] = (js_Boot().default).__cast(result , $hxClasses["Bool"]) ? 1 : 0;
		}
	},
	getBufferParameter: function(target,pname) {
		return this.__context.getBufferParameter(target,pname);
	},
	getBufferParameteri: function(target,pname) {
		return this.getBufferParameter(target,pname);
	},
	getBufferParameteri64v: function(target,pname,params) {
	},
	getBufferParameteriv: function(target,pname,data) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(data);
		view[0] = this.getBufferParameter(target,pname);
	},
	getBufferPointerv: function(target,pname) {
		return (lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0);
	},
	getBufferSubData: function(target,offset,size,data) {
		this.__context.getBufferSubData(target,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt((lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(offset)),(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data,size));
	},
	getBufferSubDataWEBGL: function(target,srcByteOffset,dstData,srcOffset,length) {
		if(srcOffset != null) {
			this.__context.getBufferSubData(target,srcByteOffset,dstData,srcOffset,length);
		} else {
			this.__context.getBufferSubData(target,srcByteOffset,dstData);
		}
	},
	getContextAttributes: function() {
		return this.__context.getContextAttributes();
	},
	getError: function() {
		return this.__context.getError();
	},
	getExtension: function(name) {
		return this.__context.getExtension(name);
	},
	getFloat: function(pname) {
		return this.getParameter(pname);
	},
	getFloatv: function(pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(params);
		var result = this.getParameter(pname);
		if((Std().default)["is"](result,ArrayBufferView)) {
			var data = result;
			var _g1 = 0;
			var _g = data.length;
			while(_g1 < _g) {
				var i = _g1++;
				view[i] = data[i];
			}
		} else {
			view[0] = (js_Boot().default).__cast(result , $hxClasses["Float"]);
		}
	},
	getFragDataLocation: function(program,name) {
		return this.__context.getFragDataLocation(program,name);
	},
	getFramebufferAttachmentParameter: function(target,attachment,pname) {
		return this.__context.getFramebufferAttachmentParameter(target,attachment,pname);
	},
	getFramebufferAttachmentParameteri: function(target,attachment,pname) {
		return this.getFramebufferAttachmentParameter(target,attachment,pname);
	},
	getFramebufferAttachmentParameteriv: function(target,attachment,pname,params) {
		var value = this.getFramebufferAttachmentParameteri(target,attachment,pname);
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(params);
		view[0] = value;
	},
	getIndexedParameter: function(target,index) {
		return this.__context.getIndexedParameter(target,index);
	},
	getInteger: function(pname) {
		return this.getParameter(pname);
	},
	getInteger64: function(pname) {
		var this1 = new (haxe__$Int64__$_$_$Int64().default)(0,0);
		return this1;
	},
	getInteger64i: function(pname) {
		var this1 = new (haxe__$Int64__$_$_$Int64().default)(0,0);
		return this1;
	},
	getInteger64i_v: function(pname,index,params) {
	},
	getInteger64v: function(pname,params) {
	},
	getIntegeri: function(pname) {
		return 0;
	},
	getIntegeri_v: function(pname,index,params) {
	},
	getIntegerv: function(pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(params);
		var result = this.getParameter(pname);
		if((Std().default)["is"](result,ArrayBufferView)) {
			var data = result;
			var _g1 = 0;
			var _g = data.length;
			while(_g1 < _g) {
				var i = _g1++;
				view[i] = data[i];
			}
		} else {
			view[0] = (js_Boot().default).__cast(result , $hxClasses["Int"]);
		}
	},
	getInternalformati: function(target,internalformat,pname) {
		return 0;
	},
	getInternalformativ: function(target,internalformat,pname,bufSize,params) {
	},
	getInternalformatParameter: function(target,internalformat,pname) {
		return this.__context.getInternalformatParameter(target,internalformat,pname);
	},
	getParameter: function(pname) {
		return this.__context.getParameter(pname);
	},
	getProgramBinary: function(program,binaryFormat) {
		return null;
	},
	getProgrami: function(program,pname) {
		return this.getProgramParameter(program,pname);
	},
	getProgramiv: function(program,pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(params);
		view[0] = this.getProgramParameter(program,pname);
	},
	getProgramInfoLog: function(program) {
		return this.__context.getProgramInfoLog(program);
	},
	getProgramParameter: function(program,pname) {
		return this.__context.getProgramParameter(program,pname);
	},
	getQuery: function(target,pname) {
		return this.__context.getQuery(target,pname);
	},
	getQueryi: function(target,pname) {
		return 0;
	},
	getQueryiv: function(target,pname,params) {
	},
	getQueryObjectui: function(query,pname) {
		return 0;
	},
	getQueryObjectuiv: function(query,pname,params) {
	},
	getQueryParameter: function(query,pname) {
		return this.__context.getQueryParameter(query,pname);
	},
	getRenderbufferParameter: function(target,pname) {
		return this.__context.getRenderbufferParameter(target,pname);
	},
	getRenderbufferParameteri: function(target,pname) {
		return this.getRenderbufferParameter(target,pname);
	},
	getRenderbufferParameteriv: function(target,pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(params);
		view[0] = this.getRenderbufferParameter(target,pname);
	},
	getSamplerParameter: function(sampler,pname) {
		return this.__context.getSamplerParameter(sampler,pname);
	},
	getSamplerParameterf: function(sampler,pname) {
		return 0;
	},
	getSamplerParameterfv: function(sampler,pname,params) {
	},
	getSamplerParameteri: function(sampler,pname) {
		return 0;
	},
	getSamplerParameteriv: function(sampler,pname,params) {
	},
	getShaderi: function(shader,pname) {
		return this.getShaderParameter(shader,pname);
	},
	getShaderiv: function(shader,pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(params);
		view[0] = this.getShaderParameter(shader,pname);
	},
	getShaderInfoLog: function(shader) {
		return this.__context.getShaderInfoLog(shader);
	},
	getShaderParameter: function(shader,pname) {
		return this.__context.getShaderParameter(shader,pname);
	},
	getShaderPrecisionFormat: function(shadertype,precisiontype) {
		return this.__context.getShaderPrecisionFormat(shadertype,precisiontype);
	},
	getShaderSource: function(shader) {
		return this.__context.getShaderSource(shader);
	},
	getString: function(pname) {
		if(pname == 7939) {
			return this.getSupportedExtensions().join(" ");
		} else {
			return this.getParameter(pname);
		}
	},
	getStringi: function(name,index) {
		return null;
	},
	getSupportedExtensions: function() {
		return this.__context.getSupportedExtensions();
	},
	getSyncParameter: function(sync,pname) {
		return this.__context.getSyncParameter(sync,pname);
	},
	getSyncParameteri: function(sync,pname) {
		return 0;
	},
	getSyncParameteriv: function(sync,pname,params) {
	},
	getTexParameter: function(target,pname) {
		return this.__context.getTexParameter(target,pname);
	},
	getTexParameterf: function(target,pname) {
		return this.getTexParameter(target,pname);
	},
	getTexParameterfv: function(target,pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(params);
		view[0] = this.getTexParameter(target,pname);
	},
	getTexParameteri: function(target,pname) {
		return this.getTexParameter(target,pname);
	},
	getTexParameteriv: function(target,pname,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(params);
		view[0] = this.getTexParameter(target,pname);
	},
	getTransformFeedbackVarying: function(program,index) {
		return this.__context.getTransformFeedbackVarying(program,index);
	},
	getUniform: function(program,location) {
		return this.__context.getUniform(program,location);
	},
	getUniformf: function(program,location) {
		return this.getUniform(program,location);
	},
	getUniformfv: function(program,location,params) {
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(params);
		view[0] = this.getUniformf(program,location);
	},
	getUniformi: function(program,location) {
		return this.getUniform(program,location);
	},
	getUniformiv: function(program,location,params) {
		var value = this.getUniformi(program,location);
		var view = (lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(params);
		view[0] = value;
	},
	getUniformui: function(program,location) {
		return 0;
	},
	getUniformuiv: function(program,location,params) {
	},
	getUniformBlockIndex: function(program,uniformBlockName) {
		return this.__context.getUniformBlockIndex(program,uniformBlockName);
	},
	getUniformIndices: function(program,uniformNames) {
		return this.__context.getUniformIndices(program,uniformNames);
	},
	getUniformLocation: function(program,name) {
		return this.__context.getUniformLocation(program,name);
	},
	getVertexAttrib: function(index,pname) {
		return this.__context.getVertexAttrib(index,pname);
	},
	getVertexAttribf: function(index,pname) {
		return 0;
	},
	getVertexAttribfv: function(index,pname,params) {
	},
	getVertexAttribi: function(index,pname) {
		return 0;
	},
	getVertexAttribIi: function(index,pname) {
		return 0;
	},
	getVertexAttribIiv: function(index,pname,params) {
	},
	getVertexAttribIui: function(index,pname) {
		return 0;
	},
	getVertexAttribIuiv: function(index,pname,params) {
	},
	getVertexAttribiv: function(index,pname,params) {
	},
	getVertexAttribOffset: function(index,pname) {
		return (lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(this.__context.getVertexAttribOffset(index,pname));
	},
	getVertexAttribPointerv: function(index,pname) {
		return this.getVertexAttribOffset(index,pname);
	},
	hint: function(target,mode) {
		this.__context.hint(target,mode);
	},
	invalidateFramebuffer: function(target,attachments) {
		this.__context.invalidateFramebuffer(target,attachments);
	},
	invalidateSubFramebuffer: function(target,attachments,x,y,width,height) {
		this.__context.invalidateSubFramebuffer(target,attachments,x,y,width,height);
	},
	isBuffer: function(buffer) {
		return this.__context.isBuffer(buffer);
	},
	isContextLost: function() {
		if(!this.__contextLost) {
			return this.__context.isContextLost();
		} else {
			return true;
		}
	},
	isEnabled: function(cap) {
		return this.__context.isEnabled(cap);
	},
	isFramebuffer: function(framebuffer) {
		return this.__context.isFramebuffer(framebuffer);
	},
	isProgram: function(program) {
		return this.__context.isProgram(program);
	},
	isQuery: function(query) {
		return this.__context.isQuery(query);
	},
	isRenderbuffer: function(renderbuffer) {
		return this.__context.isRenderbuffer(renderbuffer);
	},
	isSampler: function(sampler) {
		return this.__context.isSampler(sampler);
	},
	isShader: function(shader) {
		return this.__context.isShader(shader);
	},
	isSync: function(sync) {
		return this.__context.isSync(sync);
	},
	isTexture: function(texture) {
		return this.__context.isTexture(texture);
	},
	isTransformFeedback: function(transformFeedback) {
		return this.__context.isTransformFeedback(transformFeedback);
	},
	isVertexArray: function(vertexArray) {
		return this.__context.isVertexArray(vertexArray);
	},
	lineWidth: function(width) {
		this.__context.lineWidth(width);
	},
	linkProgram: function(program) {
		this.__context.linkProgram(program);
	},
	mapBufferRange: function(target,offset,length,access) {
		return (lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0);
	},
	pauseTransformFeedback: function() {
		this.__context.pauseTransformFeedback();
	},
	pixelStorei: function(pname,param) {
		this.__context.pixelStorei(pname,param);
	},
	polygonOffset: function(factor,units) {
		this.__context.polygonOffset(factor,units);
	},
	programBinary: function(program,binaryFormat,binary,length) {
	},
	programParameteri: function(program,pname,value) {
	},
	readBuffer: function(src) {
		this.__context.readBuffer(src);
	},
	readPixels: function(x,y,width,height,format,type,pixels) {
		this.__context.readPixels(x,y,width,height,format,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(pixels));
	},
	readPixelsWEBGL: function(x,y,width,height,format,type,pixels,dstOffset) {
		if(dstOffset != null) {
			this.__context.readPixels(x,y,width,height,format,type,pixels,dstOffset);
		} else {
			this.__context.readPixels(x,y,width,height,format,type,pixels);
		}
	},
	releaseShaderCompiler: function() {
	},
	renderbufferStorage: function(target,internalformat,width,height) {
		this.__context.renderbufferStorage(target,internalformat,width,height);
	},
	renderbufferStorageMultisample: function(target,samples,internalFormat,width,height) {
		this.__context.renderbufferStorageMultisample(target,samples,internalFormat,width,height);
	},
	resumeTransformFeedback: function() {
		this.__context.resumeTransformFeedback();
	},
	sampleCoverage: function(value,invert) {
		this.__context.sampleCoverage(value,invert);
	},
	samplerParameterf: function(sampler,pname,param) {
		this.__context.samplerParameterf(sampler,pname,param);
	},
	samplerParameteri: function(sampler,pname,param) {
		this.__context.samplerParameteri(sampler,pname,param);
	},
	scissor: function(x,y,width,height) {
		this.__context.scissor(x,y,width,height);
	},
	shaderBinary: function(shaders,binaryformat,binary,length) {
	},
	shaderSource: function(shader,source) {
		this.__context.shaderSource(shader,source);
	},
	stencilFunc: function(func,ref,mask) {
		this.__context.stencilFunc(func,ref,mask);
	},
	stencilFuncSeparate: function(face,func,ref,mask) {
		this.__context.stencilFuncSeparate(face,func,ref,mask);
	},
	stencilMask: function(mask) {
		this.__context.stencilMask(mask);
	},
	stencilMaskSeparate: function(face,mask) {
		this.__context.stencilMaskSeparate(face,mask);
	},
	stencilOp: function(fail,zfail,zpass) {
		this.__context.stencilOp(fail,zfail,zpass);
	},
	stencilOpSeparate: function(face,fail,zfail,zpass) {
		this.__context.stencilOpSeparate(face,fail,zfail,zpass);
	},
	texImage2D: function(target,level,internalformat,width,height,border,format,type,data) {
		this.__context.texImage2D(target,level,internalformat,width,height,border,format,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data));
	},
	texImage2DWEBGL: function(target,level,internalformat,width,height,border,format,type,srcData,srcOffset) {
		if(srcOffset != null) {
			this.__context.texImage2D(target,level,internalformat,width,height,border,format,type,srcData,srcOffset);
		} else if(format != null) {
			this.__context.texImage2D(target,level,internalformat,width,height,border,format,type,srcData);
		} else {
			this.__context.texImage2D(target,level,internalformat,width,height,border);
		}
	},
	texImage3D: function(target,level,internalformat,width,height,depth,border,format,type,data) {
		this.__context.texImage3D(target,level,internalformat,width,height,depth,border,format,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data));
	},
	texImage3DWEBGL: function(target,level,internalformat,width,height,depth,border,format,type,srcData,srcOffset) {
		this.__context.texImage3D(target,level,internalformat,width,height,depth,border,format,type,srcData,srcOffset);
	},
	texStorage2D: function(target,level,internalformat,width,height) {
		this.__context.texStorage2D(target,level,internalformat,width,height);
	},
	texStorage3D: function(target,level,internalformat,width,height,depth) {
		this.__context.texStorage3D(target,level,internalformat,width,height,depth);
	},
	texParameterf: function(target,pname,param) {
		this.__context.texParameterf(target,pname,param);
	},
	texParameteri: function(target,pname,param) {
		this.__context.texParameteri(target,pname,param);
	},
	texSubImage2D: function(target,level,xoffset,yoffset,width,height,format,type,data) {
		this.__context.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data));
	},
	texSubImage2DWEBGL: function(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset) {
		if(srcOffset != null) {
			this.__context.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData,srcOffset);
		} else if(type != null) {
			this.__context.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,srcData);
		} else {
			this.__context.texSubImage2D(target,level,xoffset,yoffset,width,height,format);
		}
	},
	texSubImage3D: function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,data) {
		this.__context.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toBufferView(data));
	},
	texSubImage3DWEBGL: function(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,source,srcOffset) {
		this.__context.texSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,source,srcOffset);
	},
	transformFeedbackVaryings: function(program,varyings,bufferMode) {
		this.__context.transformFeedbackVaryings(program,varyings,bufferMode);
	},
	uniform1f: function(location,v0) {
		this.__context.uniform1f(location,v0);
	},
	uniform1fv: function(location,count,v) {
		this.__context.uniform1fv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4));
	},
	uniform1fvWEBGL: function(location,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniform1fv(location,data,srcOffset,srcLength);
		} else {
			this.__context.uniform1fv(location,data);
		}
	},
	uniform1i: function(location,v0) {
		this.__context.uniform1i(location,v0);
	},
	uniform1iv: function(location,count,v) {
		this.__context.uniform1iv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(v,count * 4));
	},
	uniform1ivWEBGL: function(location,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniform1iv(location,data,srcOffset,srcLength);
		} else {
			this.__context.uniform1iv(location,data);
		}
	},
	uniform1ui: function(location,v0) {
		this.__context.uniform1ui(location,v0);
		return;
	},
	uniform1uiv: function(location,count,v) {
		this.__context.uniform1uiv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toUInt32Array(v,count * 4));
	},
	uniform1uivWEBGL: function(location,data,srcOffset,srcLength) {
		this.__context.uniform1uiv(location,data,srcOffset,srcLength);
	},
	uniform2f: function(location,v0,v1) {
		this.__context.uniform2f(location,v0,v1);
	},
	uniform2fv: function(location,count,v) {
		this.__context.uniform2fv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 2));
	},
	uniform2fvWEBGL: function(location,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniform2fv(location,data,srcOffset,srcLength);
		} else {
			this.__context.uniform2fv(location,data);
		}
	},
	uniform2i: function(location,x,y) {
		this.__context.uniform2i(location,x,y);
	},
	uniform2iv: function(location,count,v) {
		this.__context.uniform2iv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(v,count * 4 * 2));
	},
	uniform2ivWEBGL: function(location,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniform2iv(location,data,srcOffset,srcLength);
		} else {
			this.__context.uniform2iv(location,data);
		}
	},
	uniform2ui: function(location,v0,v1) {
		this.__context.uniform2ui(location,v0,v1);
	},
	uniform2uiv: function(location,count,v) {
		this.__context.uniform2uiv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toUInt32Array(v,count * 4 * 2));
	},
	uniform2uivWEBGL: function(location,data,srcOffset,srcLength) {
		this.__context.uniform2uiv(location,data,srcOffset,srcLength);
	},
	uniform3f: function(location,v0,v1,v2) {
		this.__context.uniform3f(location,v0,v1,v2);
	},
	uniform3fv: function(location,count,v) {
		this.__context.uniform3fv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 3));
	},
	uniform3fvWEBGL: function(location,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniform3fv(location,data,srcOffset,srcLength);
		} else {
			this.__context.uniform3fv(location,data);
		}
	},
	uniform3i: function(location,x,y,z) {
		this.__context.uniform3i(location,x,y,z);
	},
	uniform3iv: function(location,count,v) {
		this.__context.uniform3iv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(v,count * 4 * 3));
	},
	uniform3ivWEBGL: function(location,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniform3iv(location,data,srcOffset,srcLength);
		} else {
			this.__context.uniform3iv(location,data);
		}
	},
	uniform3ui: function(location,v0,v1,v2) {
		this.__context.uniform3ui(location,v0,v1,v2);
	},
	uniform3uiv: function(location,count,v) {
		this.__context.uniform3uiv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toUInt32Array(v,count * 4 * 3));
	},
	uniform3uivWEBGL: function(location,data,srcOffset,srcLength) {
		this.__context.uniform3uiv(location,data,srcOffset,srcLength);
	},
	uniform4f: function(location,v0,v1,v2,v3) {
		this.__context.uniform4f(location,v0,v1,v2,v3);
	},
	uniform4fv: function(location,count,v) {
		this.__context.uniform4fv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 4));
	},
	uniform4fvWEBGL: function(location,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniform4fv(location,data,srcOffset,srcLength);
		} else {
			this.__context.uniform4fv(location,data);
		}
	},
	uniform4i: function(location,v0,v1,v2,v3) {
		this.__context.uniform4i(location,v0,v1,v2,v3);
	},
	uniform4iv: function(location,count,v) {
		this.__context.uniform4iv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(v,count * 4 * 4));
	},
	uniform4ivWEBGL: function(location,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniform4iv(location,data,srcOffset,srcLength);
		} else {
			this.__context.uniform4iv(location,data);
		}
	},
	uniform4ui: function(location,v0,v1,v2,v3) {
		this.__context.uniform4ui(location,v0,v1,v2,v3);
	},
	uniform4uiv: function(location,count,v) {
		this.__context.uniform4uiv(location,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toUInt32Array(v,count * 4 * 4));
	},
	uniform4uivWEBGL: function(location,data,srcOffset,srcLength) {
		this.__context.uniform4uiv(location,data,srcOffset,srcLength);
	},
	uniformBlockBinding: function(program,uniformBlockIndex,uniformBlockBinding) {
		this.__context.uniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding);
	},
	uniformMatrix2fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix2fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 4));
	},
	uniformMatrix2fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniformMatrix2fv(location,transpose,data,srcOffset,srcLength);
		} else {
			this.__context.uniformMatrix2fv(location,transpose,data);
		}
	},
	uniformMatrix2x3fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix2x3fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 6));
	},
	uniformMatrix2x3fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		this.__context.uniformMatrix2x3fv(location,transpose,data,srcOffset,srcLength);
	},
	uniformMatrix2x4fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix2x4fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 8));
	},
	uniformMatrix2x4fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		this.__context.uniformMatrix2x4fv(location,transpose,data,srcOffset,srcLength);
	},
	uniformMatrix3fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix3fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 9));
	},
	uniformMatrix3fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniformMatrix3fv(location,transpose,data,srcOffset,srcLength);
		} else {
			this.__context.uniformMatrix3fv(location,transpose,data);
		}
	},
	uniformMatrix3x2fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix3x2fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 6));
	},
	uniformMatrix3x2fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		this.__context.uniformMatrix3x2fv(location,transpose,data,srcOffset,srcLength);
	},
	uniformMatrix3x4fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix3x4fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 12));
	},
	uniformMatrix3x4fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		this.__context.uniformMatrix3x4fv(location,transpose,data,srcOffset,srcLength);
	},
	uniformMatrix4fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix4fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 16));
	},
	uniformMatrix4fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniformMatrix4fv(location,transpose,data,srcOffset,srcLength);
		} else {
			this.__context.uniformMatrix4fv(location,transpose,data);
		}
	},
	uniformMatrix4x2fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix4x2fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 8));
	},
	uniformMatrix4x2fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		if(srcOffset != null) {
			this.__context.uniformMatrix4x2fv(location,transpose,data,srcOffset,srcLength);
		} else {
			this.__context.uniformMatrix4x2fv(location,transpose,data);
		}
	},
	uniformMatrix4x3fv: function(location,count,transpose,v) {
		this.__context.uniformMatrix4x3fv(location,transpose,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v,count * 4 * 12));
	},
	uniformMatrix4x3fvWEBGL: function(location,transpose,data,srcOffset,srcLength) {
		this.__context.uniformMatrix4x3fv(location,transpose,data,srcOffset,srcLength);
	},
	unmapBuffer: function(target) {
		return false;
	},
	useProgram: function(program) {
		this.__context.useProgram(program);
	},
	validateProgram: function(program) {
		this.__context.validateProgram(program);
	},
	vertexAttrib1f: function(index,v0) {
		this.__context.vertexAttrib1f(index,v0);
	},
	vertexAttrib1fv: function(index,v) {
		this.__context.vertexAttrib1fv(index,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v));
	},
	vertexAttrib1fvWEBGL: function(index,v) {
		this.__context.vertexAttrib1fv(index,v);
	},
	vertexAttrib2f: function(index,v0,v1) {
		this.__context.vertexAttrib2f(index,v0,v1);
	},
	vertexAttrib2fv: function(index,v) {
		this.__context.vertexAttrib2fv(index,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v));
	},
	vertexAttrib2fvWEBGL: function(index,v) {
		this.__context.vertexAttrib2fv(index,v);
	},
	vertexAttrib3f: function(index,v0,v1,v2) {
		this.__context.vertexAttrib3f(index,v0,v1,v2);
	},
	vertexAttrib3fv: function(index,v) {
		this.__context.vertexAttrib3fv(index,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v));
	},
	vertexAttrib3fvWEBGL: function(index,v) {
		this.__context.vertexAttrib3fv(index,v);
	},
	vertexAttrib4f: function(index,v0,v1,v2,v3) {
		this.__context.vertexAttrib4f(index,v0,v1,v2,v3);
	},
	vertexAttrib4fv: function(index,v) {
		this.__context.vertexAttrib4fv(index,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toFloat32Array(v));
	},
	vertexAttrib4fvWEBGL: function(index,v) {
		this.__context.vertexAttrib4fv(index,v);
	},
	vertexAttribDivisor: function(index,divisor) {
		this.__context.vertexAttribDivisor(index,divisor);
	},
	vertexAttribI4i: function(index,v0,v1,v2,v3) {
		this.__context.vertexAttribI4i(index,v0,v1,v2,v3);
	},
	vertexAttribI4iv: function(index,v) {
		this.__context.vertexAttribI4iv(index,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toInt32Array(v));
	},
	vertexAttribI4ivWEBGL: function(index,v) {
		this.__context.vertexAttribI4iv(index,v);
	},
	vertexAttribI4ui: function(index,v0,v1,v2,v3) {
		this.__context.vertexAttribI4ui(index,v0,v1,v2,v3);
	},
	vertexAttribI4uiv: function(index,v) {
		this.__context.vertexAttribI4uiv(index,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toUInt32Array(v));
	},
	vertexAttribI4uivWEBGL: function(index,v) {
		this.__context.vertexAttribI4uiv(index,v);
	},
	vertexAttribIPointer: function(index,size,type,stride,offset) {
		this.__context.vertexAttribIPointer(index,size,type,stride,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt((lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(offset)));
	},
	vertexAttribPointer: function(index,size,type,normalized,stride,offset) {
		this.__context.vertexAttribPointer(index,size,type,normalized,stride,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).toValue(offset));
	},
	viewport: function(x,y,width,height) {
		this.__context.viewport(x,y,width,height);
	},
	waitSync: function(sync,flags,timeout) {
		this.__context.waitSync(sync,flags,timeout);
	},
	get_canvas: function() {
		return this.__context.canvas;
	},
	get_drawingBufferHeight: function() {
		return this.__context.drawingBufferHeight;
	},
	get_drawingBufferWidth: function() {
		return this.__context.drawingBufferWidth;
	}
};
HTML5GLRenderContext.prototype.__class__ = $hxClasses["lime._backend.html5.HTML5GLRenderContext"] = HTML5GLRenderContext;
// Init
// Statics
// Export
exports.default = HTML5GLRenderContext;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 154 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime._backend.html5.HTML5HTTPRequest
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function StringTools() {return __webpack_require__(12);}
function Std() {return __webpack_require__(4);}
function lime_app_Promise() {return __webpack_require__(39);}
function HxOverrides() {return __webpack_require__(7);}
function lime_net_HTTPRequestHeader() {return __webpack_require__(155);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function List() {return __webpack_require__(48);}
function js_Browser() {return __webpack_require__(11);}
function lime_graphics_ImageBuffer() {return __webpack_require__(110);}
function lime_graphics_Image() {return __webpack_require__(56);}
function EReg() {return __webpack_require__(27);}
// Constructor
var HTML5HTTPRequest = function() {
	this.validStatus0 = new (EReg().default)("Tizen","gi").match((js_Browser().default).get_window().navigator.userAgent);
}
// Meta
HTML5HTTPRequest.__name__ = ["lime","_backend","html5","HTML5HTTPRequest"];
HTML5HTTPRequest.prototype = {
	cancel: function() {
		if(this.request != null) {
			this.request.abort();
		}
	},
	init: function(parent) {
		this.parent = parent;
	},
	load: function(uri,progress,readyStateChange) {
		this.request = new XMLHttpRequest();
		if(this.parent.method == "POST") {
			this.request.upload.addEventListener("progress",progress,false);
		} else {
			this.request.addEventListener("progress",progress,false);
		}
		this.request.onreadystatechange = readyStateChange;
		var query = "";
		if(this.parent.data == null) {
			var key = this.parent.formData.keys();
			while(key.hasNext()) {
				var key1 = key.next();
				if(query.length > 0) {
					query += "&";
				}
				query += (StringTools().default).urlEncode(key1) + "=" + (StringTools().default).urlEncode((Std().default).string(this.parent.formData.get(key1)));
			}
			if(this.parent.method == "GET" && query != "") {
				if(uri.indexOf("?") > -1) {
					uri += "&" + query;
				} else {
					uri += "?" + query;
				}
				query = "";
			}
		}
		this.request.open((Std().default).string(this.parent.method),uri,true);
		if(this.parent.timeout > 0) {
			this.request.timeout = this.parent.timeout;
		}
		if(this.binary) {
			this.request.responseType = "arraybuffer";
		}
		var contentType = null;
		var _g = 0;
		var _g1 = this.parent.headers;
		while(_g < _g1.length) {
			var header = _g1[_g];
			++_g;
			if(header.name == "Content-Type") {
				contentType = header.value;
			} else {
				this.request.setRequestHeader(header.name,header.value);
			}
		}
		if(this.parent.contentType != null) {
			contentType = this.parent.contentType;
		}
		if(contentType == null) {
			if(this.parent.data != null) {
				contentType = "application/octet-stream";
			} else if(query != "") {
				contentType = "application/x-www-form-urlencoded";
			}
		}
		if(contentType != null) {
			this.request.setRequestHeader("Content-Type",contentType);
		}
		if(this.parent.withCredentials) {
			this.request.withCredentials = true;
		}
		if(this.parent.data != null) {
			this.request.send(this.parent.data.getData());
		} else {
			this.request.send(query);
		}
	},
	loadData: function(uri) {
		var promise = new (lime_app_Promise().default)();
		if(HTML5HTTPRequest.activeRequests < HTML5HTTPRequest.requestLimit) {
			HTML5HTTPRequest.activeRequests++;
			this.__loadData(uri,promise);
		} else {
			HTML5HTTPRequest.requestQueue.add({ instance : this, uri : uri, promise : promise, type : "BINARY"});
		}
		return promise.future;
	},
	loadText: function(uri) {
		var promise = new (lime_app_Promise().default)();
		if(HTML5HTTPRequest.activeRequests < HTML5HTTPRequest.requestLimit) {
			HTML5HTTPRequest.activeRequests++;
			this.__loadText(uri,promise);
		} else {
			HTML5HTTPRequest.requestQueue.add({ instance : this, uri : uri, promise : promise, type : "TEXT"});
		}
		return promise.future;
	},
	processResponse: function() {
		if(this.parent.enableResponseHeaders) {
			this.parent.responseHeaders = [];
			var name;
			var value;
			var _g = 0;
			var _g1 = this.request.getAllResponseHeaders().split("\n");
			while(_g < _g1.length) {
				var line = _g1[_g];
				++_g;
				name = (StringTools().default).trim((HxOverrides().default).substr(line,0,line.indexOf(":")));
				value = (StringTools().default).trim((HxOverrides().default).substr(line,line.indexOf(":") + 1,null));
				if(name != "") {
					this.parent.responseHeaders.push(new (lime_net_HTTPRequestHeader().default)(name,value));
				}
			}
		}
		this.parent.responseStatus = this.request.status;
	},
	__loadData: function(uri,promise) {
		var _gthis = this;
		var progress = function(event) {
			promise.progress(event.loaded,event.total);
		};
		var readyStateChange = function(event1) {
			if(_gthis.request.readyState != 4) {
				return;
			}
			if(_gthis.request.status != null && (_gthis.request.status >= 200 && _gthis.request.status < 400 || _gthis.validStatus0 && _gthis.request.status == 0)) {
				var bytes = null;
				if(_gthis.request.responseType == "") {
					if(_gthis.request.responseText != null) {
						bytes = (haxe_io_Bytes().default).ofString(_gthis.request.responseText);
					}
				} else if(_gthis.request.response != null) {
					bytes = (haxe_io_Bytes().default).ofData(_gthis.request.response);
				}
				_gthis.processResponse();
				promise.complete(bytes);
			} else {
				_gthis.processResponse();
				promise.error(_gthis.request.status);
			}
			_gthis.request = null;
			HTML5HTTPRequest.activeRequests--;
			HTML5HTTPRequest.processQueue();
		};
		this.binary = true;
		this.load(uri,progress,readyStateChange);
	},
	__loadText: function(uri,promise) {
		var _gthis = this;
		var progress = function(event) {
			promise.progress(event.loaded,event.total);
		};
		var readyStateChange = function(event1) {
			if(_gthis.request.readyState != 4) {
				return;
			}
			if(_gthis.request.status != null && (_gthis.request.status >= 200 && _gthis.request.status <= 400 || _gthis.validStatus0 && _gthis.request.status == 0)) {
				_gthis.processResponse();
				promise.complete(_gthis.request.responseText);
			} else {
				_gthis.processResponse();
				promise.error(_gthis.request.status);
			}
			_gthis.request = null;
			HTML5HTTPRequest.activeRequests--;
			HTML5HTTPRequest.processQueue();
		};
		this.binary = false;
		this.load(uri,progress,readyStateChange);
	}
};
HTML5HTTPRequest.prototype.__class__ = $hxClasses["lime._backend.html5.HTML5HTTPRequest"] = HTML5HTTPRequest;
// Init
// Statics
HTML5HTTPRequest.loadImage = function(uri) {
	var promise = new (lime_app_Promise().default)();
	if(HTML5HTTPRequest.activeRequests < HTML5HTTPRequest.requestLimit) {
		HTML5HTTPRequest.activeRequests++;
		HTML5HTTPRequest.__loadImage(uri,promise);
	} else {
		HTML5HTTPRequest.requestQueue.add({ instance : null, uri : uri, promise : promise, type : "IMAGE"});
	}
	return promise.future;
}
HTML5HTTPRequest.processQueue = function() {
	if(HTML5HTTPRequest.activeRequests < HTML5HTTPRequest.requestLimit && HTML5HTTPRequest.requestQueue.length > 0) {
		HTML5HTTPRequest.activeRequests++;
		var queueItem = HTML5HTTPRequest.requestQueue.pop();
		var _g = queueItem.type;
		switch(_g) {
		case "BINARY":
			queueItem.instance.__loadData(queueItem.uri,queueItem.promise);
			break;
		case "IMAGE":
			HTML5HTTPRequest.__loadImage(queueItem.uri,queueItem.promise);
			break;
		case "TEXT":
			queueItem.instance.__loadText(queueItem.uri,queueItem.promise);
			break;
		default:
			HTML5HTTPRequest.activeRequests--;
		}
	}
}
HTML5HTTPRequest.__fixHostname = function(hostname) {
	if(hostname == null) {
		return "";
	} else {
		return hostname;
	}
}
HTML5HTTPRequest.__fixPort = function(port,protocol) {
	if(port == null || port == "") {
		switch(protocol) {
		case "ftp:":
			return "21";
		case "gopher:":
			return "70";
		case "http:":
			return "80";
		case "https:":
			return "443";
		case "ws:":
			return "80";
		case "wss:":
			return "443";
		default:
			return "";
		}
	}
	return port;
}
HTML5HTTPRequest.__fixProtocol = function(protocol) {
	if(protocol == null || protocol == "") {
		return "http:";
	} else {
		return protocol;
	}
}
HTML5HTTPRequest.__isSameOrigin = function(path) {
	if(HTML5HTTPRequest.originElement == null) {
		HTML5HTTPRequest.originElement = (js_Browser().default).get_document().createElement("a");
		HTML5HTTPRequest.originHostname = HTML5HTTPRequest.__fixHostname((js_Browser().default).get_location().hostname);
		HTML5HTTPRequest.originProtocol = HTML5HTTPRequest.__fixProtocol((js_Browser().default).get_location().protocol);
		HTML5HTTPRequest.originPort = HTML5HTTPRequest.__fixPort((js_Browser().default).get_location().port,HTML5HTTPRequest.originProtocol);
	}
	var a = HTML5HTTPRequest.originElement;
	a.href = path;
	if(a.hostname == "") {
		a.href = a.href;
	}
	var hostname = HTML5HTTPRequest.__fixHostname(a.hostname);
	var protocol = HTML5HTTPRequest.__fixProtocol(a.protocol);
	var port = HTML5HTTPRequest.__fixPort(a.port,protocol);
	var sameHost = hostname == "" || hostname == HTML5HTTPRequest.originHostname;
	var samePort = port == "" || port == HTML5HTTPRequest.originPort;
	if(protocol != "file:" && sameHost) {
		return samePort;
	} else {
		return false;
	}
}
HTML5HTTPRequest.__loadImage = function(uri,promise) {
	var image = new Image();
	if(!HTML5HTTPRequest.__isSameOrigin(uri)) {
		image.crossOrigin = "Anonymous";
	}
	if(HTML5HTTPRequest.supportsImageProgress == null) {
		HTML5HTTPRequest.supportsImageProgress = 'onprogress' in image;
	}
	if(HTML5HTTPRequest.supportsImageProgress || (StringTools().default).startsWith(uri,"data:")) {
		image.addEventListener("load",function(event) {
			var buffer = new (lime_graphics_ImageBuffer().default)(null,image.width,image.height);
			buffer.__srcImage = image;
			HTML5HTTPRequest.activeRequests--;
			HTML5HTTPRequest.processQueue();
			promise.complete(new (lime_graphics_Image().default)(buffer));
		},false);
		image.addEventListener("progress",function(event1) {
			promise.progress(event1.loaded,event1.total);
		},false);
		image.addEventListener("error",function(event2) {
			HTML5HTTPRequest.activeRequests--;
			HTML5HTTPRequest.processQueue();
			promise.error(event2.detail);
		},false);
		image.src = uri;
	} else {
		var request = new XMLHttpRequest();
		request.onload = function(_) {
			HTML5HTTPRequest.activeRequests--;
			HTML5HTTPRequest.processQueue();
			var img = new (lime_graphics_Image().default)();
			img.__fromBytes((haxe_io_Bytes().default).ofData(request.response),function(img1) {
				promise.complete(img1);
			});
		};
		request.onerror = function(event3) {
			promise.error(event3.message);
		};
		request.onprogress = function(event4) {
			if(event4.lengthComputable) {
				promise.progress(event4.loaded,event4.total);
			}
		};
		request.open("GET",uri,true);
		request.responseType = "arraybuffer";
		request.overrideMimeType("text/plain; charset=x-user-defined");
		request.send(null);
	}
}
HTML5HTTPRequest.activeRequests = 0
HTML5HTTPRequest.requestLimit = 4
HTML5HTTPRequest.requestQueue = new (List().default)()
// Export
exports.default = HTML5HTTPRequest;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 155 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.net.HTTPRequestHeader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var HTTPRequestHeader = function(name,value) {
	if(value == null) {
		value = "";
	}
	this.name = name;
	this.value = value;
}
// Meta
HTTPRequestHeader.__name__ = ["lime","net","HTTPRequestHeader"];
HTTPRequestHeader.prototype = {
	
};
HTTPRequestHeader.prototype.__class__ = $hxClasses["lime.net.HTTPRequestHeader"] = HTTPRequestHeader;
// Init
// Statics
// Export
exports.default = HTTPRequestHeader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 156 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.crypto.BaseCode
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
// Constructor
var BaseCode = function(base) {
	var len = base.get_length();
	var nbits = 1;
	while(len > 1 << nbits) ++nbits;
	if(nbits > 8 || len != 1 << nbits) {
		throw new (js__$Boot_HaxeError().default)("BaseCode : base length must be a power of two.");
	}
	this.base = base;
	this.nbits = nbits;
}
// Meta
BaseCode.__name__ = ["haxe","crypto","BaseCode"];
BaseCode.prototype = {
	encodeBytes: function(b) {
		var nbits = this.nbits;
		var base = this.base;
		var size = (Std().default)["int"](b.get_length() * 8 / nbits);
		var out = (haxe_io_Bytes().default).alloc(size + (b.get_length() * 8 % nbits == 0 ? 0 : 1));
		var buf = 0;
		var curbits = 0;
		var mask = (1 << nbits) - 1;
		var pin = 0;
		var pout = 0;
		while(pout < size) {
			while(curbits < nbits) {
				curbits += 8;
				buf <<= 8;
				buf |= b.get(pin++);
			}
			curbits -= nbits;
			out.set(pout++,base.get(buf >> curbits & mask));
		}
		if(curbits > 0) {
			out.set(pout++,base.get(buf << nbits - curbits & mask));
		}
		return out;
	},
	initTable: function() {
		var tbl = [];
		var _g = 0;
		while(_g < 256) {
			var i = _g++;
			tbl[i] = -1;
		}
		var _g1 = 0;
		var _g2 = this.base.get_length();
		while(_g1 < _g2) {
			var i1 = _g1++;
			tbl[this.base.get(i1)] = i1;
		}
		this.tbl = tbl;
	},
	decodeBytes: function(b) {
		var nbits = this.nbits;
		var base = this.base;
		if(this.tbl == null) {
			this.initTable();
		}
		var tbl = this.tbl;
		var size = b.get_length() * nbits >> 3;
		var out = (haxe_io_Bytes().default).alloc(size);
		var buf = 0;
		var curbits = 0;
		var pin = 0;
		var pout = 0;
		while(pout < size) {
			while(curbits < 8) {
				curbits += nbits;
				buf <<= nbits;
				var i = tbl[b.get(pin++)];
				if(i == -1) {
					throw new (js__$Boot_HaxeError().default)("BaseCode : invalid encoded char");
				}
				buf |= i;
			}
			curbits -= 8;
			out.set(pout++,buf >> curbits & 255);
		}
		return out;
	}
};
BaseCode.prototype.__class__ = $hxClasses["haxe.crypto.BaseCode"] = BaseCode;
// Init
// Statics
// Export
exports.default = BaseCode;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 157 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.IEventDispatcher
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IEventDispatcher = function() {}
// Meta
IEventDispatcher.__name__ = ["openfl","events","IEventDispatcher"];
IEventDispatcher.prototype = {
	
};
IEventDispatcher.prototype.__class__ = $hxClasses["openfl.events.IEventDispatcher"] = IEventDispatcher;
// Init
// Statics
// Export
exports.default = IEventDispatcher;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 158 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasDisplayObject
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
function openfl__$internal_renderer_canvas_CanvasShape() {return __webpack_require__(291);}
// Constructor
var CanvasDisplayObject = function(){}
// Meta
CanvasDisplayObject.__name__ = ["openfl","_internal","renderer","canvas","CanvasDisplayObject"];
CanvasDisplayObject.prototype = {
	
};
CanvasDisplayObject.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasDisplayObject"] = CanvasDisplayObject;
// Init
// Statics
CanvasDisplayObject.render = function(displayObject,renderSession) {
	if(displayObject.opaqueBackground == null && displayObject.__graphics == null) {
		return;
	}
	if(!displayObject.__renderable || displayObject.__worldAlpha <= 0) {
		return;
	}
	if(displayObject.opaqueBackground != null && !displayObject.__cacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) {
		renderSession.blendModeManager.setBlendMode(displayObject.__worldBlendMode);
		renderSession.maskManager.pushObject(displayObject);
		var context = renderSession.context;
		var transform = displayObject.__renderTransform;
		if(renderSession.roundPixels) {
			context.setTransform(transform.a,transform.b,transform.c,transform.d,(Std().default)["int"](transform.tx),(Std().default)["int"](transform.ty));
		} else {
			context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
		}
		var color = displayObject.opaqueBackground;
		context.fillStyle = "rgb(" + (color >>> 16 & 255) + "," + (color >>> 8 & 255) + "," + (color & 255) + ")";
		context.fillRect(0,0,displayObject.get_width(),displayObject.get_height());
		renderSession.maskManager.popObject(displayObject);
	}
	if(displayObject.__graphics != null) {
		(openfl__$internal_renderer_canvas_CanvasShape().default).render(displayObject,renderSession);
	}
}
// Export
exports.default = CanvasDisplayObject;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 159 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.DrawCommandBuffer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_renderer_DrawCommandReader() {return __webpack_require__(116);}
function Type() {return __webpack_require__(10);}
function openfl__$internal_renderer_DrawCommandType() {return __webpack_require__(117);}
// Constructor
var DrawCommandBuffer = function() {
	if(DrawCommandBuffer.empty == null) {
		this.types = [];
		this.b = [];
		this.i = [];
		this.f = [];
		this.o = [];
		this.ff = [];
		this.ii = [];
		this.copyOnWrite = true;
	} else {
		this.clear();
	}
}
// Meta
DrawCommandBuffer.__name__ = ["openfl","_internal","renderer","DrawCommandBuffer"];
DrawCommandBuffer.prototype = {
	append: function(other) {
		if(this.get_length() == 0) {
			this.types = other.types;
			this.b = other.b;
			this.i = other.i;
			this.f = other.f;
			this.o = other.o;
			this.ff = other.ff;
			this.ii = other.ii;
			this.copyOnWrite = other.copyOnWrite = true;
			return other;
		}
		var data = new (openfl__$internal_renderer_DrawCommandReader().default)(other);
		var _g = 0;
		var _g1 = other.types;
		while(_g < _g1.length) {
			var type = _g1[_g];
			++_g;
			switch((Type().default).enumIndex(type)) {
			case 0:
				var c = data.readBeginBitmapFill();
				this.beginBitmapFill(c.obj(0),c.obj(1),c.bool(0),c.bool(1));
				break;
			case 1:
				var c1 = data.readBeginFill();
				this.beginFill(c1["int"](0),c1["float"](0));
				break;
			case 2:
				var c2 = data.readBeginGradientFill();
				this.beginGradientFill(c2.obj(0),c2.iArr(0),c2.fArr(0),c2.iArr(1),c2.obj(1),c2.obj(2),c2.obj(3),c2["float"](0));
				break;
			case 3:
				var c3 = data.readCubicCurveTo();
				this.cubicCurveTo(c3["float"](0),c3["float"](1),c3["float"](2),c3["float"](3),c3["float"](4),c3["float"](5));
				break;
			case 4:
				var c4 = data.readCurveTo();
				this.curveTo(c4["float"](0),c4["float"](1),c4["float"](2),c4["float"](3));
				break;
			case 5:
				var c5 = data.readDrawCircle();
				this.drawCircle(c5["float"](0),c5["float"](1),c5["float"](2));
				break;
			case 6:
				var c6 = data.readDrawEllipse();
				this.drawEllipse(c6["float"](0),c6["float"](1),c6["float"](2),c6["float"](3));
				break;
			case 7:
				var c7 = data.readDrawRect();
				this.drawRect(c7["float"](0),c7["float"](1),c7["float"](2),c7["float"](3));
				break;
			case 8:
				var c8 = data.readDrawRoundRect();
				this.drawRoundRect(c8["float"](0),c8["float"](1),c8["float"](2),c8["float"](3),c8["float"](4),c8.obj(0));
				break;
			case 10:
				var c9 = data.readDrawTriangles();
				this.drawTriangles(c9.obj(0),c9.obj(1),c9.obj(2),c9.obj(3));
				break;
			case 11:
				var c10 = data.readEndFill();
				this.endFill();
				break;
			case 12:
				var c11 = data.readLineBitmapStyle();
				this.lineBitmapStyle(c11.obj(0),c11.obj(1),c11.bool(0),c11.bool(1));
				break;
			case 13:
				var c12 = data.readLineGradientStyle();
				this.lineGradientStyle(c12.obj(0),c12.iArr(0),c12.fArr(0),c12.iArr(1),c12.obj(1),c12.obj(2),c12.obj(3),c12["float"](0));
				break;
			case 14:
				var c13 = data.readLineStyle();
				this.lineStyle(c13.obj(0),c13["int"](0),c13["float"](0),c13.bool(0),c13.obj(1),c13.obj(2),c13.obj(3),c13["float"](1));
				break;
			case 15:
				var c14 = data.readLineTo();
				this.lineTo(c14["float"](0),c14["float"](1));
				break;
			case 16:
				var c15 = data.readMoveTo();
				this.moveTo(c15["float"](0),c15["float"](1));
				break;
			case 17:
				var c16 = data.readOverrideMatrix();
				this.overrideMatrix(c16.obj(0));
				break;
			case 18:
				var c17 = data.readWindingEvenOdd();
				this.windingEvenOdd();
				break;
			case 19:
				var c18 = data.readWindingNonZero();
				this.windingNonZero();
				break;
			default:
			}
		}
		data.destroy();
		return other;
	},
	beginBitmapFill: function(bitmap,matrix,repeat,smooth) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).BEGIN_BITMAP_FILL);
		this.o.push(bitmap);
		this.o.push(matrix);
		this.b.push(repeat);
		this.b.push(smooth);
	},
	beginFill: function(color,alpha) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).BEGIN_FILL);
		this.i.push(color);
		this.f.push(alpha);
	},
	beginGradientFill: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).BEGIN_GRADIENT_FILL);
		this.o.push(type);
		this.ii.push(colors);
		this.ff.push(alphas);
		this.ii.push(ratios);
		this.o.push(matrix);
		this.o.push(spreadMethod);
		this.o.push(interpolationMethod);
		this.f.push(focalPointRatio);
	},
	clear: function() {
		this.types = DrawCommandBuffer.empty.types;
		this.b = DrawCommandBuffer.empty.b;
		this.i = DrawCommandBuffer.empty.i;
		this.f = DrawCommandBuffer.empty.f;
		this.o = DrawCommandBuffer.empty.o;
		this.ff = DrawCommandBuffer.empty.ff;
		this.ii = DrawCommandBuffer.empty.ii;
		this.copyOnWrite = true;
	},
	copy: function() {
		var copy = new DrawCommandBuffer();
		copy.append(this);
		return copy;
	},
	cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).CUBIC_CURVE_TO);
		this.f.push(controlX1);
		this.f.push(controlY1);
		this.f.push(controlX2);
		this.f.push(controlY2);
		this.f.push(anchorX);
		this.f.push(anchorY);
	},
	curveTo: function(controlX,controlY,anchorX,anchorY) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).CURVE_TO);
		this.f.push(controlX);
		this.f.push(controlY);
		this.f.push(anchorX);
		this.f.push(anchorY);
	},
	destroy: function() {
		this.clear();
		this.types = null;
		this.b = null;
		this.i = null;
		this.f = null;
		this.o = null;
		this.ff = null;
		this.ii = null;
	},
	drawCircle: function(x,y,radius) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).DRAW_CIRCLE);
		this.f.push(x);
		this.f.push(y);
		this.f.push(radius);
	},
	drawEllipse: function(x,y,width,height) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).DRAW_ELLIPSE);
		this.f.push(x);
		this.f.push(y);
		this.f.push(width);
		this.f.push(height);
	},
	drawRect: function(x,y,width,height) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).DRAW_RECT);
		this.f.push(x);
		this.f.push(y);
		this.f.push(width);
		this.f.push(height);
	},
	drawRoundRect: function(x,y,width,height,ellipseWidth,ellipseHeight) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).DRAW_ROUND_RECT);
		this.f.push(x);
		this.f.push(y);
		this.f.push(width);
		this.f.push(height);
		this.f.push(ellipseWidth);
		this.o.push(ellipseHeight);
	},
	drawTriangles: function(vertices,indices,uvtData,culling) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).DRAW_TRIANGLES);
		this.o.push(vertices);
		this.o.push(indices);
		this.o.push(uvtData);
		this.o.push(culling);
	},
	endFill: function() {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).END_FILL);
	},
	lineBitmapStyle: function(bitmap,matrix,repeat,smooth) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).LINE_BITMAP_STYLE);
		this.o.push(bitmap);
		this.o.push(matrix);
		this.b.push(repeat);
		this.b.push(smooth);
	},
	lineGradientStyle: function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).LINE_GRADIENT_STYLE);
		this.o.push(type);
		this.ii.push(colors);
		this.ff.push(alphas);
		this.ii.push(ratios);
		this.o.push(matrix);
		this.o.push(spreadMethod);
		this.o.push(interpolationMethod);
		this.f.push(focalPointRatio);
	},
	lineStyle: function(thickness,color,alpha,pixelHinting,scaleMode,caps,joints,miterLimit) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).LINE_STYLE);
		this.o.push(thickness);
		this.i.push(color);
		this.f.push(alpha);
		this.b.push(pixelHinting);
		this.o.push(scaleMode);
		this.o.push(caps);
		this.o.push(joints);
		this.f.push(miterLimit);
	},
	lineTo: function(x,y) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).LINE_TO);
		this.f.push(x);
		this.f.push(y);
	},
	moveTo: function(x,y) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).MOVE_TO);
		this.f.push(x);
		this.f.push(y);
	},
	prepareWrite: function() {
		if(this.copyOnWrite) {
			this.types = this.types.slice();
			this.b = this.b.slice();
			this.i = this.i.slice();
			this.f = this.f.slice();
			this.o = this.o.slice();
			this.ff = this.ff.slice();
			this.ii = this.ii.slice();
			this.copyOnWrite = false;
		}
	},
	overrideMatrix: function(matrix) {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).OVERRIDE_MATRIX);
		this.o.push(matrix);
	},
	windingEvenOdd: function() {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).WINDING_EVEN_ODD);
	},
	windingNonZero: function() {
		this.prepareWrite();
		this.types.push((openfl__$internal_renderer_DrawCommandType().default).WINDING_NON_ZERO);
	},
	get_length: function() {
		return this.types.length;
	}
};
DrawCommandBuffer.prototype.__class__ = $hxClasses["openfl._internal.renderer.DrawCommandBuffer"] = DrawCommandBuffer;
// Init
// Statics
DrawCommandBuffer.empty = new DrawCommandBuffer()
// Export
exports.default = DrawCommandBuffer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 160 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasBlendModeManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractBlendModeManager() {return __webpack_require__(119);}
// Constructor
var CanvasBlendModeManager = function(renderSession) {
	(openfl__$internal_renderer_AbstractBlendModeManager().default).call(this);
	this.renderSession = renderSession;
}
// Meta
CanvasBlendModeManager.__name__ = ["openfl","_internal","renderer","canvas","CanvasBlendModeManager"];
CanvasBlendModeManager.__super__ = (openfl__$internal_renderer_AbstractBlendModeManager().default);
CanvasBlendModeManager.prototype = $extend((openfl__$internal_renderer_AbstractBlendModeManager().default).prototype, {
	setBlendMode: function(blendMode) {
		if(this.currentBlendMode == blendMode) {
			return;
		}
		this.currentBlendMode = blendMode;
		switch(blendMode) {
		case "add":
			this.renderSession.context.globalCompositeOperation = "lighter";
			break;
		case "alpha":
			this.renderSession.context.globalCompositeOperation = "destination-in";
			break;
		case "darken":
			this.renderSession.context.globalCompositeOperation = "darken";
			break;
		case "difference":
			this.renderSession.context.globalCompositeOperation = "difference";
			break;
		case "erase":
			this.renderSession.context.globalCompositeOperation = "destination-out";
			break;
		case "hardlight":
			this.renderSession.context.globalCompositeOperation = "hard-light";
			break;
		case "layer":
			this.renderSession.context.globalCompositeOperation = "source-over";
			break;
		case "lighten":
			this.renderSession.context.globalCompositeOperation = "lighten";
			break;
		case "multiply":
			this.renderSession.context.globalCompositeOperation = "multiply";
			break;
		case "overlay":
			this.renderSession.context.globalCompositeOperation = "overlay";
			break;
		case "screen":
			this.renderSession.context.globalCompositeOperation = "screen";
			break;
		default:
			this.renderSession.context.globalCompositeOperation = "source-over";
		}
	}
});
CanvasBlendModeManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasBlendModeManager"] = CanvasBlendModeManager;
// Init
// Statics
// Export
exports.default = CanvasBlendModeManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 161 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasMaskManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractMaskManager() {return __webpack_require__(120);}
// Constructor
var CanvasMaskManager = function(renderSession) {
	(openfl__$internal_renderer_AbstractMaskManager().default).call(this,renderSession);
}
// Meta
CanvasMaskManager.__name__ = ["openfl","_internal","renderer","canvas","CanvasMaskManager"];
CanvasMaskManager.__super__ = (openfl__$internal_renderer_AbstractMaskManager().default);
CanvasMaskManager.prototype = $extend((openfl__$internal_renderer_AbstractMaskManager().default).prototype, {
	pushMask: function(mask) {
		var context = this.renderSession.context;
		context.save();
		var transform = mask.__getRenderTransform();
		context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
		context.beginPath();
		mask.__renderCanvasMask(this.renderSession);
		context.clip();
	},
	pushObject: function(object,handleScrollRect) {
		if(handleScrollRect == null) {
			handleScrollRect = true;
		}
		if(handleScrollRect && object.__scrollRect != null) {
			this.pushRect(object.__scrollRect,object.__renderTransform);
		}
		if(!object.__cacheBitmapRender && object.__mask != null) {
			this.pushMask(object.__mask);
		}
	},
	pushRect: function(rect,transform) {
		var context = this.renderSession.context;
		context.save();
		context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
		context.beginPath();
		context.rect(rect.x,rect.y,rect.width,rect.height);
		context.clip();
	},
	popMask: function() {
		this.renderSession.context.restore();
	},
	popObject: function(object,handleScrollRect) {
		if(handleScrollRect == null) {
			handleScrollRect = true;
		}
		if(!object.__cacheBitmapRender && object.__mask != null) {
			this.popMask();
		}
		if(handleScrollRect && object.__scrollRect != null) {
			this.popRect();
		}
	},
	popRect: function() {
		this.renderSession.context.restore();
	}
});
CanvasMaskManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasMaskManager"] = CanvasMaskManager;
// Init
// Statics
// Export
exports.default = CanvasMaskManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 162 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLRenderer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractRenderer() {return __webpack_require__(118);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
function lime_math__$Matrix4_Matrix4_$Impl_$() {return __webpack_require__(293);}
function openfl_display_BitmapData() {return __webpack_require__(44);}
function openfl_display_Graphics() {return __webpack_require__(69);}
function openfl__$internal_renderer_RenderSession() {return __webpack_require__(91);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function openfl__$internal_renderer_opengl_GLBlendModeManager() {return __webpack_require__(295);}
function openfl__$internal_renderer_opengl_GLFilterManager() {return __webpack_require__(296);}
function openfl__$internal_renderer_opengl_GLShaderManager() {return __webpack_require__(298);}
function openfl__$internal_renderer_opengl_GLMaskManager() {return __webpack_require__(59);}
// Constructor
var GLRenderer = function(stage,gl,defaultRenderTarget) {
	(openfl__$internal_renderer_AbstractRenderer().default).call(this,stage);
	this.gl = gl;
	this.defaultRenderTarget = defaultRenderTarget;
	this.flipped = defaultRenderTarget == null;
	if((openfl_display_Graphics().default).maxTextureWidth == null) {
		(openfl_display_Graphics().default).maxTextureWidth = (openfl_display_Graphics().default).maxTextureHeight = gl.getInteger(gl.MAX_TEXTURE_SIZE);
	}
	this.matrix = (lime_math__$Matrix4_Matrix4_$Impl_$().default)._new();
	this.values = [];
	this.renderSession = new (openfl__$internal_renderer_RenderSession().default)();
	this.renderSession.clearRenderDirty = true;
	this.renderSession.gl = gl;
	this.renderSession.renderer = this;
	this.renderSession.renderType = (lime_graphics_RendererType().default).OPENGL;
	this.renderSession.blendModeManager = new (openfl__$internal_renderer_opengl_GLBlendModeManager().default)(gl);
	this.renderSession.filterManager = new (openfl__$internal_renderer_opengl_GLFilterManager().default)(this,this.renderSession);
	this.renderSession.shaderManager = new (openfl__$internal_renderer_opengl_GLShaderManager().default)(gl);
	this.renderSession.maskManager = new (openfl__$internal_renderer_opengl_GLMaskManager().default)(this.renderSession);
	if(stage.window != null) {
		if(stage.stage3Ds.get(0).context3D == null) {
			stage.stage3Ds.get(0).__createContext(stage,this.renderSession);
		}
		var width = defaultRenderTarget != null ? defaultRenderTarget.width : Math.ceil(stage.window.get_width() * stage.window.get_scale());
		var height = defaultRenderTarget != null ? defaultRenderTarget.height : Math.ceil(stage.window.get_height() * stage.window.get_scale());
		this.resize(width,height);
	}
}
// Meta
GLRenderer.__name__ = ["openfl","_internal","renderer","opengl","GLRenderer"];
GLRenderer.__super__ = (openfl__$internal_renderer_AbstractRenderer().default);
GLRenderer.prototype = $extend((openfl__$internal_renderer_AbstractRenderer().default).prototype, {
	clear: function() {
		if(this.stage.__transparent) {
			this.gl.clearColor(0,0,0,0);
		} else {
			this.gl.clearColor(this.stage.__colorSplit[0],this.stage.__colorSplit[1],this.stage.__colorSplit[2],1);
		}
		this.gl.clear(this.gl.COLOR_BUFFER_BIT);
	},
	getCacheObject: function() {
	},
	getMatrix: function(transform) {
		var _matrix = (openfl_geom_Matrix().default).__pool.get();
		_matrix.copyFrom(transform);
		_matrix.concat(this.displayMatrix);
		if(this.renderSession.roundPixels) {
			_matrix.tx = Math.round(_matrix.tx);
			_matrix.ty = Math.round(_matrix.ty);
		}
		(lime_math__$Matrix4_Matrix4_$Impl_$().default).identity(this.matrix);
		(lime_math__$Matrix4_Matrix4_$Impl_$().default).set(this.matrix,0,_matrix.a);
		(lime_math__$Matrix4_Matrix4_$Impl_$().default).set(this.matrix,1,_matrix.b);
		(lime_math__$Matrix4_Matrix4_$Impl_$().default).set(this.matrix,4,_matrix.c);
		(lime_math__$Matrix4_Matrix4_$Impl_$().default).set(this.matrix,5,_matrix.d);
		(lime_math__$Matrix4_Matrix4_$Impl_$().default).set(this.matrix,12,_matrix.tx);
		(lime_math__$Matrix4_Matrix4_$Impl_$().default).set(this.matrix,13,_matrix.ty);
		(lime_math__$Matrix4_Matrix4_$Impl_$().default).append(this.matrix,this.flipped ? this.projectionFlipped : this.projection);
		var _g = 0;
		while(_g < 16) {
			var i = _g++;
			this.values[i] = (lime_math__$Matrix4_Matrix4_$Impl_$().default).get(this.matrix,i);
		}
		(openfl_geom_Matrix().default).__pool.release(_matrix);
		return this.values;
	},
	getRenderTarget: function(framebuffer) {
		if(framebuffer) {
			if(this.renderTargetA == null) {
				this.renderTargetA = (openfl_display_BitmapData().default).fromTexture(this.stage.stage3Ds.get(0).context3D.createRectangleTexture(this.width,this.height,"bgra",true));
				this.gl.bindTexture(this.gl.TEXTURE_2D,this.renderTargetA.getTexture(this.gl));
				this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE);
				this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE);
			}
			if(this.renderTargetB == null) {
				this.renderTargetB = (openfl_display_BitmapData().default).fromTexture(this.stage.stage3Ds.get(0).context3D.createRectangleTexture(this.width,this.height,"bgra",true));
				this.gl.bindTexture(this.gl.TEXTURE_2D,this.renderTargetB.getTexture(this.gl));
				this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE);
				this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE);
			}
			if(this.currentRenderTarget == this.renderTargetA) {
				this.currentRenderTarget = this.renderTargetB;
			} else {
				this.currentRenderTarget = this.renderTargetA;
			}
			this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,this.currentRenderTarget.__getFramebuffer(this.gl));
			this.gl.viewport(0,0,this.width,this.height);
			this.gl.clearColor(0,0,0,0);
			this.gl.clear(this.gl.COLOR_BUFFER_BIT);
			this.flipped = false;
		} else {
			this.currentRenderTarget = this.defaultRenderTarget;
			var frameBuffer = this.currentRenderTarget != null ? this.currentRenderTarget.__getFramebuffer(this.gl) : null;
			this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,frameBuffer);
			this.flipped = this.currentRenderTarget == null;
		}
	},
	render: function() {
		this.gl.viewport(this.offsetX,this.offsetY,this.displayWidth,this.displayHeight);
		this.renderSession.allowSmoothing = this.stage.quality != "low";
		this.renderSession.upscaled = this.displayMatrix.a != 1 || this.displayMatrix.d != 1;
		this.stage.__renderGL(this.renderSession);
		if(this.offsetX > 0 || this.offsetY > 0) {
			this.gl.clearColor(0,0,0,1);
			this.gl.enable(this.gl.SCISSOR_TEST);
			if(this.offsetX > 0) {
				this.gl.scissor(0,0,this.offsetX,this.height);
				this.gl.clear(this.gl.COLOR_BUFFER_BIT);
				this.gl.scissor(this.offsetX + this.displayWidth,0,this.width,this.height);
				this.gl.clear(this.gl.COLOR_BUFFER_BIT);
			}
			if(this.offsetY > 0) {
				this.gl.scissor(0,0,this.width,this.offsetY);
				this.gl.clear(this.gl.COLOR_BUFFER_BIT);
				this.gl.scissor(0,this.offsetY + this.displayHeight,this.width,this.height);
				this.gl.clear(this.gl.COLOR_BUFFER_BIT);
			}
			this.gl.disable(this.gl.SCISSOR_TEST);
		}
	},
	renderStage3D: function() {
		var _g = 0;
		var _g1 = this.stage.stage3Ds;
		while(_g < _g1.get_length()) {
			var stage3D = _g1.get(_g);
			++_g;
			stage3D.__renderGL(this.stage,this.renderSession);
		}
	},
	resize: function(width,height) {
		(openfl__$internal_renderer_AbstractRenderer().default).prototype.resize.call(this,width,height);
		if(width > 0 && height > 0) {
			if(this.renderTargetA != null && (this.renderTargetA.width != width || this.renderTargetA.height != height)) {
				this.renderTargetA = (openfl_display_BitmapData().default).fromTexture(this.stage.stage3Ds.get(0).context3D.createRectangleTexture(width,height,"bgra",true));
				this.gl.bindTexture(this.gl.TEXTURE_2D,this.renderTargetA.getTexture(this.gl));
				this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE);
				this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE);
			}
			if(this.renderTargetB != null && (this.renderTargetB.width != width || this.renderTargetB.height != height)) {
				this.renderTargetB = (openfl_display_BitmapData().default).fromTexture(this.stage.stage3Ds.get(0).context3D.createRectangleTexture(width,height,"bgra",true));
				this.gl.bindTexture(this.gl.TEXTURE_2D,this.renderTargetB.getTexture(this.gl));
				this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE);
				this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE);
			}
		}
		this.displayMatrix = this.defaultRenderTarget == null ? this.stage.__displayMatrix : new (openfl_geom_Matrix().default)();
		var w = this.defaultRenderTarget == null ? this.stage.stageWidth : this.defaultRenderTarget.width;
		var h = this.defaultRenderTarget == null ? this.stage.stageHeight : this.defaultRenderTarget.height;
		this.offsetX = Math.round(this.displayMatrix.__transformX(0,0));
		this.offsetY = Math.round(this.displayMatrix.__transformY(0,0));
		this.displayWidth = Math.round(this.displayMatrix.__transformX(w,0) - this.offsetX);
		this.displayHeight = Math.round(this.displayMatrix.__transformY(0,h) - this.offsetY);
		this.projection = (lime_math__$Matrix4_Matrix4_$Impl_$().default).createOrtho(this.offsetX,this.displayWidth + this.offsetX,this.offsetY,this.displayHeight + this.offsetY,-1000,1000);
		this.projectionFlipped = (lime_math__$Matrix4_Matrix4_$Impl_$().default).createOrtho(this.offsetX,this.displayWidth + this.offsetX,this.displayHeight + this.offsetY,this.offsetY,-1000,1000);
	}
});
GLRenderer.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLRenderer"] = GLRenderer;
// Init
// Statics
// Export
exports.default = GLRenderer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 163 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.math.Vector4
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var Vector4 = function(x,y,z,w) {
	if(w == null) {
		w = 0.;
	}
	if(z == null) {
		z = 0.;
	}
	if(y == null) {
		y = 0.;
	}
	if(x == null) {
		x = 0.;
	}
	this.w = w;
	this.x = x;
	this.y = y;
	this.z = z;
}
// Meta
Vector4.__name__ = ["lime","math","Vector4"];
Vector4.prototype = {
	add: function(a) {
		return new Vector4(this.x + a.x,this.y + a.y,this.z + a.z);
	},
	clone: function() {
		return new Vector4(this.x,this.y,this.z,this.w);
	},
	copyFrom: function(sourceVector4) {
		this.x = sourceVector4.x;
		this.y = sourceVector4.y;
		this.z = sourceVector4.z;
	},
	crossProduct: function(a) {
		return new Vector4(this.y * a.z - this.z * a.y,this.z * a.x - this.x * a.z,this.x * a.y - this.y * a.x,1);
	},
	decrementBy: function(a) {
		this.x -= a.x;
		this.y -= a.y;
		this.z -= a.z;
	},
	dotProduct: function(a) {
		return this.x * a.x + this.y * a.y + this.z * a.z;
	},
	equals: function(toCompare,allFour) {
		if(allFour == null) {
			allFour = false;
		}
		if(this.x == toCompare.x && this.y == toCompare.y && this.z == toCompare.z) {
			if(!(!allFour)) {
				return this.w == toCompare.w;
			} else {
				return true;
			}
		} else {
			return false;
		}
	},
	incrementBy: function(a) {
		this.x += a.x;
		this.y += a.y;
		this.z += a.z;
	},
	nearEquals: function(toCompare,tolerance,allFour) {
		if(allFour == null) {
			allFour = false;
		}
		if(Math.abs(this.x - toCompare.x) < tolerance && Math.abs(this.y - toCompare.y) < tolerance && Math.abs(this.z - toCompare.z) < tolerance) {
			if(!(!allFour)) {
				return Math.abs(this.w - toCompare.w) < tolerance;
			} else {
				return true;
			}
		} else {
			return false;
		}
	},
	negate: function() {
		this.x *= -1;
		this.y *= -1;
		this.z *= -1;
	},
	normalize: function() {
		var l = this.get_length();
		if(l != 0) {
			this.x /= l;
			this.y /= l;
			this.z /= l;
		}
		return l;
	},
	project: function() {
		this.x /= this.w;
		this.y /= this.w;
		this.z /= this.w;
	},
	scaleBy: function(s) {
		this.x *= s;
		this.y *= s;
		this.z *= s;
	},
	setTo: function(xa,ya,za) {
		this.x = xa;
		this.y = ya;
		this.z = za;
	},
	subtract: function(a) {
		return new Vector4(this.x - a.x,this.y - a.y,this.z - a.z);
	},
	toString: function() {
		return "Vector4(" + this.x + ", " + this.y + ", " + this.z + ")";
	},
	get_length: function() {
		return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
	},
	get_lengthSquared: function() {
		return this.x * this.x + this.y * this.y + this.z * this.z;
	}
};
Vector4.prototype.__class__ = $hxClasses["lime.math.Vector4"] = Vector4;
// Init
// Statics
Vector4.angleBetween = function(a,b) {
	var a0 = a.clone();
	a0.normalize();
	var b0 = b.clone();
	b0.normalize();
	return Math.acos(a0.dotProduct(b0));
}
Vector4.distance = function(pt1,pt2) {
	var x = pt2.x - pt1.x;
	var y = pt2.y - pt1.y;
	var z = pt2.z - pt1.z;
	return Math.sqrt(x * x + y * y + z * z);
}
Vector4.get_X_AXIS = function() {
	return new Vector4(1,0,0);
}
Vector4.get_Y_AXIS = function() {
	return new Vector4(0,1,0);
}
Vector4.get_Z_AXIS = function() {
	return new Vector4(0,0,1);
}
// Export
exports.default = Vector4;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 164 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.GraphicsPath
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_IGraphicsPath() {return __webpack_require__(165);}
function openfl_display_IGraphicsData() {return __webpack_require__(51);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
function openfl_display_GraphicsDataType() {return __webpack_require__(50);}
// Constructor
var GraphicsPath = function(commands,data,winding) {
	if(winding == null) {
		winding = "evenOdd";
	}
	this.commands = commands;
	this.data = data;
	this.winding = winding;
	this.__graphicsDataType = (openfl_display_GraphicsDataType().default).PATH;
}
// Meta
GraphicsPath.__name__ = ["openfl","display","GraphicsPath"];
GraphicsPath.__interfaces__ = [(openfl_display_IGraphicsPath().default),(openfl_display_IGraphicsData().default)];
GraphicsPath.prototype = {
	cubicCurveTo: function(controlX1,controlY1,controlX2,controlY2,anchorX,anchorY) {
		if(this.commands == null) {
			this.commands = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		if(this.data == null) {
			this.data = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		this.commands.push(6);
		this.data.push(controlX1);
		this.data.push(controlY1);
		this.data.push(controlX2);
		this.data.push(controlY2);
		this.data.push(anchorX);
		this.data.push(anchorY);
	},
	curveTo: function(controlX,controlY,anchorX,anchorY) {
		if(this.commands == null) {
			this.commands = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		if(this.data == null) {
			this.data = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		this.commands.push(3);
		this.data.push(controlX);
		this.data.push(controlY);
		this.data.push(anchorX);
		this.data.push(anchorY);
	},
	lineTo: function(x,y) {
		if(this.commands == null) {
			this.commands = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		if(this.data == null) {
			this.data = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		this.commands.push(2);
		this.data.push(x);
		this.data.push(y);
	},
	moveTo: function(x,y) {
		if(this.commands == null) {
			this.commands = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		if(this.data == null) {
			this.data = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		this.commands.push(1);
		this.data.push(x);
		this.data.push(y);
	},
	wideLineTo: function(x,y) {
		if(this.commands == null) {
			this.commands = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		if(this.data == null) {
			this.data = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		this.commands.push(2);
		this.data.push(x);
		this.data.push(y);
	},
	wideMoveTo: function(x,y) {
		if(this.commands == null) {
			this.commands = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		if(this.data == null) {
			this.data = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		this.commands.push(1);
		this.data.push(x);
		this.data.push(y);
	},
	__drawCircle: function(x,y,radius) {
		this.__drawRoundRect(x - radius,y - radius,radius * 2,radius * 2,radius * 2,radius * 2);
	},
	__drawEllipse: function(x,y,width,height) {
		this.__drawRoundRect(x,y,width,height,width,height);
	},
	__drawRect: function(x,y,width,height) {
		this.moveTo(x,y);
		this.lineTo(x + width,y);
		this.lineTo(x + width,y + height);
		this.lineTo(x,y + height);
		this.lineTo(x,y);
	},
	__drawRoundRect: function(x,y,width,height,ellipseWidth,ellipseHeight) {
		ellipseWidth *= 0.5;
		ellipseHeight *= 0.5;
		if(ellipseWidth > width / 2) {
			ellipseWidth = width / 2;
		}
		if(ellipseHeight > height / 2) {
			ellipseHeight = height / 2;
		}
		var xe = x + width;
		var ye = y + height;
		var cx1 = -ellipseWidth + ellipseWidth * GraphicsPath.SIN45;
		var cx2 = -ellipseWidth + ellipseWidth * GraphicsPath.TAN22;
		var cy1 = -ellipseHeight + ellipseHeight * GraphicsPath.SIN45;
		var cy2 = -ellipseHeight + ellipseHeight * GraphicsPath.TAN22;
		this.moveTo(xe,ye - ellipseHeight);
		this.curveTo(xe,ye + cy2,xe + cx1,ye + cy1);
		this.curveTo(xe + cx2,ye,xe - ellipseWidth,ye);
		this.lineTo(x + ellipseWidth,ye);
		this.curveTo(x - cx2,ye,x - cx1,ye + cy1);
		this.curveTo(x,ye + cy2,x,ye - ellipseHeight);
		this.lineTo(x,y + ellipseHeight);
		this.curveTo(x,y - cy2,x - cx1,y - cy1);
		this.curveTo(x - cx2,y,x + ellipseWidth,y);
		this.lineTo(xe - ellipseWidth,y);
		this.curveTo(xe + cx2,y,xe + cx1,y - cy1);
		this.curveTo(xe,y - cy2,xe,y + ellipseHeight);
		this.lineTo(xe,ye - ellipseHeight);
	}
};
GraphicsPath.prototype.__class__ = $hxClasses["openfl.display.GraphicsPath"] = GraphicsPath;
// Init
// Statics
GraphicsPath.SIN45 = 0.70710678118654752440084436210485
GraphicsPath.TAN22 = 0.4142135623730950488016887242097
// Export
exports.default = GraphicsPath;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 165 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.IGraphicsPath
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IGraphicsPath = function() {}
// Meta
IGraphicsPath.__name__ = ["openfl","display","IGraphicsPath"];
IGraphicsPath.prototype = {
	
};
IGraphicsPath.prototype.__class__ = $hxClasses["openfl.display.IGraphicsPath"] = IGraphicsPath;
// Init
// Statics
// Export
exports.default = IGraphicsPath;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 166 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.GraphicsBitmapFill
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_IGraphicsFill() {return __webpack_require__(72);}
function openfl_display_IGraphicsData() {return __webpack_require__(51);}
function openfl_display_GraphicsDataType() {return __webpack_require__(50);}
function openfl_display_GraphicsFillType() {return __webpack_require__(70);}
// Constructor
var GraphicsBitmapFill = function(bitmapData,matrix,repeat,smooth) {
	if(smooth == null) {
		smooth = false;
	}
	if(repeat == null) {
		repeat = true;
	}
	this.bitmapData = bitmapData;
	this.matrix = matrix;
	this.repeat = repeat;
	this.smooth = smooth;
	this.__graphicsDataType = (openfl_display_GraphicsDataType().default).BITMAP;
	this.__graphicsFillType = (openfl_display_GraphicsFillType().default).BITMAP_FILL;
}
// Meta
GraphicsBitmapFill.__name__ = ["openfl","display","GraphicsBitmapFill"];
GraphicsBitmapFill.__interfaces__ = [(openfl_display_IGraphicsFill().default),(openfl_display_IGraphicsData().default)];
GraphicsBitmapFill.prototype = {
	
};
GraphicsBitmapFill.prototype.__class__ = $hxClasses["openfl.display.GraphicsBitmapFill"] = GraphicsBitmapFill;
// Init
// Statics
// Export
exports.default = GraphicsBitmapFill;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 167 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.GraphicsSolidFill
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_IGraphicsFill() {return __webpack_require__(72);}
function openfl_display_IGraphicsData() {return __webpack_require__(51);}
function openfl_display_GraphicsDataType() {return __webpack_require__(50);}
function openfl_display_GraphicsFillType() {return __webpack_require__(70);}
// Constructor
var GraphicsSolidFill = function(color,alpha) {
	if(alpha == null) {
		alpha = 1;
	}
	if(color == null) {
		color = 0;
	}
	this.alpha = alpha;
	this.color = color;
	this.__graphicsDataType = (openfl_display_GraphicsDataType().default).SOLID;
	this.__graphicsFillType = (openfl_display_GraphicsFillType().default).SOLID_FILL;
}
// Meta
GraphicsSolidFill.__name__ = ["openfl","display","GraphicsSolidFill"];
GraphicsSolidFill.__interfaces__ = [(openfl_display_IGraphicsFill().default),(openfl_display_IGraphicsData().default)];
GraphicsSolidFill.prototype = {
	
};
GraphicsSolidFill.prototype.__class__ = $hxClasses["openfl.display.GraphicsSolidFill"] = GraphicsSolidFill;
// Init
// Statics
// Export
exports.default = GraphicsSolidFill;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 168 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.GraphicsGradientFill
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_IGraphicsFill() {return __webpack_require__(72);}
function openfl_display_IGraphicsData() {return __webpack_require__(51);}
function openfl_display_GraphicsDataType() {return __webpack_require__(50);}
function openfl_display_GraphicsFillType() {return __webpack_require__(70);}
// Constructor
var GraphicsGradientFill = function(type,colors,alphas,ratios,matrix,spreadMethod,interpolationMethod,focalPointRatio) {
	if(focalPointRatio == null) {
		focalPointRatio = 0;
	}
	if(type == null) {
		type = "linear";
	}
	if(spreadMethod == null) {
		spreadMethod = "pad";
	}
	if(interpolationMethod == null) {
		interpolationMethod = "rgb";
	}
	this.type = type;
	this.colors = colors;
	this.alphas = alphas;
	this.ratios = ratios;
	this.matrix = matrix;
	this.spreadMethod = spreadMethod;
	this.interpolationMethod = interpolationMethod;
	this.focalPointRatio = focalPointRatio;
	this.__graphicsDataType = (openfl_display_GraphicsDataType().default).GRADIENT;
	this.__graphicsFillType = (openfl_display_GraphicsFillType().default).GRADIENT_FILL;
}
// Meta
GraphicsGradientFill.__name__ = ["openfl","display","GraphicsGradientFill"];
GraphicsGradientFill.__interfaces__ = [(openfl_display_IGraphicsFill().default),(openfl_display_IGraphicsData().default)];
GraphicsGradientFill.prototype = {
	
};
GraphicsGradientFill.prototype.__class__ = $hxClasses["openfl.display.GraphicsGradientFill"] = GraphicsGradientFill;
// Init
// Statics
// Export
exports.default = GraphicsGradientFill;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 169 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.GraphicsEndFill
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_IGraphicsFill() {return __webpack_require__(72);}
function openfl_display_IGraphicsData() {return __webpack_require__(51);}
function openfl_display_GraphicsDataType() {return __webpack_require__(50);}
function openfl_display_GraphicsFillType() {return __webpack_require__(70);}
// Constructor
var GraphicsEndFill = function() {
	this.__graphicsDataType = (openfl_display_GraphicsDataType().default).END;
	this.__graphicsFillType = (openfl_display_GraphicsFillType().default).END_FILL;
}
// Meta
GraphicsEndFill.__name__ = ["openfl","display","GraphicsEndFill"];
GraphicsEndFill.__interfaces__ = [(openfl_display_IGraphicsFill().default),(openfl_display_IGraphicsData().default)];
GraphicsEndFill.prototype = {
	
};
GraphicsEndFill.prototype.__class__ = $hxClasses["openfl.display.GraphicsEndFill"] = GraphicsEndFill;
// Init
// Statics
// Export
exports.default = GraphicsEndFill;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 170 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.GraphicsStroke
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_IGraphicsStroke() {return __webpack_require__(171);}
function openfl_display_IGraphicsData() {return __webpack_require__(51);}
function openfl_display_GraphicsDataType() {return __webpack_require__(50);}
// Constructor
var GraphicsStroke = function(thickness,pixelHinting,scaleMode,caps,joints,miterLimit,fill) {
	if(miterLimit == null) {
		miterLimit = 3;
	}
	if(joints == null) {
		joints = "round";
	}
	if(caps == null) {
		caps = "none";
	}
	if(scaleMode == null) {
		scaleMode = "normal";
	}
	if(pixelHinting == null) {
		pixelHinting = false;
	}
	if(thickness == null) {
		thickness = NaN;
	}
	this.caps = caps;
	this.fill = fill;
	this.joints = joints;
	this.miterLimit = miterLimit;
	this.pixelHinting = pixelHinting;
	this.scaleMode = scaleMode;
	this.thickness = thickness;
	this.__graphicsDataType = (openfl_display_GraphicsDataType().default).STROKE;
}
// Meta
GraphicsStroke.__name__ = ["openfl","display","GraphicsStroke"];
GraphicsStroke.__interfaces__ = [(openfl_display_IGraphicsStroke().default),(openfl_display_IGraphicsData().default)];
GraphicsStroke.prototype = {
	
};
GraphicsStroke.prototype.__class__ = $hxClasses["openfl.display.GraphicsStroke"] = GraphicsStroke;
// Init
// Statics
// Export
exports.default = GraphicsStroke;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 171 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.IGraphicsStroke
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IGraphicsStroke = function() {}
// Meta
IGraphicsStroke.__name__ = ["openfl","display","IGraphicsStroke"];
IGraphicsStroke.prototype = {
	
};
IGraphicsStroke.prototype.__class__ = $hxClasses["openfl.display.IGraphicsStroke"] = IGraphicsStroke;
// Init
// Statics
// Export
exports.default = IGraphicsStroke;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 172 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.ShaderData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var ShaderData = function(byteArray) {
}
// Meta
ShaderData.__name__ = ["openfl","display","ShaderData"];
ShaderData.prototype = {
	
};
ShaderData.prototype.__class__ = $hxClasses["openfl.display.ShaderData"] = ShaderData;
// Init
// Statics
// Export
exports.default = ShaderData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 173 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.ShaderInput
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var ShaderInput = function() {
	this.channels = 0;
	this.height = 0;
	this.index = 0;
	this.width = 0;
}
// Meta
ShaderInput.__name__ = ["openfl","display","ShaderInput"];
ShaderInput.prototype = {
	
};
ShaderInput.prototype.__class__ = $hxClasses["openfl.display.ShaderInput"] = ShaderInput;
// Init
// Statics
// Export
exports.default = ShaderInput;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 174 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.ShaderParameter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var ShaderParameter = function() {
	this.index = 0;
}
// Meta
ShaderParameter.__name__ = ["openfl","display","ShaderParameter"];
ShaderParameter.prototype = {
	
};
ShaderParameter.prototype.__class__ = $hxClasses["openfl.display.ShaderParameter"] = ShaderParameter;
// Init
// Statics
// Export
exports.default = ShaderParameter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 175 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.errors.EOFError
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_errors_IOError() {return __webpack_require__(124);}
// Constructor
var EOFError = function() {
	(openfl_errors_IOError().default).call(this,"End of file was encountered");
	this.name = "EOFError";
	this.errorID = 2030;
}
// Meta
EOFError.__name__ = ["openfl","errors","EOFError"];
EOFError.__super__ = (openfl_errors_IOError().default);
EOFError.prototype = $extend((openfl_errors_IOError().default).prototype, {
	
});
EOFError.prototype.__class__ = $hxClasses["openfl.errors.EOFError"] = EOFError;
// Init
// Statics
// Export
exports.default = EOFError;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 176 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.net._HTTPRequest.AbstractHTTPRequest
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_net__$IHTTPRequest() {return __webpack_require__(307);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function lime__$backend_html5_HTML5HTTPRequest() {return __webpack_require__(154);}
// Constructor
var AbstractHTTPRequest = function(uri) {
	this.uri = uri;
	this.contentType = "application/x-www-form-urlencoded";
	this.followRedirects = true;
	this.enableResponseHeaders = false;
	this.formData = new (haxe_ds_StringMap().default)();
	this.headers = [];
	this.method = "GET";
	this.timeout = 30000;
	this.withCredentials = false;
	this.backend = new (lime__$backend_html5_HTML5HTTPRequest().default)();
	this.backend.init(this);
}
// Meta
AbstractHTTPRequest.__name__ = ["lime","net","_HTTPRequest","AbstractHTTPRequest"];
AbstractHTTPRequest.__interfaces__ = [(lime_net__$IHTTPRequest().default)];
AbstractHTTPRequest.prototype = {
	cancel: function() {
		this.backend.cancel();
	},
	load: function(uri) {
		return null;
	}
};
AbstractHTTPRequest.prototype.__class__ = $hxClasses["lime.net._HTTPRequest.AbstractHTTPRequest"] = AbstractHTTPRequest;
// Init
// Statics
// Export
exports.default = AbstractHTTPRequest;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 177 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.PNGEncoderOptions
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var PNGEncoderOptions = function(fastCompression) {
	if(fastCompression == null) {
		fastCompression = false;
	}
	this.fastCompression = fastCompression;
}
// Meta
PNGEncoderOptions.__name__ = ["openfl","display","PNGEncoderOptions"];
PNGEncoderOptions.prototype = {
	
};
PNGEncoderOptions.prototype.__class__ = $hxClasses["openfl.display.PNGEncoderOptions"] = PNGEncoderOptions;
// Init
// Statics
// Export
exports.default = PNGEncoderOptions;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 178 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.JPEGEncoderOptions
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var JPEGEncoderOptions = function(quality) {
	if(quality == null) {
		quality = 80;
	}
	this.quality = quality;
}
// Meta
JPEGEncoderOptions.__name__ = ["openfl","display","JPEGEncoderOptions"];
JPEGEncoderOptions.prototype = {
	
};
JPEGEncoderOptions.prototype.__class__ = $hxClasses["openfl.display.JPEGEncoderOptions"] = JPEGEncoderOptions;
// Init
// Statics
// Export
exports.default = JPEGEncoderOptions;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 179 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMDisplayObject
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_renderer_dom_DOMShape() {return __webpack_require__(315);}
// Constructor
var DOMDisplayObject = function(){}
// Meta
DOMDisplayObject.__name__ = ["openfl","_internal","renderer","dom","DOMDisplayObject"];
DOMDisplayObject.prototype = {
	
};
DOMDisplayObject.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMDisplayObject"] = DOMDisplayObject;
// Init
// Statics
DOMDisplayObject.clear = function(displayObject,renderSession) {
	(openfl__$internal_renderer_dom_DOMShape().default).clear(displayObject,renderSession);
}
DOMDisplayObject.render = function(displayObject,renderSession) {
	var tmp = displayObject.opaqueBackground != null && !displayObject.__cacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0;
	(openfl__$internal_renderer_dom_DOMShape().default).render(displayObject,renderSession);
}
// Export
exports.default = DOMDisplayObject;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 180 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLDisplayObject
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl__$internal_renderer_opengl_GLShape() {return __webpack_require__(316);}
// Constructor
var GLDisplayObject = function(){}
// Meta
GLDisplayObject.__name__ = ["openfl","_internal","renderer","opengl","GLDisplayObject"];
GLDisplayObject.prototype = {
	
};
GLDisplayObject.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLDisplayObject"] = GLDisplayObject;
// Init
// Statics
GLDisplayObject.render = function(displayObject,renderSession) {
	if(displayObject.opaqueBackground == null && displayObject.__graphics == null) {
		return;
	}
	if(!displayObject.__renderable || displayObject.__worldAlpha <= 0) {
		return;
	}
	if(displayObject.opaqueBackground != null && !displayObject.__cacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) {
		renderSession.blendModeManager.setBlendMode(displayObject.__worldBlendMode);
		renderSession.maskManager.pushObject(displayObject);
		var gl = renderSession.gl;
		var rect = (openfl_geom_Rectangle().default).__pool.get();
		rect.setTo(0,0,displayObject.get_width(),displayObject.get_height());
		renderSession.maskManager.pushRect(rect,displayObject.__renderTransform);
		var color = displayObject.opaqueBackground;
		gl.clearColor((color >>> 16 & 255) / 255,(color >>> 8 & 255) / 255,(color & 255) / 255,1);
		gl.clear(gl.COLOR_BUFFER_BIT);
		renderSession.maskManager.popRect();
		renderSession.maskManager.popObject(displayObject);
		(openfl_geom_Rectangle().default).__pool.release(rect);
	}
	if(displayObject.__graphics != null) {
		(openfl__$internal_renderer_opengl_GLShape().default).render(displayObject,renderSession);
	}
}
GLDisplayObject.renderMask = function(displayObject,renderSession) {
	if(displayObject.opaqueBackground == null && displayObject.__graphics == null) {
		return;
	}
	if(displayObject.opaqueBackground != null && !displayObject.__cacheBitmapRender && displayObject.get_width() > 0 && displayObject.get_height() > 0) {
		var gl = renderSession.gl;
	}
	if(displayObject.__graphics != null) {
		(openfl__$internal_renderer_opengl_GLShape().default).renderMask(displayObject,renderSession);
	}
}
// Export
exports.default = GLDisplayObject;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 181 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.geom.Transform
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_geom_Matrix3D() {return __webpack_require__(127);}
function openfl_VectorData() {return __webpack_require__(90);}
function openfl_geom_ColorTransform() {return __webpack_require__(40);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
// Constructor
var Transform = function(displayObject) {
	this.__colorTransform = new (openfl_geom_ColorTransform().default)();
	this.concatenatedColorTransform = new (openfl_geom_ColorTransform().default)();
	this.pixelBounds = new (openfl_geom_Rectangle().default)();
	this.__displayObject = displayObject;
	this.__hasMatrix = true;
}
// Meta
Transform.__name__ = ["openfl","geom","Transform"];
Transform.prototype = {
	get_colorTransform: function() {
		return this.__colorTransform;
	},
	set_colorTransform: function(value) {
		if(!this.__colorTransform.__equals(value)) {
			this.__colorTransform.__copyFrom(value);
			if(value != null) {
				this.__displayObject.set_alpha(value.alphaMultiplier);
			}
			this.__displayObject.__setRenderDirty();
		}
		return this.__colorTransform;
	},
	get_concatenatedMatrix: function() {
		if(this.__hasMatrix) {
			return this.__displayObject.__getWorldTransform().clone();
		}
		return null;
	},
	get_matrix: function() {
		if(this.__hasMatrix) {
			return this.__displayObject.__transform.clone();
		}
		return null;
	},
	set_matrix: function(value) {
		if(value == null) {
			this.__hasMatrix = false;
			return null;
		}
		this.__hasMatrix = true;
		this.__hasMatrix3D = false;
		if(this.__displayObject != null) {
			this.__setTransform(value.a,value.b,value.c,value.d,value.tx,value.ty);
		}
		return value;
	},
	get_matrix3D: function() {
		if(this.__hasMatrix3D) {
			var matrix = this.__displayObject.__transform;
			return new (openfl_geom_Matrix3D().default)((openfl_VectorData().default).ofArray([matrix.a,matrix.b,0.0,0.0,matrix.c,matrix.d,0.0,0.0,0.0,0.0,1.0,0.0,matrix.tx,matrix.ty,0.0,1.0]));
		}
		return null;
	},
	set_matrix3D: function(value) {
		if(value == null) {
			this.__hasMatrix3D = false;
			return null;
		}
		this.__hasMatrix = false;
		this.__hasMatrix3D = true;
		this.__setTransform(value.rawData.get(0),value.rawData.get(1),value.rawData.get(5),value.rawData.get(6),value.rawData.get(12),value.rawData.get(13));
		return value;
	},
	__setTransform: function(a,b,c,d,tx,ty) {
		if(this.__displayObject != null) {
			var scaleX = 0.0;
			var scaleY = 0.0;
			if(b == 0) {
				scaleX = a;
			} else {
				scaleX = Math.sqrt(a * a + b * b);
			}
			if(c == 0) {
				scaleY = a;
			} else {
				scaleY = Math.sqrt(c * c + d * d);
			}
			this.__displayObject.__scaleX = scaleX;
			this.__displayObject.__scaleY = scaleY;
			var rotation = 180 / Math.PI * Math.atan2(d,c) - 90;
			if(rotation != this.__displayObject.__rotation) {
				this.__displayObject.__rotation = rotation;
				var radians = rotation * (Math.PI / 180);
				this.__displayObject.__rotationSine = Math.sin(radians);
				this.__displayObject.__rotationCosine = Math.cos(radians);
			}
			this.__displayObject.__transform.a = a;
			this.__displayObject.__transform.b = b;
			this.__displayObject.__transform.c = c;
			this.__displayObject.__transform.d = d;
			this.__displayObject.__transform.tx = tx;
			this.__displayObject.__transform.ty = ty;
			this.__displayObject.__setTransformDirty();
		}
	}
};
Transform.prototype.__class__ = $hxClasses["openfl.geom.Transform"] = Transform;
// Init
Object.defineProperties(Transform.prototype,{ "colorTransform" : { get : function () { return this.get_colorTransform (); }, set : function (v) { return this.set_colorTransform (v); }}, "concatenatedMatrix" : { get : function () { return this.get_concatenatedMatrix (); }, set : function (v) { return this.set_concatenatedMatrix (v); }}, "matrix" : { get : function () { return this.get_matrix (); }, set : function (v) { return this.set_matrix (v); }}, "matrix3D" : { get : function () { return this.get_matrix3D (); }, set : function (v) { return this.set_matrix3D (v); }}});
// Statics
// Export
exports.default = Transform;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 182 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.errors.RangeError
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_errors_Error() {return __webpack_require__(30);}
// Constructor
var RangeError = function(message) {
	if(message == null) {
		message = "";
	}
	(openfl_errors_Error().default).call(this,message,0);
	this.name = "RangeError";
}
// Meta
RangeError.__name__ = ["openfl","errors","RangeError"];
RangeError.__super__ = (openfl_errors_Error().default);
RangeError.prototype = $extend((openfl_errors_Error().default).prototype, {
	
});
RangeError.prototype.__class__ = $hxClasses["openfl.errors.RangeError"] = RangeError;
// Init
// Statics
// Export
exports.default = RangeError;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 183 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill.InvalidCodeUnitSequence
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_text_unifill_Exception() {return __webpack_require__(184);}
// Constructor
var InvalidCodeUnitSequence = function(index) {
	(lime_text_unifill_Exception().default).call(this);
	this.index = index;
}
// Meta
InvalidCodeUnitSequence.__name__ = ["lime","text","unifill","InvalidCodeUnitSequence"];
InvalidCodeUnitSequence.__super__ = (lime_text_unifill_Exception().default);
InvalidCodeUnitSequence.prototype = $extend((lime_text_unifill_Exception().default).prototype, {
	toString: function() {
		return "InvalidCodeUnitSequence(index: " + this.index + ")";
	}
});
InvalidCodeUnitSequence.prototype.__class__ = $hxClasses["lime.text.unifill.InvalidCodeUnitSequence"] = InvalidCodeUnitSequence;
// Init
// Statics
// Export
exports.default = InvalidCodeUnitSequence;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 184 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill.Exception
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js__$Boot_HaxeError() {return __webpack_require__(6);}
// Constructor
var Exception = function() {
}
// Meta
Exception.__name__ = ["lime","text","unifill","Exception"];
Exception.prototype = {
	toString: function() {
		throw new (js__$Boot_HaxeError().default)(null);
	}
};
Exception.prototype.__class__ = $hxClasses["lime.text.unifill.Exception"] = Exception;
// Init
// Statics
// Export
exports.default = Exception;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 185 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.text.TextLineMetrics
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var TextLineMetrics = function(x,width,height,ascent,descent,leading) {
	this.x = x;
	this.width = width;
	this.height = height;
	this.ascent = ascent;
	this.descent = descent;
	this.leading = leading;
}
// Meta
TextLineMetrics.__name__ = ["openfl","text","TextLineMetrics"];
TextLineMetrics.prototype = {
	
};
TextLineMetrics.prototype.__class__ = $hxClasses["openfl.text.TextLineMetrics"] = TextLineMetrics;
// Init
// Statics
// Export
exports.default = TextLineMetrics;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 186 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.text.TextFormatRange
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var TextFormatRange = function(format,start,end) {
	this.format = format;
	this.start = start;
	this.end = end;
}
// Meta
TextFormatRange.__name__ = ["openfl","_internal","text","TextFormatRange"];
TextFormatRange.prototype = {
	
};
TextFormatRange.prototype.__class__ = $hxClasses["openfl._internal.text.TextFormatRange"] = TextFormatRange;
// Init
// Statics
// Export
exports.default = TextFormatRange;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 187 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.MovieClip
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_display_Sprite() {return __webpack_require__(97);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
function Std() {return __webpack_require__(4);}
function Type() {return __webpack_require__(10);}
function openfl_display_FrameLabel() {return __webpack_require__(188);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function haxe_Log() {return __webpack_require__(47);}
function haxe_CallStack() {return __webpack_require__(121);}
function lime_utils_Log() {return __webpack_require__(23);}
function openfl__$internal_timeline_FrameObjectType() {return __webpack_require__(333);}
function openfl_display__$MovieClip_FrameSymbolInstance() {return __webpack_require__(334);}
function openfl_errors_ArgumentError() {return __webpack_require__(71);}
function openfl_filters_BlurFilter() {return __webpack_require__(189);}
function openfl_filters_ColorMatrixFilter() {return __webpack_require__(190);}
function openfl_filters_DropShadowFilter() {return __webpack_require__(191);}
function openfl_filters_GlowFilter() {return __webpack_require__(100);}
function Reflect() {return __webpack_require__(5);}
// Constructor
var MovieClip = function() {
	(openfl_display_Sprite().default).call(this);
	this.__currentFrame = 1;
	this.__currentLabels = [];
	this.__totalFrames = 0;
	this.enabled = true;
	if(MovieClip.__initSymbol != null) {
		this.__swf = MovieClip.__initSWF;
		this.__symbol = MovieClip.__initSymbol;
		MovieClip.__initSWF = null;
		MovieClip.__initSymbol = null;
		this.__fromSymbol(this.__swf,this.__symbol);
	}
}
// Meta
MovieClip.__name__ = ["openfl","display","MovieClip"];
MovieClip.__super__ = (openfl_display_Sprite().default);
MovieClip.prototype = $extend((openfl_display_Sprite().default).prototype, {
	addFrameScript: function(index,method) {
		if(index < 0) {
			return;
		}
		var frame = index + 1;
		if(method != null) {
			if(this.__frameScripts == null) {
				this.__frameScripts = new (haxe_ds_IntMap().default)();
			}
			this.__frameScripts.set(frame,method);
		} else if(this.__frameScripts != null) {
			this.__frameScripts.remove(frame);
		}
	},
	gotoAndPlay: function(frame,scene) {
		this.play();
		this.__goto(this.__resolveFrameReference(frame));
	},
	gotoAndStop: function(frame,scene) {
		this.stop();
		this.__goto(this.__resolveFrameReference(frame));
	},
	nextFrame: function() {
		this.stop();
		this.__goto(this.__currentFrame + 1);
	},
	play: function() {
		if(this.__symbol == null || this.__playing || this.__totalFrames < 2) {
			return;
		}
		this.__playing = true;
		this.__frameTime = (Std().default)["int"](1000 / this.__swf.frameRate);
		this.__timeElapsed = 0;
	},
	prevFrame: function() {
		this.stop();
		this.__goto(this.__currentFrame - 1);
	},
	stop: function() {
		this.__playing = false;
	},
	__enterFrame: function(deltaTime) {
		if(this.__symbol != null && this.__playing) {
			var nextFrame = this.__getNextFrame(deltaTime);
			if(this.__lastFrameScriptEval == nextFrame) {
				return;
			}
			if(this.__frameScripts != null) {
				if(nextFrame < this.__currentFrame) {
					if(!this.__evaluateFrameScripts(this.__totalFrames)) {
						return;
					}
					this.__currentFrame = 1;
				}
				if(!this.__evaluateFrameScripts(nextFrame)) {
					return;
				}
			} else {
				this.__currentFrame = nextFrame;
			}
		}
		if(this.__symbol != null && this.__currentFrame != this.__lastFrameUpdate) {
			this.__updateFrameLabel();
			var currentInstancesByFrameObjectID = new (haxe_ds_IntMap().default)();
			var frame;
			var frameData;
			var instance;
			var _g1 = 0;
			var _g = this.__currentFrame;
			while(_g1 < _g) {
				var i = _g1++;
				frame = i + 1;
				frameData = this.__symbol.frames[i];
				if(frameData.objects == null) {
					continue;
				}
				var _g2 = 0;
				var _g3 = frameData.objects;
				while(_g2 < _g3.length) {
					var frameObject = _g3[_g2];
					++_g2;
					var _g4 = frameObject.type;
					switch((Type().default).enumIndex(_g4)) {
					case 0:
						instance = this.__activeInstancesByFrameObjectID.get(frameObject.id);
						if(instance != null) {
							currentInstancesByFrameObjectID.set(frameObject.id,instance);
							this.__updateDisplayObject(instance.displayObject,frameObject);
						}
						break;
					case 1:
						instance = currentInstancesByFrameObjectID.get(frameObject.id);
						if(instance != null && instance.displayObject != null) {
							this.__updateDisplayObject(instance.displayObject,frameObject);
						}
						break;
					case 2:
						currentInstancesByFrameObjectID.remove(frameObject.id);
						break;
					}
				}
			}
			var currentInstances = [];
			var currentMasks = [];
			var instance1 = currentInstancesByFrameObjectID.iterator();
			while(instance1.hasNext()) {
				var instance2 = instance1.next();
				if(currentInstances.indexOf(instance2) == -1) {
					currentInstances.push(instance2);
					if(instance2.clipDepth > 0) {
						currentMasks.push(instance2);
					}
				}
			}
			currentInstances.sort($bind(this,this.__sortDepths));
			var existingChild;
			var targetDepth;
			var targetChild;
			var child;
			var maskApplied;
			var _g11 = 0;
			var _g5 = currentInstances.length;
			while(_g11 < _g5) {
				var i1 = _g11++;
				existingChild = this.__children[i1];
				instance = currentInstances[i1];
				targetDepth = instance.depth;
				targetChild = instance.displayObject;
				if(existingChild != targetChild) {
					child = targetChild;
					this.addChildAt(targetChild,i1);
				} else {
					child = this.__children[i1];
				}
				maskApplied = false;
				var _g21 = 0;
				while(_g21 < currentMasks.length) {
					var mask = currentMasks[_g21];
					++_g21;
					if(targetDepth > mask.depth && targetDepth <= mask.clipDepth) {
						child.set_mask(mask.displayObject);
						maskApplied = true;
						break;
					}
				}
				if(currentMasks.length > 0 && !maskApplied && child.get_mask() != null) {
					child.set_mask(null);
				}
			}
			var child1;
			var i2 = currentInstances.length;
			var length = this.__children.length;
			while(i2 < length) {
				child1 = this.__children[i2];
				var _g6 = 0;
				var _g12 = this.__activeInstances;
				while(_g6 < _g12.length) {
					var instance3 = _g12[_g6];
					++_g6;
					if(instance3.displayObject == child1) {
						this.removeChild(child1);
						--i2;
						--length;
					}
				}
				++i2;
			}
			this.__lastFrameUpdate = this.__currentFrame;
		}
		(openfl_display_Sprite().default).prototype.__enterFrame.call(this,deltaTime);
	},
	__evaluateFrameScripts: function(advanceToFrame) {
		var _g1 = this.__currentFrame;
		var _g = advanceToFrame + 1;
		while(_g1 < _g) {
			var frame = _g1++;
			if(frame == this.__lastFrameScriptEval) {
				continue;
			}
			this.__lastFrameScriptEval = frame;
			this.__currentFrame = frame;
			if(this.__frameScripts.exists(frame)) {
				var script = this.__frameScripts.get(frame);
				script();
				if(this.__currentFrame != frame) {
					return false;
				}
			}
			if(!this.__playing) {
				break;
			}
		}
		return true;
	},
	__fromSymbol: function(swf,symbol) {
		var _gthis = this;
		if(this.__activeInstances != null) {
			return;
		}
		this.__swf = swf;
		this.__symbol = symbol;
		this.__activeInstances = [];
		this.__activeInstancesByFrameObjectID = new (haxe_ds_IntMap().default)();
		this.__currentFrame = 1;
		this.__lastFrameScriptEval = -1;
		this.__lastFrameUpdate = -1;
		this.__totalFrames = this.__symbol.frames.length;
		var frame;
		var frameData;
		var _g1 = 0;
		var _g = this.__symbol.frames.length;
		while(_g1 < _g) {
			var i = _g1++;
			frame = i + 1;
			frameData = this.__symbol.frames[i];
			if(frameData.label != null) {
				this.__currentLabels.push(new (openfl_display_FrameLabel().default)(frameData.label,i + 1));
			}
			if(frameData.script != null) {
				if(this.__frameScripts == null) {
					this.__frameScripts = new (haxe_ds_IntMap().default)();
				}
				this.__frameScripts.set(frame,frameData.script);
			} else if(frameData.scriptSource != null) {
				if(this.__frameScripts == null) {
					this.__frameScripts = new (haxe_ds_IntMap().default)();
				}
				try {
					var script = [eval("(function(){" + frameData.scriptSource + "})")];
					var wrapper = (function(script1) {
						return function() {
							try {
								script1[0].call(_gthis);
							} catch( e ) {
								if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
								(haxe_Log().default).trace("Error evaluating frame script\n " + (Std().default).string(e) + "\n" + (haxe_CallStack().default).exceptionStack().map((function() {
									return function(a) {
										return a[2];
									};
								})()).join("\n") + "\n" + (Std().default).string(e.stack) + "\n" + script1[0].toString(),{ fileName : "MovieClip.hx", lineNumber : 503, className : "openfl.display.MovieClip", methodName : "__fromSymbol"});
							}
						};
					})(script);
					this.__frameScripts.set(frame,wrapper);
				} catch( e1 ) {
					if(this.__symbol.className != null) {
						(lime_utils_Log().default).warn("Unable to evaluate frame script source for symbol \"" + this.__symbol.className + "\" frame " + frame + "\n" + frameData.scriptSource,{ fileName : "MovieClip.hx", lineNumber : 519, className : "openfl.display.MovieClip", methodName : "__fromSymbol"});
					} else {
						(lime_utils_Log().default).warn("Unable to evaluate frame script source:\n" + frameData.scriptSource,{ fileName : "MovieClip.hx", lineNumber : 523, className : "openfl.display.MovieClip", methodName : "__fromSymbol"});
					}
				}
			}
		}
		var frame1;
		var frameData1;
		var instance;
		var duplicate;
		var symbol1;
		var displayObject;
		var _g11 = 0;
		var _g2 = this.__totalFrames;
		while(_g11 < _g2) {
			var i1 = _g11++;
			frame1 = i1 + 1;
			frameData1 = this.__symbol.frames[i1];
			if(frameData1.objects == null) {
				continue;
			}
			var _g21 = 0;
			var _g3 = frameData1.objects;
			while(_g21 < _g3.length) {
				var frameObject = _g3[_g21];
				++_g21;
				if(frameObject.type == (openfl__$internal_timeline_FrameObjectType().default).CREATE) {
					if(this.__activeInstancesByFrameObjectID.exists(frameObject.id)) {
						continue;
					} else {
						instance = null;
						duplicate = false;
						var _g4 = 0;
						var _g5 = this.__activeInstances;
						while(_g4 < _g5.length) {
							var activeInstance = _g5[_g4];
							++_g4;
							if(activeInstance.displayObject != null && activeInstance.characterID == frameObject.symbol && activeInstance.depth == frameObject.depth) {
								instance = activeInstance;
								duplicate = true;
								break;
							}
						}
					}
					if(instance == null) {
						symbol1 = this.__swf.symbols.get(frameObject.symbol);
						if(symbol1 != null) {
							displayObject = symbol1.__createObject(this.__swf);
							if(displayObject != null) {
								displayObject.parent = this;
								displayObject.stage = this.stage;
								instance = new (openfl_display__$MovieClip_FrameSymbolInstance().default)(frame1,frameObject.id,frameObject.symbol,frameObject.depth,displayObject,frameObject.clipDepth);
							}
						}
					}
					if(instance != null) {
						this.__activeInstancesByFrameObjectID.set(frameObject.id,instance);
						if(!duplicate) {
							this.__activeInstances.push(instance);
							this.__updateDisplayObject(instance.displayObject,frameObject);
						}
					}
				}
			}
		}
		if(this.__totalFrames > 1) {
			this.play();
		}
		this.__enterFrame(0);
	},
	__getNextFrame: function(deltaTime) {
		this.__timeElapsed += deltaTime;
		var nextFrame = this.__currentFrame + Math.floor(this.__timeElapsed / this.__frameTime);
		if(nextFrame < 1) {
			nextFrame = 1;
		}
		if(nextFrame > this.__totalFrames) {
			nextFrame = Math.floor((nextFrame - 1) % this.__totalFrames) + 1;
		}
		this.__timeElapsed %= this.__frameTime;
		return nextFrame;
	},
	__goto: function(frame) {
		if(this.__symbol == null) {
			return;
		}
		if(frame < 1) {
			frame = 1;
		} else if(frame > this.__totalFrames) {
			frame = this.__totalFrames;
		}
		this.__currentFrame = frame;
		this.__enterFrame(0);
	},
	__resolveFrameReference: function(frame) {
		if(typeof(frame) == "number" && ((frame | 0) === frame)) {
			return frame;
		} else if(typeof(frame) == "string") {
			var label = frame;
			var _g = 0;
			var _g1 = this.__currentLabels;
			while(_g < _g1.length) {
				var frameLabel = _g1[_g];
				++_g;
				if(frameLabel.get_name() == label) {
					return frameLabel.get_frame();
				}
			}
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_ArgumentError().default)("Error #2109: Frame label " + label + " not found in scene."));
		} else {
			throw new (js__$Boot_HaxeError().default)("Invalid type for frame " + (Type().default).getClassName(frame));
		}
	},
	__sortDepths: function(a,b) {
		return a.depth - b.depth;
	},
	__stopAllMovieClips: function() {
		(openfl_display_Sprite().default).prototype.__stopAllMovieClips.call(this);
		this.stop();
	},
	__updateDisplayObject: function(displayObject,frameObject) {
		if(displayObject == null) {
			return;
		}
		if(frameObject.name != null) {
			displayObject.set_name(frameObject.name);
		}
		if(frameObject.matrix != null) {
			displayObject.get_transform().set_matrix(frameObject.matrix);
		}
		if(frameObject.colorTransform != null) {
			displayObject.get_transform().set_colorTransform(frameObject.colorTransform);
		}
		if(frameObject.filters != null) {
			var filters = [];
			var _g = 0;
			var _g1 = frameObject.filters;
			while(_g < _g1.length) {
				var filter = _g1[_g];
				++_g;
				switch((Type().default).enumIndex(filter)) {
				case 0:
					var quality = filter[4];
					var blurY = filter[3];
					var blurX = filter[2];
					filters.push(new (openfl_filters_BlurFilter().default)(blurX,blurY,quality));
					break;
				case 1:
					var matrix = filter[2];
					filters.push(new (openfl_filters_ColorMatrixFilter().default)(matrix));
					break;
				case 2:
					var hideObject = filter[12];
					var knockout = filter[11];
					var inner = filter[10];
					var quality1 = filter[9];
					var strength = filter[8];
					var blurY1 = filter[7];
					var blurX1 = filter[6];
					var alpha = filter[5];
					var color = filter[4];
					var angle = filter[3];
					var distance = filter[2];
					filters.push(new (openfl_filters_DropShadowFilter().default)(distance,angle,color,alpha,blurX1,blurY1,strength,quality1,inner,knockout,hideObject));
					break;
				case 3:
					var knockout1 = filter[9];
					var inner1 = filter[8];
					var quality2 = filter[7];
					var strength1 = filter[6];
					var blurY2 = filter[5];
					var blurX2 = filter[4];
					var alpha1 = filter[3];
					var color1 = filter[2];
					filters.push(new (openfl_filters_GlowFilter().default)(color1,alpha1,blurX2,blurY2,strength1,quality2,inner1,knockout1));
					break;
				}
			}
			displayObject.set_filters(filters);
		} else {
			displayObject.set_filters(null);
		}
		if(frameObject.visible != null) {
			displayObject.set_visible(frameObject.visible);
		}
		if(frameObject.blendMode != null) {
			displayObject.set_blendMode(frameObject.blendMode);
		}
		var tmp = frameObject.cacheAsBitmap != null;
		(Reflect().default).setField(this,displayObject.get_name(),displayObject);
	},
	__updateFrameLabel: function() {
		this.__currentFrameLabel = this.__symbol.frames[this.__currentFrame - 1].label;
		if(this.__currentFrameLabel != null) {
			this.__currentLabel = this.__currentFrameLabel;
		} else {
			this.__currentLabel = null;
			var _g = 0;
			var _g1 = this.__currentLabels;
			while(_g < _g1.length) {
				var label = _g1[_g];
				++_g;
				if(label.get_frame() < this.__currentFrame) {
					this.__currentLabel = label.get_name();
				} else {
					break;
				}
			}
		}
	},
	get_currentFrame: function() {
		return this.__currentFrame;
	},
	get_currentFrameLabel: function() {
		return this.__currentFrameLabel;
	},
	get_currentLabel: function() {
		return this.__currentLabel;
	},
	get_currentLabels: function() {
		return this.__currentLabels;
	},
	get_framesLoaded: function() {
		return this.__totalFrames;
	},
	get_isPlaying: function() {
		return this.__playing;
	},
	get_totalFrames: function() {
		return this.__totalFrames;
	}
});
MovieClip.prototype.__class__ = $hxClasses["openfl.display.MovieClip"] = MovieClip;
// Init
Object.defineProperties(MovieClip.prototype,{ "currentFrame" : { get : function () { return this.get_currentFrame (); }}, "currentFrameLabel" : { get : function () { return this.get_currentFrameLabel (); }}, "currentLabel" : { get : function () { return this.get_currentLabel (); }}, "currentLabels" : { get : function () { return this.get_currentLabels (); }}, "framesLoaded" : { get : function () { return this.get_framesLoaded (); }}, "isPlaying" : { get : function () { return this.get_isPlaying (); }}, "totalFrames" : { get : function () { return this.get_totalFrames (); }}});
// Statics
// Export
exports.default = MovieClip;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 188 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.FrameLabel
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
// Constructor
var FrameLabel = function(name,frame) {
	(openfl_events_EventDispatcher().default).call(this);
	this.__name = name;
	this.__frame = frame;
}
// Meta
FrameLabel.__name__ = ["openfl","display","FrameLabel"];
FrameLabel.__super__ = (openfl_events_EventDispatcher().default);
FrameLabel.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	get_frame: function() {
		return this.__frame;
	},
	get_name: function() {
		return this.__name;
	}
});
FrameLabel.prototype.__class__ = $hxClasses["openfl.display.FrameLabel"] = FrameLabel;
// Init
{
	Object.defineProperty(FrameLabel.prototype,"frame",{ get : function () { return this.get_frame (); }});
	Object.defineProperty(FrameLabel.prototype,"name",{ get : function () { return this.get_name (); }});
};
// Statics
// Export
exports.default = FrameLabel;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 189 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.filters.BlurFilter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_filters_BitmapFilter() {return __webpack_require__(78);}
function lime_graphics_utils_ImageDataUtil() {return __webpack_require__(65);}
// Constructor
var BlurFilter = function(blurX,blurY,quality) {
	if(quality == null) {
		quality = 1;
	}
	if(blurY == null) {
		blurY = 4;
	}
	if(blurX == null) {
		blurX = 4;
	}
	(openfl_filters_BitmapFilter().default).call(this);
	this.set_blurX(blurX);
	this.set_blurY(blurY);
	this.set_quality(quality);
	this.__needSecondBitmapData = true;
	this.__preserveObject = false;
	this.__renderDirty = true;
}
// Meta
BlurFilter.__name__ = ["openfl","filters","BlurFilter"];
BlurFilter.__super__ = (openfl_filters_BitmapFilter().default);
BlurFilter.prototype = $extend((openfl_filters_BitmapFilter().default).prototype, {
	clone: function() {
		return new BlurFilter(this.__blurX,this.__blurY,this.__quality);
	},
	__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) {
		var finalImage = (lime_graphics_utils_ImageDataUtil().default).gaussianBlur(bitmapData.image,sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),this.__blurX,this.__blurY,this.__quality);
		if(finalImage == bitmapData.image) {
			return bitmapData;
		}
		return sourceBitmapData;
	},
	__initShader: function(renderSession,pass) {
		return null;
	},
	get_blurX: function() {
		return this.__blurX;
	},
	set_blurX: function(value) {
		if(value != this.__blurX) {
			this.__blurX = value;
			this.__renderDirty = true;
			this.__leftExtension = value > 0 ? Math.ceil(value) : 0;
			this.__rightExtension = this.__leftExtension;
		}
		return value;
	},
	get_blurY: function() {
		return this.__blurY;
	},
	set_blurY: function(value) {
		if(value != this.__blurY) {
			this.__blurY = value;
			this.__renderDirty = true;
			this.__topExtension = value > 0 ? Math.ceil(value) : 0;
			this.__bottomExtension = this.__topExtension;
		}
		return value;
	},
	get_quality: function() {
		return this.__quality;
	},
	set_quality: function(value) {
		this.__horizontalPasses = this.__blurX <= 0 ? 0 : Math.round(this.__blurX * (value / 4)) + 1;
		this.__verticalPasses = this.__blurY <= 0 ? 0 : Math.round(this.__blurY * (value / 4)) + 1;
		this.__numShaderPasses = this.__horizontalPasses + this.__verticalPasses;
		if(value != this.__quality) {
			this.__renderDirty = true;
		}
		return this.__quality = value;
	}
});
BlurFilter.prototype.__class__ = $hxClasses["openfl.filters.BlurFilter"] = BlurFilter;
// Init
Object.defineProperties(BlurFilter.prototype,{ "blurX" : { get : function () { return this.get_blurX (); }, set : function (v) { return this.set_blurX (v); }}, "blurY" : { get : function () { return this.get_blurY (); }, set : function (v) { return this.set_blurY (v); }}, "quality" : { get : function () { return this.get_quality (); }, set : function (v) { return this.set_quality (v); }}});
// Statics
// Export
exports.default = BlurFilter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 190 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.filters.ColorMatrixFilter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_filters_BitmapFilter() {return __webpack_require__(78);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function Std() {return __webpack_require__(4);}
function lime_math_color__$RGBA_RGBA_$Impl_$() {return __webpack_require__(151);}
// Constructor
var ColorMatrixFilter = function(matrix) {
	(openfl_filters_BitmapFilter().default).call(this);
	this.set_matrix(matrix);
	this.__numShaderPasses = 0;
	this.__needSecondBitmapData = false;
}
// Meta
ColorMatrixFilter.__name__ = ["openfl","filters","ColorMatrixFilter"];
ColorMatrixFilter.__super__ = (openfl_filters_BitmapFilter().default);
ColorMatrixFilter.prototype = $extend((openfl_filters_BitmapFilter().default).prototype, {
	clone: function() {
		return new ColorMatrixFilter(this.__matrix);
	},
	__applyFilter: function(destBitmapData,sourceBitmapData,sourceRect,destPoint) {
		var sourceImage = sourceBitmapData.image;
		var image = destBitmapData.image;
		(lime_graphics_utils_ImageCanvasUtil().default).convertToData(sourceImage);
		(lime_graphics_utils_ImageCanvasUtil().default).convertToData(image);
		var sourceData = sourceImage.get_data();
		var destData = image.get_data();
		var offsetX = (Std().default)["int"](destPoint.x - sourceRect.x);
		var offsetY = (Std().default)["int"](destPoint.y - sourceRect.y);
		var sourceStride = sourceBitmapData.width * 4;
		var destStride = destBitmapData.width * 4;
		var sourceFormat = sourceImage.buffer.format;
		var destFormat = image.buffer.format;
		var sourcePremultiplied = sourceImage.buffer.premultiplied;
		var destPremultiplied = image.buffer.premultiplied;
		var sourcePixel;
		var destPixel = 0;
		var sourceOffset;
		var destOffset;
		var _g1 = (Std().default)["int"](sourceRect.y);
		var _g = (Std().default)["int"](sourceRect.height);
		while(_g1 < _g) {
			var row = _g1++;
			var _g3 = (Std().default)["int"](sourceRect.x);
			var _g2 = (Std().default)["int"](sourceRect.width);
			while(_g3 < _g2) {
				var column = _g3++;
				sourceOffset = row * sourceStride + column * 4;
				destOffset = (row + offsetX) * destStride + (column + offsetY) * 4;
				switch(sourceFormat) {
				case 0:
					sourcePixel = (sourceData[sourceOffset] & 255) << 24 | (sourceData[sourceOffset + 1] & 255) << 16 | (sourceData[sourceOffset + 2] & 255) << 8 | sourceData[sourceOffset + 3] & 255;
					break;
				case 1:
					sourcePixel = (sourceData[sourceOffset + 1] & 255) << 24 | (sourceData[sourceOffset + 2] & 255) << 16 | (sourceData[sourceOffset + 3] & 255) << 8 | sourceData[sourceOffset] & 255;
					break;
				case 2:
					sourcePixel = (sourceData[sourceOffset + 2] & 255) << 24 | (sourceData[sourceOffset + 1] & 255) << 16 | (sourceData[sourceOffset] & 255) << 8 | sourceData[sourceOffset + 3] & 255;
					break;
				}
				if(sourcePremultiplied) {
					if((sourcePixel & 255) != 0 && (sourcePixel & 255) != 255) {
						(lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult = 255.0 / (sourcePixel & 255);
						sourcePixel = ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 24 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 16 | ((lime_math_color__$RGBA_RGBA_$Impl_$().default).__clamp[Math.round((sourcePixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).unmult)] & 255) << 8 | sourcePixel & 255 & 255;
					}
				}
				if((sourcePixel & 255) == 0) {
					destPixel = 0;
				} else {
					var value = (Std().default)["int"](Math.max(0,Math.min(this.__matrix[0] * (sourcePixel >>> 24 & 255) + this.__matrix[1] * (sourcePixel >>> 16 & 255) + this.__matrix[2] * (sourcePixel >>> 8 & 255) + this.__matrix[3] * (sourcePixel & 255) + this.__matrix[4],255)));
					destPixel = (value & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
					var value1 = (Std().default)["int"](Math.max(0,Math.min(this.__matrix[5] * (sourcePixel >>> 24 & 255) + this.__matrix[6] * (sourcePixel >>> 16 & 255) + this.__matrix[7] * (sourcePixel >>> 8 & 255) + this.__matrix[8] * (sourcePixel & 255) + this.__matrix[9],255)));
					destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (value1 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | destPixel & 255 & 255;
					var value2 = (Std().default)["int"](Math.max(0,Math.min(this.__matrix[10] * (sourcePixel >>> 24 & 255) + this.__matrix[11] * (sourcePixel >>> 16 & 255) + this.__matrix[12] * (sourcePixel >>> 8 & 255) + this.__matrix[13] * (sourcePixel & 255) + this.__matrix[14],255)));
					destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (value2 & 255) << 8 | destPixel & 255 & 255;
					var value3 = (Std().default)["int"](Math.max(0,Math.min(this.__matrix[15] * (sourcePixel >>> 24 & 255) + this.__matrix[16] * (sourcePixel >>> 16 & 255) + this.__matrix[17] * (sourcePixel >>> 8 & 255) + this.__matrix[18] * (sourcePixel & 255) + this.__matrix[19],255)));
					destPixel = (destPixel >>> 24 & 255 & 255) << 24 | (destPixel >>> 16 & 255 & 255) << 16 | (destPixel >>> 8 & 255 & 255) << 8 | value3 & 255;
				}
				if(destPremultiplied) {
					if((destPixel & 255) == 0) {
						if(destPixel != 0) {
							destPixel = 0;
						}
					} else if((destPixel & 255) != 255) {
						(lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 = (lime_math_color__$RGBA_RGBA_$Impl_$().default).__alpha16[destPixel & 255];
						destPixel = ((destPixel >>> 24 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 24 | ((destPixel >>> 16 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 16 | ((destPixel >>> 8 & 255) * (lime_math_color__$RGBA_RGBA_$Impl_$().default).a16 >> 16 & 255) << 8 | destPixel & 255 & 255;
					}
				}
				switch(destFormat) {
				case 0:
					destData[destOffset] = destPixel >>> 24 & 255;
					destData[destOffset + 1] = destPixel >>> 16 & 255;
					destData[destOffset + 2] = destPixel >>> 8 & 255;
					destData[destOffset + 3] = destPixel & 255;
					break;
				case 1:
					destData[destOffset] = destPixel & 255;
					destData[destOffset + 1] = destPixel >>> 24 & 255;
					destData[destOffset + 2] = destPixel >>> 16 & 255;
					destData[destOffset + 3] = destPixel >>> 8 & 255;
					break;
				case 2:
					destData[destOffset] = destPixel >>> 8 & 255;
					destData[destOffset + 1] = destPixel >>> 16 & 255;
					destData[destOffset + 2] = destPixel >>> 24 & 255;
					destData[destOffset + 3] = destPixel & 255;
					break;
				}
			}
		}
		destBitmapData.image.dirty = true;
		return destBitmapData;
	},
	__initShader: function(renderSession,pass) {
		return null;
	},
	get_matrix: function() {
		return this.__matrix;
	},
	set_matrix: function(value) {
		if(value == null) {
			value = [1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0];
		}
		return this.__matrix = value;
	}
});
ColorMatrixFilter.prototype.__class__ = $hxClasses["openfl.filters.ColorMatrixFilter"] = ColorMatrixFilter;
// Init
Object.defineProperties(ColorMatrixFilter.prototype,{ "matrix" : { get : function () { return this.get_matrix (); }, set : function (v) { return this.set_matrix (v); }}});
// Statics
// Export
exports.default = ColorMatrixFilter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 191 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.filters.DropShadowFilter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_filters_BitmapFilter() {return __webpack_require__(78);}
function openfl_geom_ColorTransform() {return __webpack_require__(40);}
function lime_graphics_utils_ImageDataUtil() {return __webpack_require__(65);}
function Std() {return __webpack_require__(4);}
// Constructor
var DropShadowFilter = function(distance,angle,color,alpha,blurX,blurY,strength,quality,inner,knockout,hideObject) {
	if(hideObject == null) {
		hideObject = false;
	}
	if(knockout == null) {
		knockout = false;
	}
	if(inner == null) {
		inner = false;
	}
	if(quality == null) {
		quality = 1;
	}
	if(strength == null) {
		strength = 1;
	}
	if(blurY == null) {
		blurY = 4;
	}
	if(blurX == null) {
		blurX = 4;
	}
	if(alpha == null) {
		alpha = 1;
	}
	if(color == null) {
		color = 0;
	}
	if(angle == null) {
		angle = 45;
	}
	if(distance == null) {
		distance = 4;
	}
	(openfl_filters_BitmapFilter().default).call(this);
	this.__offsetX = 0;
	this.__offsetY = 0;
	this.__distance = distance;
	this.__angle = angle;
	this.__color = color;
	this.__alpha = alpha;
	this.__blurX = blurX;
	this.__blurY = blurY;
	this.__strength = strength;
	this.__quality = quality;
	this.__inner = inner;
	this.__knockout = knockout;
	this.__hideObject = hideObject;
	this.__updateSize();
	this.__needSecondBitmapData = true;
	this.__preserveObject = !this.__hideObject;
	this.__renderDirty = true;
}
// Meta
DropShadowFilter.__name__ = ["openfl","filters","DropShadowFilter"];
DropShadowFilter.__super__ = (openfl_filters_BitmapFilter().default);
DropShadowFilter.prototype = $extend((openfl_filters_BitmapFilter().default).prototype, {
	clone: function() {
		return new DropShadowFilter(this.__distance,this.__angle,this.__color,this.__alpha,this.__blurX,this.__blurY,this.__strength,this.__quality,this.__inner,this.__knockout,this.__hideObject);
	},
	__applyFilter: function(bitmapData,sourceBitmapData,sourceRect,destPoint) {
		var a = this.__color >> 24 & 255;
		var r = this.__color >> 16 & 255;
		var g = this.__color >> 8 & 255;
		var b = this.__color & 255;
		sourceBitmapData.colorTransform(sourceBitmapData.rect,new (openfl_geom_ColorTransform().default)(0,0,0,1,r,g,b,a));
		destPoint.x += this.__offsetX;
		destPoint.y += this.__offsetY;
		var finalImage = (lime_graphics_utils_ImageDataUtil().default).gaussianBlur(bitmapData.image,sourceBitmapData.image,sourceRect.__toLimeRectangle(),destPoint.__toLimeVector2(),this.__blurX,this.__blurY,this.__quality,this.__strength);
		if(finalImage == bitmapData.image) {
			return bitmapData;
		}
		return sourceBitmapData;
	},
	__updateSize: function() {
		this.__offsetX = (Std().default)["int"](this.__distance * Math.cos(this.__angle * Math.PI / 180));
		this.__offsetY = (Std().default)["int"](this.__distance * Math.sin(this.__angle * Math.PI / 180));
		this.__topExtension = Math.ceil((this.__offsetY < 0 ? -this.__offsetY : 0) + this.__blurY);
		this.__bottomExtension = Math.ceil((this.__offsetY > 0 ? this.__offsetY : 0) + this.__blurY);
		this.__leftExtension = Math.ceil((this.__offsetX < 0 ? -this.__offsetX : 0) + this.__blurX);
		this.__rightExtension = Math.ceil((this.__offsetX > 0 ? this.__offsetX : 0) + this.__blurX);
	},
	get_alpha: function() {
		return this.__alpha;
	},
	set_alpha: function(value) {
		if(value != this.__alpha) {
			this.__renderDirty = true;
		}
		return this.__alpha = value;
	},
	get_angle: function() {
		return this.__angle;
	},
	set_angle: function(value) {
		if(value != this.__angle) {
			this.__angle = value;
			this.__renderDirty = true;
			this.__updateSize();
		}
		return value;
	},
	get_blurX: function() {
		return this.__blurX;
	},
	set_blurX: function(value) {
		if(value != this.__blurX) {
			this.__blurX = value;
			this.__renderDirty = true;
			this.__updateSize();
		}
		return value;
	},
	get_blurY: function() {
		return this.__blurY;
	},
	set_blurY: function(value) {
		if(value != this.__blurY) {
			this.__blurY = value;
			this.__renderDirty = true;
			this.__updateSize();
		}
		return value;
	},
	get_color: function() {
		return this.__color;
	},
	set_color: function(value) {
		if(value != this.__color) {
			this.__renderDirty = true;
		}
		return this.__color = value;
	},
	get_distance: function() {
		return this.__distance;
	},
	set_distance: function(value) {
		if(value != this.__distance) {
			this.__distance = value;
			this.__renderDirty = true;
			this.__updateSize();
		}
		return value;
	},
	get_hideObject: function() {
		return this.__hideObject;
	},
	set_hideObject: function(value) {
		if(value != this.__hideObject) {
			this.__renderDirty = true;
			this.__preserveObject = !value;
		}
		return this.__hideObject = value;
	},
	get_inner: function() {
		return this.__inner;
	},
	set_inner: function(value) {
		if(value != this.__inner) {
			this.__renderDirty = true;
		}
		return this.__inner = value;
	},
	get_knockout: function() {
		return this.__knockout;
	},
	set_knockout: function(value) {
		if(value != this.__knockout) {
			this.__renderDirty = true;
		}
		return this.__knockout = value;
	},
	get_quality: function() {
		return this.__quality;
	},
	set_quality: function(value) {
		if(value != this.__quality) {
			this.__renderDirty = true;
		}
		return this.__quality = value;
	},
	get_strength: function() {
		return this.__strength;
	},
	set_strength: function(value) {
		if(value != this.__strength) {
			this.__renderDirty = true;
		}
		return this.__strength = value;
	}
});
DropShadowFilter.prototype.__class__ = $hxClasses["openfl.filters.DropShadowFilter"] = DropShadowFilter;
// Init
Object.defineProperties(DropShadowFilter.prototype,{ "alpha" : { get : function () { return this.get_alpha (); }, set : function (v) { return this.set_alpha (v); }}, "angle" : { get : function () { return this.get_angle (); }, set : function (v) { return this.set_angle (v); }}, "blurX" : { get : function () { return this.get_blurX (); }, set : function (v) { return this.set_blurX (v); }}, "blurY" : { get : function () { return this.get_blurY (); }, set : function (v) { return this.set_blurY (v); }}, "color" : { get : function () { return this.get_color (); }, set : function (v) { return this.set_color (v); }}, "distance" : { get : function () { return this.get_distance (); }, set : function (v) { return this.set_distance (v); }}, "hideObject" : { get : function () { return this.get_hideObject (); }, set : function (v) { return this.set_hideObject (v); }}, "inner" : { get : function () { return this.get_inner (); }, set : function (v) { return this.set_inner (v); }}, "knockout" : { get : function () { return this.get_knockout (); }, set : function (v) { return this.set_knockout (v); }}, "quality" : { get : function () { return this.get_quality (); }, set : function (v) { return this.set_quality (v); }}, "strength" : { get : function () { return this.get_strength (); }, set : function (v) { return this.set_strength (v); }}});
// Statics
// Export
exports.default = DropShadowFilter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 192 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.net._HTTPRequest_String
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function lime_net__$HTTPRequest_AbstractHTTPRequest() {return __webpack_require__(176);}
function lime_app_Promise() {return __webpack_require__(39);}
// Constructor
var _HTTPRequest_String = function(uri) {
	(lime_net__$HTTPRequest_AbstractHTTPRequest().default).call(this,uri);
}
// Meta
_HTTPRequest_String.__name__ = ["lime","net","_HTTPRequest_String"];
_HTTPRequest_String.__super__ = (lime_net__$HTTPRequest_AbstractHTTPRequest().default);
_HTTPRequest_String.prototype = $extend((lime_net__$HTTPRequest_AbstractHTTPRequest().default).prototype, {
	load: function(uri) {
		var _gthis = this;
		if(uri != null) {
			this.uri = uri;
		}
		var promise = new (lime_app_Promise().default)();
		var future = this.backend.loadText(this.uri);
		future.onProgress($bind(promise,promise.progress));
		future.onError($bind(promise,promise.error));
		future.onComplete(function(text) {
			_gthis.responseData = text;
			promise.complete(_gthis.responseData);
		});
		return promise.future;
	}
});
_HTTPRequest_String.prototype.__class__ = $hxClasses["lime.net._HTTPRequest_String"] = _HTTPRequest_String;
// Init
// Statics
// Export
exports.default = _HTTPRequest_String;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 193 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.HTTPStatusEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var HTTPStatusEvent = function(type,bubbles,cancelable,status,redirected) {
	if(redirected == null) {
		redirected = false;
	}
	if(status == null) {
		status = 0;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	this.status = status;
	this.redirected = redirected;
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
}
// Meta
HTTPStatusEvent.__name__ = ["openfl","events","HTTPStatusEvent"];
HTTPStatusEvent.__super__ = (openfl_events_Event().default);
HTTPStatusEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new HTTPStatusEvent(this.type,this.bubbles,null,this.status,this.redirected);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("HTTPStatusEvent",["type","bubbles","cancelable","status","redirected"]);
	}
});
HTTPStatusEvent.prototype.__class__ = $hxClasses["openfl.events.HTTPStatusEvent"] = HTTPStatusEvent;
// Init
// Statics
HTTPStatusEvent.HTTP_RESPONSE_STATUS = "httpResponseStatus"
HTTPStatusEvent.HTTP_STATUS = "httpStatus"
// Export
exports.default = HTTPStatusEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 194 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.URLRequestHeader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var URLRequestHeader = function(name,value) {
	if(value == null) {
		value = "";
	}
	if(name == null) {
		name = "";
	}
	this.name = name;
	this.value = value;
}
// Meta
URLRequestHeader.__name__ = ["openfl","net","URLRequestHeader"];
URLRequestHeader.prototype = {
	
};
URLRequestHeader.prototype.__class__ = $hxClasses["openfl.net.URLRequestHeader"] = URLRequestHeader;
// Init
// Statics
// Export
exports.default = URLRequestHeader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 195 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.SecurityErrorEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_ErrorEvent() {return __webpack_require__(60);}
// Constructor
var SecurityErrorEvent = function(type,bubbles,cancelable,text,id) {
	if(id == null) {
		id = 0;
	}
	if(text == null) {
		text = "";
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_ErrorEvent().default).call(this,type,bubbles,cancelable,text,id);
}
// Meta
SecurityErrorEvent.__name__ = ["openfl","events","SecurityErrorEvent"];
SecurityErrorEvent.__super__ = (openfl_events_ErrorEvent().default);
SecurityErrorEvent.prototype = $extend((openfl_events_ErrorEvent().default).prototype, {
	clone: function() {
		var event = new SecurityErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.errorID);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("SecurityErrorEvent",["type","bubbles","cancelable","text","errorID"]);
	}
});
SecurityErrorEvent.prototype.__class__ = $hxClasses["openfl.events.SecurityErrorEvent"] = SecurityErrorEvent;
// Init
// Statics
SecurityErrorEvent.SECURITY_ERROR = "securityError"
// Export
exports.default = SecurityErrorEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 196 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.URLRequest
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_net_URLRequestDefaults() {return __webpack_require__(197);}
// Constructor
var URLRequest = function(url) {
	if(url != null) {
		this.url = url;
	}
	this.contentType = null;
	this.followRedirects = (openfl_net_URLRequestDefaults().default).followRedirects;
	this.idleTimeout = (openfl_net_URLRequestDefaults().default).idleTimeout > 0 ? (openfl_net_URLRequestDefaults().default).idleTimeout : 30000;
	this.manageCookies = (openfl_net_URLRequestDefaults().default).manageCookies;
	this.method = "GET";
	this.requestHeaders = [];
	this.userAgent = (openfl_net_URLRequestDefaults().default).userAgent;
}
// Meta
URLRequest.__name__ = ["openfl","net","URLRequest"];
URLRequest.prototype = {
	
};
URLRequest.prototype.__class__ = $hxClasses["openfl.net.URLRequest"] = URLRequest;
// Init
// Statics
// Export
exports.default = URLRequest;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 197 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.URLRequestDefaults
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var URLRequestDefaults = function(){}
// Meta
URLRequestDefaults.__name__ = ["openfl","net","URLRequestDefaults"];
URLRequestDefaults.prototype = {
	
};
URLRequestDefaults.prototype.__class__ = $hxClasses["openfl.net.URLRequestDefaults"] = URLRequestDefaults;
// Init
// Statics
URLRequestDefaults.followRedirects = true
URLRequestDefaults.idleTimeout = 0
URLRequestDefaults.manageCookies = false
// Export
exports.default = URLRequestDefaults;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 198 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.Serializer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function StringTools() {return __webpack_require__(12);}
function Reflect() {return __webpack_require__(5);}
function Type() {return __webpack_require__(10);}
function Std() {return __webpack_require__(4);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function List() {return __webpack_require__(48);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
function haxe_ds_ObjectMap() {return __webpack_require__(57);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function HxOverrides() {return __webpack_require__(7);}
function StringBuf() {return __webpack_require__(31);}
// Constructor
var Serializer = function() {
	this.buf = new (StringBuf().default)();
	this.cache = [];
	this.useCache = Serializer.USE_CACHE;
	this.useEnumIndex = Serializer.USE_ENUM_INDEX;
	this.shash = new (haxe_ds_StringMap().default)();
	this.scount = 0;
}
// Meta
Serializer.__name__ = ["haxe","Serializer"];
Serializer.prototype = {
	toString: function() {
		return this.buf.toString();
	},
	serializeString: function(s) {
		var x = this.shash.get(s);
		if(x != null) {
			this.buf.add("R");
			this.buf.add(x);
			return;
		}
		this.shash.set(s,this.scount++);
		this.buf.add("y");
		s = (StringTools().default).urlEncode(s);
		this.buf.add(s.length);
		this.buf.add(":");
		this.buf.add(s);
	},
	serializeRef: function(v) {
		var vt = typeof(v);
		var _g1 = 0;
		var _g = this.cache.length;
		while(_g1 < _g) {
			var i = _g1++;
			var ci = this.cache[i];
			if(typeof(ci) == vt && ci == v) {
				this.buf.add("r");
				this.buf.add(i);
				return true;
			}
		}
		this.cache.push(v);
		return false;
	},
	serializeFields: function(v) {
		var _g = 0;
		var _g1 = (Reflect().default).fields(v);
		while(_g < _g1.length) {
			var f = _g1[_g];
			++_g;
			this.serializeString(f);
			this.serialize((Reflect().default).field(v,f));
		}
		this.buf.add("g");
	},
	serialize: function(v) {
		var _g = (Type().default)["typeof"](v);
		switch((Type().default).enumIndex(_g)) {
		case 0:
			this.buf.add("n");
			break;
		case 1:
			var v1 = v;
			if(v1 == 0) {
				this.buf.add("z");
				return;
			}
			this.buf.add("i");
			this.buf.add(v1);
			break;
		case 2:
			var v2 = v;
			if(isNaN(v2)) {
				this.buf.add("k");
			} else if(!isFinite(v2)) {
				this.buf.add(v2 < 0 ? "m" : "p");
			} else {
				this.buf.add("d");
				this.buf.add(v2);
			}
			break;
		case 3:
			this.buf.add(v ? "t" : "f");
			break;
		case 4:
			if((Std().default)["is"](v,$hxClasses["Class"])) {
				var className = (Type().default).getClassName(v);
				this.buf.add("A");
				this.serializeString(className);
			} else if((Std().default)["is"](v,$hxClasses["Enum"])) {
				this.buf.add("B");
				this.serializeString((Type().default).getEnumName(v));
			} else {
				if(this.useCache && this.serializeRef(v)) {
					return;
				}
				this.buf.add("o");
				this.serializeFields(v);
			}
			break;
		case 5:
			throw new (js__$Boot_HaxeError().default)("Cannot serialize function");
			break;
		case 6:
			var c = _g[2];
			if(c == String) {
				this.serializeString(v);
				return;
			}
			if(this.useCache && this.serializeRef(v)) {
				return;
			}
			switch(c) {
			case Array:
				var ucount = 0;
				this.buf.add("a");
				var l = v["length"];
				var _g1 = 0;
				var _g2 = l;
				while(_g1 < _g2) {
					var i = _g1++;
					if(v[i] == null) {
						++ucount;
					} else {
						if(ucount > 0) {
							if(ucount == 1) {
								this.buf.add("n");
							} else {
								this.buf.add("u");
								this.buf.add(ucount);
							}
							ucount = 0;
						}
						this.serialize(v[i]);
					}
				}
				if(ucount > 0) {
					if(ucount == 1) {
						this.buf.add("n");
					} else {
						this.buf.add("u");
						this.buf.add(ucount);
					}
				}
				this.buf.add("h");
				break;
			case Date:
				var d = v;
				this.buf.add("v");
				this.buf.add(d.getTime());
				break;
			case (List().default):
				this.buf.add("l");
				var v3 = v;
				var i1 = v3.iterator();
				while(i1.hasNext()) {
					var i2 = i1.next();
					this.serialize(i2);
				}
				this.buf.add("h");
				break;
			case (haxe_ds_IntMap().default):
				this.buf.add("q");
				var v4 = v;
				var k = v4.keys();
				while(k.hasNext()) {
					var k1 = k.next();
					this.buf.add(":");
					this.buf.add(k1);
					this.serialize(v4.get(k1));
				}
				this.buf.add("h");
				break;
			case (haxe_ds_ObjectMap().default):
				this.buf.add("M");
				var v5 = v;
				var k2 = v5.keys();
				while(k2.hasNext()) {
					var k3 = k2.next();
					var id = (Reflect().default).field(k3,"__id__");
					(Reflect().default).deleteField(k3,"__id__");
					this.serialize(k3);
					(Reflect().default).setField(k3,"__id__",id);
					this.serialize(v5.get(k3));
				}
				this.buf.add("h");
				break;
			case (haxe_ds_StringMap().default):
				this.buf.add("b");
				var v6 = v;
				var k4 = v6.keys();
				while(k4.hasNext()) {
					var k5 = k4.next();
					this.serializeString(k5);
					this.serialize(v6.get(k5));
				}
				this.buf.add("h");
				break;
			case (haxe_io_Bytes().default):
				var v7 = v;
				this.buf.add("s");
				this.buf.add(Math.ceil(v7.get_length() * 8 / 6));
				this.buf.add(":");
				var i3 = 0;
				var max = v7.get_length() - 2;
				var b64 = Serializer.BASE64_CODES;
				if(b64 == null) {
					var length = Serializer.BASE64.length;
					var this1 = new Array(length);
					b64 = this1;
					var _g11 = 0;
					var _g3 = Serializer.BASE64.length;
					while(_g11 < _g3) {
						var i4 = _g11++;
						b64[i4] = (HxOverrides().default).cca(Serializer.BASE64,i4);
					}
					Serializer.BASE64_CODES = b64;
				}
				while(i3 < max) {
					var b1 = v7.get(i3++);
					var b2 = v7.get(i3++);
					var b3 = v7.get(i3++);
					this.buf.addChar(b64[b1 >> 2]);
					this.buf.addChar(b64[(b1 << 4 | b2 >> 4) & 63]);
					this.buf.addChar(b64[(b2 << 2 | b3 >> 6) & 63]);
					this.buf.addChar(b64[b3 & 63]);
				}
				if(i3 == max) {
					var b11 = v7.get(i3++);
					var b21 = v7.get(i3++);
					this.buf.addChar(b64[b11 >> 2]);
					this.buf.addChar(b64[(b11 << 4 | b21 >> 4) & 63]);
					this.buf.addChar(b64[b21 << 2 & 63]);
				} else if(i3 == max + 1) {
					var b12 = v7.get(i3++);
					this.buf.addChar(b64[b12 >> 2]);
					this.buf.addChar(b64[b12 << 4 & 63]);
				}
				break;
			default:
				if(this.useCache) {
					this.cache.pop();
				}
				if(v.hxSerialize != null) {
					this.buf.add("C");
					this.serializeString((Type().default).getClassName(c));
					if(this.useCache) {
						this.cache.push(v);
					}
					v.hxSerialize(this);
					this.buf.add("g");
				} else {
					this.buf.add("c");
					this.serializeString((Type().default).getClassName(c));
					if(this.useCache) {
						this.cache.push(v);
					}
					this.serializeFields(v);
				}
			}
			break;
		case 7:
			var e = _g[2];
			if(this.useCache) {
				if(this.serializeRef(v)) {
					return;
				}
				this.cache.pop();
			}
			this.buf.add(this.useEnumIndex ? "j" : "w");
			this.serializeString((Type().default).getEnumName(e));
			if(this.useEnumIndex) {
				this.buf.add(":");
				this.buf.add(v[1]);
			} else {
				this.serializeString(v[0]);
			}
			this.buf.add(":");
			var l1 = v["length"];
			this.buf.add(l1 - 2);
			var _g12 = 2;
			var _g4 = l1;
			while(_g12 < _g4) {
				var i5 = _g12++;
				this.serialize(v[i5]);
			}
			if(this.useCache) {
				this.cache.push(v);
			}
			break;
		default:
			throw new (js__$Boot_HaxeError().default)("Cannot serialize " + (Std().default).string(v));
		}
	}
};
Serializer.prototype.__class__ = $hxClasses["haxe.Serializer"] = Serializer;
// Init
// Statics
Serializer.run = function(v) {
	var s = new Serializer();
	s.serialize(v);
	return s.toString();
}
Serializer.USE_CACHE = false
Serializer.USE_ENUM_INDEX = false
Serializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"
Serializer.BASE64_CODES = null
// Export
exports.default = Serializer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 199 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.Unserializer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe__$Unserializer_NullResolver() {return __webpack_require__(339);}
function StringTools() {return __webpack_require__(12);}
function Std() {return __webpack_require__(4);}
function HxOverrides() {return __webpack_require__(7);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function Reflect() {return __webpack_require__(5);}
function Type() {return __webpack_require__(10);}
function haxe_ds_ObjectMap() {return __webpack_require__(57);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function List() {return __webpack_require__(48);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function haxe__$Unserializer_DefaultResolver() {return __webpack_require__(340);}
// Constructor
var Unserializer = function(buf) {
	this.buf = buf;
	this.length = buf.length;
	this.pos = 0;
	this.scache = [];
	this.cache = [];
	var r = Unserializer.DEFAULT_RESOLVER;
	if(r == null) {
		r = new (haxe__$Unserializer_DefaultResolver().default)();
		Unserializer.DEFAULT_RESOLVER = r;
	}
	this.resolver = r;
}
// Meta
Unserializer.__name__ = ["haxe","Unserializer"];
Unserializer.prototype = {
	setResolver: function(r) {
		if(r == null) {
			this.resolver = (haxe__$Unserializer_NullResolver().default).get_instance();
		} else {
			this.resolver = r;
		}
	},
	get: function(p) {
		return (StringTools().default).fastCodeAt(this.buf,p);
	},
	readDigits: function() {
		var k = 0;
		var s = false;
		var fpos = this.pos;
		while(true) {
			var c = this.get(this.pos);
			if((StringTools().default).isEof(c)) {
				break;
			}
			if(c == 45) {
				if(this.pos != fpos) {
					break;
				}
				s = true;
				this.pos++;
				continue;
			}
			if(c < 48 || c > 57) {
				break;
			}
			k = k * 10 + (c - 48);
			this.pos++;
		}
		if(s) {
			k *= -1;
		}
		return k;
	},
	readFloat: function() {
		var p1 = this.pos;
		while(true) {
			var c = this.get(this.pos);
			if((StringTools().default).isEof(c)) {
				break;
			}
			if(c >= 43 && c < 58 || c == 101 || c == 69) {
				this.pos++;
			} else {
				break;
			}
		}
		return (Std().default).parseFloat((HxOverrides().default).substr(this.buf,p1,this.pos - p1));
	},
	unserializeObject: function(o) {
		while(true) {
			if(this.pos >= this.length) {
				throw new (js__$Boot_HaxeError().default)("Invalid object");
			}
			if(this.get(this.pos) == 103) {
				break;
			}
			var k = this.unserialize();
			if(typeof(k) != "string") {
				throw new (js__$Boot_HaxeError().default)("Invalid object key");
			}
			var v = this.unserialize();
			(Reflect().default).setField(o,k,v);
		}
		this.pos++;
	},
	unserializeEnum: function(edecl,tag) {
		if(this.get(this.pos++) != 58) {
			throw new (js__$Boot_HaxeError().default)("Invalid enum format");
		}
		var nargs = this.readDigits();
		if(nargs == 0) {
			return (Type().default).createEnum(edecl,tag);
		}
		var args = [];
		while(nargs-- > 0) args.push(this.unserialize());
		return (Type().default).createEnum(edecl,tag,args);
	},
	unserialize: function() {
		var _g = this.get(this.pos++);
		switch(_g) {
		case 65:
			var name = this.unserialize();
			var cl = this.resolver.resolveClass(name);
			if(cl == null) {
				throw new (js__$Boot_HaxeError().default)("Class not found " + name);
			}
			return cl;
		case 66:
			var name1 = this.unserialize();
			var e = this.resolver.resolveEnum(name1);
			if(e == null) {
				throw new (js__$Boot_HaxeError().default)("Enum not found " + name1);
			}
			return e;
		case 67:
			var name2 = this.unserialize();
			var cl1 = this.resolver.resolveClass(name2);
			if(cl1 == null) {
				throw new (js__$Boot_HaxeError().default)("Class not found " + name2);
			}
			var o = (Type().default).createEmptyInstance(cl1);
			this.cache.push(o);
			o.hxUnserialize(this);
			if(this.get(this.pos++) != 103) {
				throw new (js__$Boot_HaxeError().default)("Invalid custom data");
			}
			return o;
		case 77:
			var h = new (haxe_ds_ObjectMap().default)();
			this.cache.push(h);
			var buf = this.buf;
			while(this.get(this.pos) != 104) {
				var s = this.unserialize();
				h.set(s,this.unserialize());
			}
			this.pos++;
			return h;
		case 82:
			var n = this.readDigits();
			if(n < 0 || n >= this.scache.length) {
				throw new (js__$Boot_HaxeError().default)("Invalid string reference");
			}
			return this.scache[n];
		case 97:
			var buf1 = this.buf;
			var a = [];
			this.cache.push(a);
			while(true) {
				var c = this.get(this.pos);
				if(c == 104) {
					this.pos++;
					break;
				}
				if(c == 117) {
					this.pos++;
					var n1 = this.readDigits();
					a[a.length + n1 - 1] = null;
				} else {
					a.push(this.unserialize());
				}
			}
			return a;
		case 98:
			var h1 = new (haxe_ds_StringMap().default)();
			this.cache.push(h1);
			var buf2 = this.buf;
			while(this.get(this.pos) != 104) {
				var s1 = this.unserialize();
				h1.set(s1,this.unserialize());
			}
			this.pos++;
			return h1;
		case 99:
			var name3 = this.unserialize();
			var cl2 = this.resolver.resolveClass(name3);
			if(cl2 == null) {
				throw new (js__$Boot_HaxeError().default)("Class not found " + name3);
			}
			var o1 = (Type().default).createEmptyInstance(cl2);
			this.cache.push(o1);
			this.unserializeObject(o1);
			return o1;
		case 100:
			return this.readFloat();
		case 102:
			return false;
		case 105:
			return this.readDigits();
		case 106:
			var name4 = this.unserialize();
			var edecl = this.resolver.resolveEnum(name4);
			if(edecl == null) {
				throw new (js__$Boot_HaxeError().default)("Enum not found " + name4);
			}
			this.pos++;
			var index = this.readDigits();
			var tag = (Type().default).getEnumConstructs(edecl)[index];
			if(tag == null) {
				throw new (js__$Boot_HaxeError().default)("Unknown enum index " + name4 + "@" + index);
			}
			var e1 = this.unserializeEnum(edecl,tag);
			this.cache.push(e1);
			return e1;
		case 107:
			return NaN;
		case 108:
			var l = new (List().default)();
			this.cache.push(l);
			var buf3 = this.buf;
			while(this.get(this.pos) != 104) l.add(this.unserialize());
			this.pos++;
			return l;
		case 109:
			return -Infinity;
		case 110:
			return null;
		case 111:
			var o2 = { };
			this.cache.push(o2);
			this.unserializeObject(o2);
			return o2;
		case 112:
			return Infinity;
		case 113:
			var h2 = new (haxe_ds_IntMap().default)();
			this.cache.push(h2);
			var buf4 = this.buf;
			var c1 = this.get(this.pos++);
			while(c1 == 58) {
				var i = this.readDigits();
				h2.set(i,this.unserialize());
				c1 = this.get(this.pos++);
			}
			if(c1 != 104) {
				throw new (js__$Boot_HaxeError().default)("Invalid IntMap format");
			}
			return h2;
		case 114:
			var n2 = this.readDigits();
			if(n2 < 0 || n2 >= this.cache.length) {
				throw new (js__$Boot_HaxeError().default)("Invalid reference");
			}
			return this.cache[n2];
		case 115:
			var len = this.readDigits();
			var buf5 = this.buf;
			if(this.get(this.pos++) != 58 || this.length - this.pos < len) {
				throw new (js__$Boot_HaxeError().default)("Invalid bytes length");
			}
			var codes = Unserializer.CODES;
			if(codes == null) {
				codes = Unserializer.initCodes();
				Unserializer.CODES = codes;
			}
			var i1 = this.pos;
			var rest = len & 3;
			var size = (len >> 2) * 3 + (rest >= 2 ? rest - 1 : 0);
			var max = i1 + (len - rest);
			var bytes = (haxe_io_Bytes().default).alloc(size);
			var bpos = 0;
			while(i1 < max) {
				var c11 = codes[(StringTools().default).fastCodeAt(buf5,i1++)];
				var c2 = codes[(StringTools().default).fastCodeAt(buf5,i1++)];
				bytes.set(bpos++,c11 << 2 | c2 >> 4);
				var c3 = codes[(StringTools().default).fastCodeAt(buf5,i1++)];
				bytes.set(bpos++,c2 << 4 | c3 >> 2);
				var c4 = codes[(StringTools().default).fastCodeAt(buf5,i1++)];
				bytes.set(bpos++,c3 << 6 | c4);
			}
			if(rest >= 2) {
				var c12 = codes[(StringTools().default).fastCodeAt(buf5,i1++)];
				var c21 = codes[(StringTools().default).fastCodeAt(buf5,i1++)];
				bytes.set(bpos++,c12 << 2 | c21 >> 4);
				if(rest == 3) {
					var c31 = codes[(StringTools().default).fastCodeAt(buf5,i1++)];
					bytes.set(bpos++,c21 << 4 | c31 >> 2);
				}
			}
			this.pos += len;
			this.cache.push(bytes);
			return bytes;
		case 116:
			return true;
		case 118:
			var d;
			if(this.get(this.pos) >= 48 && this.get(this.pos) <= 57 && this.get(this.pos + 1) >= 48 && this.get(this.pos + 1) <= 57 && this.get(this.pos + 2) >= 48 && this.get(this.pos + 2) <= 57 && this.get(this.pos + 3) >= 48 && this.get(this.pos + 3) <= 57 && this.get(this.pos + 4) == 45) {
				d = (HxOverrides().default).strDate((HxOverrides().default).substr(this.buf,this.pos,19));
				this.pos += 19;
			} else {
				var t = this.readFloat();
				d = new Date(t);
			}
			this.cache.push(d);
			return d;
		case 119:
			var name5 = this.unserialize();
			var edecl1 = this.resolver.resolveEnum(name5);
			if(edecl1 == null) {
				throw new (js__$Boot_HaxeError().default)("Enum not found " + name5);
			}
			var e2 = this.unserializeEnum(edecl1,this.unserialize());
			this.cache.push(e2);
			return e2;
		case 120:
			throw (js__$Boot_HaxeError().default).wrap(this.unserialize());
			break;
		case 121:
			var len1 = this.readDigits();
			if(this.get(this.pos++) != 58 || this.length - this.pos < len1) {
				throw new (js__$Boot_HaxeError().default)("Invalid string length");
			}
			var s2 = (HxOverrides().default).substr(this.buf,this.pos,len1);
			this.pos += len1;
			s2 = (StringTools().default).urlDecode(s2);
			this.scache.push(s2);
			return s2;
		case 122:
			return 0;
		default:
		}
		this.pos--;
		throw new (js__$Boot_HaxeError().default)("Invalid char " + this.buf.charAt(this.pos) + " at position " + this.pos);
	}
};
Unserializer.prototype.__class__ = $hxClasses["haxe.Unserializer"] = Unserializer;
// Init
// Statics
Unserializer.initCodes = function() {
	var codes = [];
	var _g1 = 0;
	var _g = Unserializer.BASE64.length;
	while(_g1 < _g) {
		var i = _g1++;
		codes[(StringTools().default).fastCodeAt(Unserializer.BASE64,i)] = i;
	}
	return codes;
}
Unserializer.run = function(v) {
	return new Unserializer(v).unserialize();
}
Unserializer.DEFAULT_RESOLVER = new (haxe__$Unserializer_DefaultResolver().default)()
Unserializer.BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:"
Unserializer.CODES = null
// Export
exports.default = Unserializer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 200 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.ui._KeyModifier.KeyModifier_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var KeyModifier_Impl_ = function(){}
// Meta
KeyModifier_Impl_.__name__ = ["lime","ui","_KeyModifier","KeyModifier_Impl_"];
KeyModifier_Impl_.prototype = {
	
};
KeyModifier_Impl_.prototype.__class__ = $hxClasses["lime.ui._KeyModifier.KeyModifier_Impl_"] = KeyModifier_Impl_;
// Init
// Statics
KeyModifier_Impl_.get_altKey = function(this1) {
	if((this1 & 256) <= 0) {
		return (this1 & 512) > 0;
	} else {
		return true;
	}
}
KeyModifier_Impl_.set_altKey = function(this1,value) {
	if(value) {
		this1 |= 768;
	} else {
		this1 &= 268435455 - 768;
	}
	return value;
}
KeyModifier_Impl_.get_capsLock = function(this1) {
	if((this1 & 8192) <= 0) {
		return (this1 & 8192) > 0;
	} else {
		return true;
	}
}
KeyModifier_Impl_.set_capsLock = function(this1,value) {
	if(value) {
		this1 |= 8192;
	} else {
		this1 &= 268435455 - 8192;
	}
	return value;
}
KeyModifier_Impl_.get_ctrlKey = function(this1) {
	if((this1 & 64) <= 0) {
		return (this1 & 128) > 0;
	} else {
		return true;
	}
}
KeyModifier_Impl_.set_ctrlKey = function(this1,value) {
	if(value) {
		this1 |= 192;
	} else {
		this1 &= 268435455 - 192;
	}
	return value;
}
KeyModifier_Impl_.get_metaKey = function(this1) {
	if((this1 & 1024) <= 0) {
		return (this1 & 2048) > 0;
	} else {
		return true;
	}
}
KeyModifier_Impl_.set_metaKey = function(this1,value) {
	if(value) {
		this1 |= 3072;
	} else {
		this1 &= 268435455 - 3072;
	}
	return value;
}
KeyModifier_Impl_.get_numLock = function(this1) {
	if((this1 & 4096) <= 0) {
		return (this1 & 4096) > 0;
	} else {
		return true;
	}
}
KeyModifier_Impl_.set_numLock = function(this1,value) {
	if(value) {
		this1 |= 4096;
	} else {
		this1 &= 268435455 - 4096;
	}
	return value;
}
KeyModifier_Impl_.get_shiftKey = function(this1) {
	if((this1 & 1) <= 0) {
		return (this1 & 2) > 0;
	} else {
		return true;
	}
}
KeyModifier_Impl_.set_shiftKey = function(this1,value) {
	if(value) {
		this1 |= 3;
	} else {
		this1 &= 268435455 - 3;
	}
	return value;
}
KeyModifier_Impl_.NONE = 0
KeyModifier_Impl_.LEFT_SHIFT = 1
KeyModifier_Impl_.RIGHT_SHIFT = 2
KeyModifier_Impl_.LEFT_CTRL = 64
KeyModifier_Impl_.RIGHT_CTRL = 128
KeyModifier_Impl_.LEFT_ALT = 256
KeyModifier_Impl_.RIGHT_ALT = 512
KeyModifier_Impl_.LEFT_META = 1024
KeyModifier_Impl_.RIGHT_META = 2048
KeyModifier_Impl_.NUM_LOCK = 4096
KeyModifier_Impl_.CAPS_LOCK = 8192
KeyModifier_Impl_.MODE = 16384
KeyModifier_Impl_.CTRL = 192
KeyModifier_Impl_.SHIFT = 3
KeyModifier_Impl_.ALT = 768
KeyModifier_Impl_.META = 3072
// Export
exports.default = KeyModifier_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 201 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.Assets
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function openfl_utils_AssetCache() {return __webpack_require__(368);}
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function lime_utils_Assets() {return __webpack_require__(61);}
function openfl_display_BitmapData() {return __webpack_require__(44);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl_text_Font() {return __webpack_require__(102);}
function HxOverrides() {return __webpack_require__(7);}
function Std() {return __webpack_require__(4);}
function openfl_utils_AssetLibrary() {return __webpack_require__(202);}
function lime_utils_Log() {return __webpack_require__(23);}
function openfl_media_Sound() {return __webpack_require__(203);}
function lime_app_Promise() {return __webpack_require__(39);}
function lime_app_Future() {return __webpack_require__(24);}
function Type() {return __webpack_require__(10);}
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var Assets = function(){}
// Meta
Assets.__name__ = ["openfl","utils","Assets"];
Assets.prototype = {
	
};
Assets.prototype.__class__ = $hxClasses["openfl.utils.Assets"] = Assets;
// Init
// Statics
Assets.addEventListener = function(type,listener,useCapture,priority,useWeakReference) {
	if(useWeakReference == null) {
		useWeakReference = false;
	}
	if(priority == null) {
		priority = 0;
	}
	if(useCapture == null) {
		useCapture = false;
	}
	if(!(lime_utils_Assets().default).onChange.has(Assets.LimeAssets_onChange)) {
		(lime_utils_Assets().default).onChange.add(Assets.LimeAssets_onChange);
	}
	Assets.dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference);
}
Assets.dispatchEvent = function(event) {
	return Assets.dispatcher.dispatchEvent(event);
}
Assets.exists = function(id,type) {
	return (lime_utils_Assets().default).exists(id,type);
}
Assets.getBitmapData = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache && Assets.cache.get_enabled() && Assets.cache.hasBitmapData(id)) {
		var bitmapData = Assets.cache.getBitmapData(id);
		if(Assets.isValidBitmapData(bitmapData)) {
			return bitmapData;
		}
	}
	var image = (lime_utils_Assets().default).getImage(id,false);
	if(image != null) {
		var bitmapData1 = (openfl_display_BitmapData().default).fromImage(image);
		if(useCache && Assets.cache.get_enabled()) {
			Assets.cache.setBitmapData(id,bitmapData1);
		}
		return bitmapData1;
	}
	return null;
}
Assets.getBytes = function(id) {
	return (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes((lime_utils_Assets().default).getBytes(id));
}
Assets.getFont = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache && Assets.cache.get_enabled() && Assets.cache.hasFont(id)) {
		return Assets.cache.getFont(id);
	}
	var limeFont = (lime_utils_Assets().default).getFont(id,false);
	if(limeFont != null) {
		var font = new (openfl_text_Font().default)();
		font.__fromLimeFont(limeFont);
		if(useCache && Assets.cache.get_enabled()) {
			Assets.cache.setFont(id,font);
		}
		return font;
	}
	return new (openfl_text_Font().default)();
}
Assets.getLibrary = function(name) {
	return (lime_utils_Assets().default).getLibrary(name);
}
Assets.getMovieClip = function(id) {
	var libraryName = id.substring(0,id.indexOf(":"));
	var symbolName = (HxOverrides().default).substr(id,id.indexOf(":") + 1,null);
	var limeLibrary = Assets.getLibrary(libraryName);
	if(limeLibrary != null) {
		if((Std().default)["is"](limeLibrary,(openfl_utils_AssetLibrary().default))) {
			var library = limeLibrary;
			if(library.exists(symbolName,"MOVIE_CLIP")) {
				if(library.isLocal(symbolName,"MOVIE_CLIP")) {
					return library.getMovieClip(symbolName);
				} else {
					(lime_utils_Log().default).error("MovieClip asset \"" + id + "\" exists, but only asynchronously",{ fileName : "Assets.hx", lineNumber : 176, className : "openfl.utils.Assets", methodName : "getMovieClip"});
					return null;
				}
			}
		}
		(lime_utils_Log().default).error("There is no MovieClip asset with an ID of \"" + id + "\"",{ fileName : "Assets.hx", lineNumber : 185, className : "openfl.utils.Assets", methodName : "getMovieClip"});
	} else {
		(lime_utils_Log().default).error("There is no asset library named \"" + libraryName + "\"",{ fileName : "Assets.hx", lineNumber : 189, className : "openfl.utils.Assets", methodName : "getMovieClip"});
	}
	return null;
}
Assets.getMusic = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	return Assets.getSound(id,useCache);
}
Assets.getPath = function(id) {
	return (lime_utils_Assets().default).getPath(id);
}
Assets.getSound = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache && Assets.cache.get_enabled() && Assets.cache.hasSound(id)) {
		var sound = Assets.cache.getSound(id);
		if(Assets.isValidSound(sound)) {
			return sound;
		}
	}
	var buffer = (lime_utils_Assets().default).getAudioBuffer(id,false);
	if(buffer != null) {
		var sound1 = (openfl_media_Sound().default).fromAudioBuffer(buffer);
		if(useCache && Assets.cache.get_enabled()) {
			Assets.cache.setSound(id,sound1);
		}
		return sound1;
	}
	return null;
}
Assets.getText = function(id) {
	return (lime_utils_Assets().default).getText(id);
}
Assets.hasEventListener = function(type) {
	return Assets.dispatcher.hasEventListener(type);
}
Assets.hasLibrary = function(name) {
	return (lime_utils_Assets().default).hasLibrary(name);
}
Assets.isLocal = function(id,type,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache && Assets.cache.get_enabled()) {
		if(type == "IMAGE" || type == null) {
			if(Assets.cache.hasBitmapData(id)) {
				return true;
			}
		}
		if(type == "FONT" || type == null) {
			if(Assets.cache.hasFont(id)) {
				return true;
			}
		}
		if(type == "SOUND" || type == "MUSIC" || type == null) {
			if(Assets.cache.hasSound(id)) {
				return true;
			}
		}
	}
	var libraryName = id.substring(0,id.indexOf(":"));
	var symbolName = (HxOverrides().default).substr(id,id.indexOf(":") + 1,null);
	var library = Assets.getLibrary(libraryName);
	if(library != null) {
		return library.isLocal(symbolName,type);
	}
	return false;
}
Assets.isValidBitmapData = function(bitmapData) {
	return bitmapData != null && bitmapData.image != null;
}
Assets.isValidSound = function(sound) {
	return true;
}
Assets.list = function(type) {
	return (lime_utils_Assets().default).list(type);
}
Assets.loadBitmapData = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache == null) {
		useCache = true;
	}
	var promise = new (lime_app_Promise().default)();
	if(useCache && Assets.cache.get_enabled() && Assets.cache.hasBitmapData(id)) {
		var bitmapData = Assets.cache.getBitmapData(id);
		if(Assets.isValidBitmapData(bitmapData)) {
			promise.complete(bitmapData);
			return promise.future;
		}
	}
	(lime_utils_Assets().default).loadImage(id,false).onComplete(function(image) {
		if(image != null) {
			var bitmapData1 = (openfl_display_BitmapData().default).fromImage(image);
			if(useCache && Assets.cache.get_enabled()) {
				Assets.cache.setBitmapData(id,bitmapData1);
			}
			promise.complete(bitmapData1);
		} else {
			promise.error("[Assets] Could not load Image \"" + id + "\"");
		}
	}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
	return promise.future;
}
Assets.loadBytes = function(id) {
	var promise = new (lime_app_Promise().default)();
	var future = (lime_utils_Assets().default).loadBytes(id);
	future.onComplete(function(bytes) {
		promise.complete((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(bytes));
	});
	future.onProgress(function(progress,total) {
		promise.progress(progress,total);
	});
	future.onError(function(msg) {
		promise.error(msg);
	});
	return promise.future;
}
Assets.loadFont = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache == null) {
		useCache = true;
	}
	var promise = new (lime_app_Promise().default)();
	if(useCache && Assets.cache.get_enabled() && Assets.cache.hasFont(id)) {
		var tmp = Assets.cache.getFont(id);
		promise.complete(tmp);
		return promise.future;
	}
	(lime_utils_Assets().default).loadFont(id).onComplete(function(limeFont) {
		var font = new (openfl_text_Font().default)();
		font.__fromLimeFont(limeFont);
		if(useCache && Assets.cache.get_enabled()) {
			Assets.cache.setFont(id,font);
		}
		promise.complete(font);
	}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
	return promise.future;
}
Assets.loadLibrary = function(name) {
	var future = (lime_utils_Assets().default).loadLibrary(name);
	return future;
}
Assets.loadMusic = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache == null) {
		useCache = true;
	}
	var future = new (lime_app_Future().default)(function() {
		return Assets.getMusic(id,useCache);
	});
	return future;
}
Assets.loadMovieClip = function(id) {
	var promise = new (lime_app_Promise().default)();
	var libraryName = id.substring(0,id.indexOf(":"));
	var symbolName = (HxOverrides().default).substr(id,id.indexOf(":") + 1,null);
	var limeLibrary = Assets.getLibrary(libraryName);
	if(limeLibrary != null) {
		if((Std().default)["is"](limeLibrary,(openfl_utils_AssetLibrary().default))) {
			var library = limeLibrary;
			if(library.exists(symbolName,"MOVIE_CLIP")) {
				promise.completeWith(library.loadMovieClip(symbolName));
				return promise.future;
			}
		}
		promise.error("[Assets] There is no MovieClip asset with an ID of \"" + id + "\"");
	} else {
		promise.error("[Assets] There is no asset library named \"" + libraryName + "\"");
	}
	return promise.future;
}
Assets.loadSound = function(id,useCache) {
	if(useCache == null) {
		useCache = true;
	}
	if(useCache == null) {
		useCache = true;
	}
	var promise = new (lime_app_Promise().default)();
	(lime_utils_Assets().default).loadAudioBuffer(id,useCache).onComplete(function(buffer) {
		if(buffer != null) {
			var sound = (openfl_media_Sound().default).fromAudioBuffer(buffer);
			if(useCache && Assets.cache.get_enabled()) {
				Assets.cache.setSound(id,sound);
			}
			promise.complete(sound);
		} else {
			promise.error("[Assets] Could not load Sound \"" + id + "\"");
		}
	}).onError($bind(promise,promise.error)).onProgress($bind(promise,promise.progress));
	return promise.future;
}
Assets.loadText = function(id) {
	var future = (lime_utils_Assets().default).loadText(id);
	return future;
}
Assets.registerLibrary = function(name,library) {
	(lime_utils_Assets().default).registerLibrary(name,library);
}
Assets.removeEventListener = function(type,listener,capture) {
	if(capture == null) {
		capture = false;
	}
	Assets.dispatcher.removeEventListener(type,listener,capture);
}
Assets.resolveClass = function(name) {
	return (Type().default).resolveClass(name);
}
Assets.resolveEnum = function(name) {
	var value = (Type().default).resolveEnum(name);
	return value;
}
Assets.unloadLibrary = function(name) {
	(lime_utils_Assets().default).unloadLibrary(name);
}
Assets.LimeAssets_onChange = function() {
	Assets.dispatchEvent(new (openfl_events_Event().default)("change"));
}
Assets.cache = new (openfl_utils_AssetCache().default)()
Assets.dispatcher = new (openfl_events_EventDispatcher().default)()
// Export
exports.default = Assets;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 202 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.AssetLibrary
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_utils_AssetLibrary() {return __webpack_require__(137);}
function lime_app_Future() {return __webpack_require__(24);}
function lime_utils_AssetManifest() {return __webpack_require__(103);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function Std() {return __webpack_require__(4);}
// Constructor
var AssetLibrary = function() {
	(lime_utils_AssetLibrary().default).call(this);
}
// Meta
AssetLibrary.__name__ = ["openfl","utils","AssetLibrary"];
AssetLibrary.__super__ = (lime_utils_AssetLibrary().default);
AssetLibrary.prototype = $extend((lime_utils_AssetLibrary().default).prototype, {
	exists: function(id,type) {
		if(this.__proxy != null) {
			return this.__proxy.exists(id,type);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.exists.call(this,id,type);
		}
	},
	getAsset: function(id,type) {
		if(this.__proxy != null) {
			return this.__proxy.getAsset(id,type);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.getAsset.call(this,id,type);
		}
	},
	getAudioBuffer: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.getAudioBuffer(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.getAudioBuffer.call(this,id);
		}
	},
	getBytes: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.getBytes(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.getBytes.call(this,id);
		}
	},
	getFont: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.getFont(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.getFont.call(this,id);
		}
	},
	getImage: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.getImage(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.getImage.call(this,id);
		}
	},
	getMovieClip: function(id) {
		return null;
	},
	getPath: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.getPath(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.getPath.call(this,id);
		}
	},
	getText: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.getText(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.getText.call(this,id);
		}
	},
	isLocal: function(id,type) {
		if(this.__proxy != null) {
			return this.__proxy.isLocal(id,type);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.isLocal.call(this,id,type);
		}
	},
	list: function(type) {
		if(this.__proxy != null) {
			return this.__proxy.list(type);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.list.call(this,type);
		}
	},
	loadAsset: function(id,type) {
		if(this.__proxy != null) {
			return this.__proxy.loadAsset(id,type);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.loadAsset.call(this,id,type);
		}
	},
	load: function() {
		if(this.__proxy != null) {
			return this.__proxy.load();
		} else {
			return (lime_utils_AssetLibrary().default).prototype.load.call(this);
		}
	},
	loadAudioBuffer: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.loadAudioBuffer(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.loadAudioBuffer.call(this,id);
		}
	},
	loadBytes: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.loadBytes(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.loadBytes.call(this,id);
		}
	},
	loadFont: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.loadFont(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.loadFont.call(this,id);
		}
	},
	loadImage: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.loadImage(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.loadImage.call(this,id);
		}
	},
	loadMovieClip: function(id) {
		var _gthis = this;
		return new (lime_app_Future().default)(function() {
			return _gthis.getMovieClip(id);
		});
	},
	loadText: function(id) {
		if(this.__proxy != null) {
			return this.__proxy.loadText(id);
		} else {
			return (lime_utils_AssetLibrary().default).prototype.loadText.call(this,id);
		}
	},
	unload: function() {
		if(this.__proxy != null) {
			this.__proxy.unload();
			return;
		} else {
			(lime_utils_AssetLibrary().default).prototype.unload.call(this);
			return;
		}
	}
});
AssetLibrary.prototype.__class__ = $hxClasses["openfl.utils.AssetLibrary"] = AssetLibrary;
// Init
// Statics
AssetLibrary.fromBytes = function(bytes,rootPath) {
	return AssetLibrary.fromManifest((lime_utils_AssetManifest().default).fromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes),rootPath));
}
AssetLibrary.fromFile = function(path,rootPath) {
	return AssetLibrary.fromManifest((lime_utils_AssetManifest().default).fromFile(path,rootPath));
}
AssetLibrary.fromManifest = function(manifest) {
	var library = (lime_utils_AssetLibrary().default).fromManifest(manifest);
	if(library != null) {
		if((Std().default)["is"](library,AssetLibrary)) {
			return library;
		} else {
			var _library = new AssetLibrary();
			_library.__proxy = library;
			return _library;
		}
	} else {
		return null;
	}
}
AssetLibrary.loadFromBytes = function(bytes,rootPath) {
	return (lime_utils_AssetManifest().default).loadFromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes),rootPath).then(function(manifest) {
		return AssetLibrary.loadFromManifest(manifest);
	});
}
AssetLibrary.loadFromFile = function(path,rootPath) {
	return (lime_utils_AssetManifest().default).loadFromFile(path,rootPath).then(function(manifest) {
		return AssetLibrary.loadFromManifest(manifest);
	});
}
AssetLibrary.loadFromManifest = function(manifest) {
	var library = AssetLibrary.fromManifest(manifest);
	if(library != null) {
		return library.load().then(function(library1) {
			return (lime_app_Future().default).withValue(library1);
		});
	} else {
		return (lime_app_Future().default).withError("Could not load asset manifest");
	}
}
// Export
exports.default = AssetLibrary;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 203 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.media.Sound
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function lime_utils_Assets() {return __webpack_require__(61);}
function lime_media_AudioBuffer() {return __webpack_require__(88);}
function openfl_events_IOErrorEvent() {return __webpack_require__(101);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl_utils_ByteArrayData() {return __webpack_require__(45);}
function openfl_events_Event() {return __webpack_require__(9);}
function Std() {return __webpack_require__(4);}
function openfl_media_SoundMixer() {return __webpack_require__(204);}
function openfl_media_SoundTransform() {return __webpack_require__(81);}
function lime_media_AudioSource() {return __webpack_require__(370);}
function openfl_media_SoundChannel() {return __webpack_require__(205);}
function openfl_media_ID3Info() {return __webpack_require__(206);}
function lime_app_Future() {return __webpack_require__(24);}
// Constructor
var Sound = function(stream,context) {
	(openfl_events_EventDispatcher().default).call(this,this);
	this.bytesLoaded = 0;
	this.bytesTotal = 0;
	this.isBuffering = false;
	this.url = null;
	if(stream != null) {
		this.load(stream,context);
	}
}
// Meta
Sound.__name__ = ["openfl","media","Sound"];
Sound.__super__ = (openfl_events_EventDispatcher().default);
Sound.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	close: function() {
		if(this.__buffer != null) {
			this.__buffer.dispose();
		}
	},
	load: function(stream,context) {
		var _gthis = this;
		this.url = stream.url;
		var defaultLibrary = (lime_utils_Assets().default).getLibrary("default");
		if(defaultLibrary != null && defaultLibrary.cachedAudioBuffers.exists(this.url)) {
			this.AudioBuffer_onURLLoad(defaultLibrary.cachedAudioBuffers.get(this.url));
		} else {
			(lime_media_AudioBuffer().default).loadFromFile(this.url).onComplete($bind(this,this.AudioBuffer_onURLLoad)).onError(function(_) {
				_gthis.AudioBuffer_onURLLoad(null);
			});
		}
	},
	loadCompressedDataFromByteArray: function(bytes,bytesLength) {
		if(bytes == null || bytesLength <= 0) {
			this.dispatchEvent(new (openfl_events_IOErrorEvent().default)("ioError"));
			return;
		}
		if((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(bytes) > bytesLength) {
			var this1 = new (openfl_utils_ByteArrayData().default)(bytesLength);
			var copy = this1;
			copy.writeBytes(bytes,0,bytesLength);
			bytes = copy;
		}
		this.__buffer = (lime_media_AudioBuffer().default).fromBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(bytes));
		if(this.__buffer == null) {
			this.dispatchEvent(new (openfl_events_IOErrorEvent().default)("ioError"));
		} else {
			this.dispatchEvent(new (openfl_events_Event().default)("complete"));
		}
	},
	loadPCMFromByteArray: function(bytes,samples,format,stereo,sampleRate) {
		if(sampleRate == null) {
			sampleRate = 44100;
		}
		if(stereo == null) {
			stereo = true;
		}
		if(format == null) {
			format = "float";
		}
		if(bytes == null) {
			this.dispatchEvent(new (openfl_events_IOErrorEvent().default)("ioError"));
			return;
		}
		var audioBuffer = new (lime_media_AudioBuffer().default)();
		audioBuffer.bitsPerSample = format == "float" ? 32 : 16;
		audioBuffer.channels = stereo ? 2 : 1;
		var buffer = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toArrayBuffer(bytes);
		var this1;
		if(buffer != null) {
			this1 = new Uint8Array(buffer,0);
		} else {
			this1 = null;
		}
		audioBuffer.data = this1;
		audioBuffer.sampleRate = (Std().default)["int"](sampleRate);
		this.__buffer = audioBuffer;
		this.dispatchEvent(new (openfl_events_Event().default)("complete"));
	},
	play: function(startTime,loops,sndTransform) {
		if(loops == null) {
			loops = 0;
		}
		if(startTime == null) {
			startTime = 0.0;
		}
		if((openfl_media_SoundMixer().default).__soundChannels.length >= 32) {
			return null;
		}
		if(sndTransform == null) {
			sndTransform = new (openfl_media_SoundTransform().default)();
		} else {
			sndTransform = sndTransform.clone();
		}
		var pan = (openfl_media_SoundMixer().default).__soundTransform.pan + sndTransform.pan;
		if(pan > 1) {
			pan = 1;
		}
		if(pan < -1) {
			pan = -1;
		}
		var volume = (openfl_media_SoundMixer().default).__soundTransform.volume * sndTransform.volume;
		var source = new (lime_media_AudioSource().default)(this.__buffer);
		source.offset = (Std().default)["int"](startTime);
		if(loops > 1) {
			source.set_loops(loops - 1);
		}
		source.set_gain(volume);
		var position = source.get_position();
		position.x = pan;
		position.z = -1 * Math.sqrt(1 - Math.pow(pan,2));
		source.set_position(position);
		return new (openfl_media_SoundChannel().default)(source,sndTransform);
	},
	get_id3: function() {
		return new (openfl_media_ID3Info().default)();
	},
	get_length: function() {
		if(this.__buffer != null) {
			return (Std().default)["int"](this.__buffer.get_src().duration() * 1000);
		}
		return 0;
	},
	AudioBuffer_onURLLoad: function(buffer) {
		if(buffer == null) {
			this.dispatchEvent(new (openfl_events_IOErrorEvent().default)("ioError"));
		} else {
			this.__buffer = buffer;
			this.dispatchEvent(new (openfl_events_Event().default)("complete"));
		}
	}
});
Sound.prototype.__class__ = $hxClasses["openfl.media.Sound"] = Sound;
// Init
Object.defineProperties(Sound.prototype,{ "id3" : { get : function () { return this.get_id3 (); }}, "length" : { get : function () { return this.get_length (); }}});
// Statics
Sound.fromAudioBuffer = function(buffer) {
	var sound = new Sound();
	sound.__buffer = buffer;
	return sound;
}
Sound.fromFile = function(path) {
	return Sound.fromAudioBuffer((lime_media_AudioBuffer().default).fromFile(path));
}
Sound.loadFromFile = function(path) {
	return (lime_media_AudioBuffer().default).loadFromFile(path).then(function(audioBuffer) {
		return (lime_app_Future().default).withValue(Sound.fromAudioBuffer(audioBuffer));
	});
}
Sound.loadFromFiles = function(paths) {
	return (lime_media_AudioBuffer().default).loadFromFiles(paths).then(function(audioBuffer) {
		return (lime_app_Future().default).withValue(Sound.fromAudioBuffer(audioBuffer));
	});
}
// Export
exports.default = Sound;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 204 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.media.SoundMixer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_media_SoundTransform() {return __webpack_require__(81);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var SoundMixer = function(){}
// Meta
SoundMixer.__name__ = ["openfl","media","SoundMixer"];
SoundMixer.prototype = {
	
};
SoundMixer.prototype.__class__ = $hxClasses["openfl.media.SoundMixer"] = SoundMixer;
// Init
Object.defineProperty(SoundMixer,"soundTransform",{ get : function() {
	return SoundMixer.get_soundTransform();
}, set : function(value) {
	return SoundMixer.set_soundTransform(value);
}});
// Statics
SoundMixer.areSoundsInaccessible = function() {
	return false;
}
SoundMixer.stopAll = function() {
	var _g = 0;
	var _g1 = SoundMixer.__soundChannels;
	while(_g < _g1.length) {
		var channel = _g1[_g];
		++_g;
		channel.stop();
	}
}
SoundMixer.__registerSoundChannel = function(soundChannel) {
	SoundMixer.__soundChannels.push(soundChannel);
}
SoundMixer.__unregisterSoundChannel = function(soundChannel) {
	(HxOverrides().default).remove(SoundMixer.__soundChannels,soundChannel);
}
SoundMixer.get_soundTransform = function() {
	return SoundMixer.__soundTransform;
}
SoundMixer.set_soundTransform = function(value) {
	SoundMixer.__soundTransform = value.clone();
	var _g = 0;
	var _g1 = SoundMixer.__soundChannels;
	while(_g < _g1.length) {
		var channel = _g1[_g];
		++_g;
		channel.__updateTransform();
	}
	return value;
}
SoundMixer.MAX_ACTIVE_CHANNELS = 32
SoundMixer.__soundChannels = []
SoundMixer.__soundTransform = new (openfl_media_SoundTransform().default)()
// Export
exports.default = SoundMixer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 205 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.media.SoundChannel
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl_media_SoundMixer() {return __webpack_require__(204);}
function Std() {return __webpack_require__(4);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_media_SoundTransform() {return __webpack_require__(81);}
// Constructor
var SoundChannel = function(source,soundTransform) {
	(openfl_events_EventDispatcher().default).call(this,this);
	this.leftPeak = 1;
	this.rightPeak = 1;
	if(soundTransform != null) {
		this.__soundTransform = soundTransform;
	} else {
		this.__soundTransform = new (openfl_media_SoundTransform().default)();
	}
	if(source != null) {
		this.__source = source;
		this.__source.onComplete.add($bind(this,this.source_onComplete));
		this.__isValid = true;
		this.__source.play();
	}
	(openfl_media_SoundMixer().default).__registerSoundChannel(this);
}
// Meta
SoundChannel.__name__ = ["openfl","media","SoundChannel"];
SoundChannel.__super__ = (openfl_events_EventDispatcher().default);
SoundChannel.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	stop: function() {
		(openfl_media_SoundMixer().default).__unregisterSoundChannel(this);
		if(!this.__isValid) {
			return;
		}
		this.__source.stop();
		this.__dispose();
	},
	__dispose: function() {
		if(!this.__isValid) {
			return;
		}
		this.__source.onComplete.remove($bind(this,this.source_onComplete));
		this.__source.dispose();
		this.__isValid = false;
	},
	__updateTransform: function() {
		this.set_soundTransform(this.get_soundTransform());
	},
	get_position: function() {
		if(!this.__isValid) {
			return 0;
		}
		return this.__source.get_currentTime() + this.__source.offset;
	},
	set_position: function(value) {
		if(!this.__isValid) {
			return 0;
		}
		this.__source.set_currentTime((Std().default)["int"](value) - this.__source.offset);
		return value;
	},
	get_soundTransform: function() {
		return this.__soundTransform.clone();
	},
	set_soundTransform: function(value) {
		if(value != null) {
			this.__soundTransform.pan = value.pan;
			this.__soundTransform.volume = value.volume;
			var pan = (openfl_media_SoundMixer().default).__soundTransform.pan + this.__soundTransform.pan;
			if(pan < -1) {
				pan = -1;
			}
			if(pan > 1) {
				pan = 1;
			}
			var volume = (openfl_media_SoundMixer().default).__soundTransform.volume * this.__soundTransform.volume;
			if(this.__isValid) {
				this.__source.set_gain(volume);
				var position = this.__source.get_position();
				position.x = pan;
				position.z = -1 * Math.sqrt(1 - Math.pow(pan,2));
				this.__source.set_position(position);
				return value;
			}
		}
		return value;
	},
	source_onComplete: function() {
		(openfl_media_SoundMixer().default).__unregisterSoundChannel(this);
		this.__dispose();
		this.dispatchEvent(new (openfl_events_Event().default)("soundComplete"));
	}
});
SoundChannel.prototype.__class__ = $hxClasses["openfl.media.SoundChannel"] = SoundChannel;
// Init
Object.defineProperties(SoundChannel.prototype,{ "position" : { get : function () { return this.get_position (); }, set : function (v) { return this.set_position (v); }}, "soundTransform" : { get : function () { return this.get_soundTransform (); }, set : function (v) { return this.set_soundTransform (v); }}});
// Statics
// Export
exports.default = SoundChannel;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 206 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.media.ID3Info
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var ID3Info = function() {
}
// Meta
ID3Info.__name__ = ["openfl","media","ID3Info"];
ID3Info.prototype = {
	
};
ID3Info.prototype.__class__ = $hxClasses["openfl.media.ID3Info"] = ID3Info;
// Init
// Statics
// Export
exports.default = ID3Info;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 207 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.UncaughtErrorEvents
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
// Constructor
var UncaughtErrorEvents = function() {
	(openfl_events_EventDispatcher().default).call(this);
}
// Meta
UncaughtErrorEvents.__name__ = ["openfl","events","UncaughtErrorEvents"];
UncaughtErrorEvents.__super__ = (openfl_events_EventDispatcher().default);
UncaughtErrorEvents.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	
});
UncaughtErrorEvents.prototype.__class__ = $hxClasses["openfl.events.UncaughtErrorEvents"] = UncaughtErrorEvents;
// Init
// Statics
// Export
exports.default = UncaughtErrorEvents;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 208 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.system.ApplicationDomain
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Type() {return __webpack_require__(10);}
// Constructor
var ApplicationDomain = function(parentDomain) {
	if(parentDomain != null) {
		this.parentDomain = parentDomain;
	} else {
		this.parentDomain = ApplicationDomain.currentDomain;
	}
}
// Meta
ApplicationDomain.__name__ = ["openfl","system","ApplicationDomain"];
ApplicationDomain.prototype = {
	getDefinition: function(name) {
		return (Type().default).resolveClass(name);
	},
	hasDefinition: function(name) {
		return (Type().default).resolveClass(name) != null;
	}
};
ApplicationDomain.prototype.__class__ = $hxClasses["openfl.system.ApplicationDomain"] = ApplicationDomain;
// Init
// Statics
ApplicationDomain.currentDomain = new ApplicationDomain(null)
// Export
exports.default = ApplicationDomain;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 209 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.ui.GameInput
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl_events_GameInputEvent() {return __webpack_require__(210);}
function haxe_ds_ObjectMap() {return __webpack_require__(57);}
function openfl_ui_GameInputDevice() {return __webpack_require__(211);}
function openfl_ui_GameInputControl() {return __webpack_require__(140);}
function openfl_events_Event() {return __webpack_require__(9);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var GameInput = function() {
	(openfl_events_EventDispatcher().default).call(this);
	GameInput.__instances.push(this);
}
// Meta
GameInput.__name__ = ["openfl","ui","GameInput"];
GameInput.__super__ = (openfl_events_EventDispatcher().default);
GameInput.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	addEventListener: function(type,listener,useCapture,priority,useWeakReference) {
		if(useWeakReference == null) {
			useWeakReference = false;
		}
		if(priority == null) {
			priority = 0;
		}
		if(useCapture == null) {
			useCapture = false;
		}
		(openfl_events_EventDispatcher().default).prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference);
		if(type == "deviceAdded") {
			var _g = 0;
			var _g1 = GameInput.__deviceList;
			while(_g < _g1.length) {
				var device = _g1[_g];
				++_g;
				this.dispatchEvent(new (openfl_events_GameInputEvent().default)("deviceAdded",null,null,device));
			}
		}
	}
});
GameInput.prototype.__class__ = $hxClasses["openfl.ui.GameInput"] = GameInput;
// Init
// Statics
GameInput.getDeviceAt = function(index) {
	if(index >= 0 && index < GameInput.__deviceList.length) {
		return GameInput.__deviceList[index];
	}
	return null;
}
GameInput.__getDevice = function(gamepad) {
	if(gamepad == null) {
		return null;
	}
	if(!GameInput.__devices.exists(gamepad)) {
		var device = new (openfl_ui_GameInputDevice().default)(gamepad.get_guid(),gamepad.get_name());
		GameInput.__deviceList.push(device);
		GameInput.__devices.set(gamepad,device);
		GameInput.numDevices = GameInput.__deviceList.length;
	}
	return GameInput.__devices.get(gamepad);
}
GameInput.__onGamepadAxisMove = function(gamepad,axis,value) {
	var device = GameInput.__getDevice(gamepad);
	if(device == null) {
		return;
	}
	if(device.enabled) {
		if(!device.__axis.exists(axis)) {
			var control;
			switch(axis) {
			case 0:
				control = "LEFT_X";
				break;
			case 1:
				control = "LEFT_Y";
				break;
			case 2:
				control = "RIGHT_X";
				break;
			case 3:
				control = "RIGHT_Y";
				break;
			case 4:
				control = "TRIGGER_LEFT";
				break;
			case 5:
				control = "TRIGGER_RIGHT";
				break;
			default:
				control = "UNKNOWN (" + axis + ")";
			}
			var control1 = new (openfl_ui_GameInputControl().default)(device,"AXIS_" + control,-1,1);
			device.__axis.set(axis,control1);
			device.__controls.push(control1);
		}
		var control2 = device.__axis.get(axis);
		control2.value = value;
		control2.dispatchEvent(new (openfl_events_Event().default)("change"));
	}
}
GameInput.__onGamepadButtonDown = function(gamepad,button) {
	var device = GameInput.__getDevice(gamepad);
	if(device == null) {
		return;
	}
	if(device.enabled) {
		if(!device.__button.exists(button)) {
			var control;
			switch(button) {
			case 0:
				control = "A";
				break;
			case 1:
				control = "B";
				break;
			case 2:
				control = "X";
				break;
			case 3:
				control = "Y";
				break;
			case 4:
				control = "BACK";
				break;
			case 5:
				control = "GUIDE";
				break;
			case 6:
				control = "START";
				break;
			case 7:
				control = "LEFT_STICK";
				break;
			case 8:
				control = "RIGHT_STICK";
				break;
			case 9:
				control = "LEFT_SHOULDER";
				break;
			case 10:
				control = "RIGHT_SHOULDER";
				break;
			case 11:
				control = "DPAD_UP";
				break;
			case 12:
				control = "DPAD_DOWN";
				break;
			case 13:
				control = "DPAD_LEFT";
				break;
			case 14:
				control = "DPAD_RIGHT";
				break;
			default:
				control = "UNKNOWN (" + button + ")";
			}
			var control1 = new (openfl_ui_GameInputControl().default)(device,"BUTTON_" + control,0,1);
			device.__button.set(button,control1);
			device.__controls.push(control1);
		}
		var control2 = device.__button.get(button);
		control2.value = 1;
		control2.dispatchEvent(new (openfl_events_Event().default)("change"));
	}
}
GameInput.__onGamepadButtonUp = function(gamepad,button) {
	var device = GameInput.__getDevice(gamepad);
	if(device == null) {
		return;
	}
	if(device.enabled) {
		if(!device.__button.exists(button)) {
			var control;
			switch(button) {
			case 0:
				control = "A";
				break;
			case 1:
				control = "B";
				break;
			case 2:
				control = "X";
				break;
			case 3:
				control = "Y";
				break;
			case 4:
				control = "BACK";
				break;
			case 5:
				control = "GUIDE";
				break;
			case 6:
				control = "START";
				break;
			case 7:
				control = "LEFT_STICK";
				break;
			case 8:
				control = "RIGHT_STICK";
				break;
			case 9:
				control = "LEFT_SHOULDER";
				break;
			case 10:
				control = "RIGHT_SHOULDER";
				break;
			case 11:
				control = "DPAD_UP";
				break;
			case 12:
				control = "DPAD_DOWN";
				break;
			case 13:
				control = "DPAD_LEFT";
				break;
			case 14:
				control = "DPAD_RIGHT";
				break;
			default:
				control = "UNKNOWN (" + button + ")";
			}
			var control1 = new (openfl_ui_GameInputControl().default)(device,"BUTTON_" + control,0,1);
			device.__button.set(button,control1);
			device.__controls.push(control1);
		}
		var control2 = device.__button.get(button);
		control2.value = 0;
		control2.dispatchEvent(new (openfl_events_Event().default)("change"));
	}
}
GameInput.__onGamepadConnect = function(gamepad) {
	var device = GameInput.__getDevice(gamepad);
	if(device == null) {
		return;
	}
	var _g = 0;
	var _g1 = GameInput.__instances;
	while(_g < _g1.length) {
		var instance = _g1[_g];
		++_g;
		instance.dispatchEvent(new (openfl_events_GameInputEvent().default)("deviceAdded",null,null,device));
	}
}
GameInput.__onGamepadDisconnect = function(gamepad) {
	var device = GameInput.__devices.get(gamepad);
	if(device != null) {
		if(GameInput.__devices.exists(gamepad)) {
			(HxOverrides().default).remove(GameInput.__deviceList,GameInput.__devices.get(gamepad));
			GameInput.__devices.remove(gamepad);
		}
		GameInput.numDevices = GameInput.__deviceList.length;
		var _g = 0;
		var _g1 = GameInput.__instances;
		while(_g < _g1.length) {
			var instance = _g1[_g];
			++_g;
			instance.dispatchEvent(new (openfl_events_GameInputEvent().default)("deviceRemoved",null,null,device));
		}
	}
}
GameInput.isSupported = true
GameInput.numDevices = 0
GameInput.__deviceList = []
GameInput.__devices = new (haxe_ds_ObjectMap().default)()
GameInput.__instances = []
// Export
exports.default = GameInput;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 210 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.GameInputEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var GameInputEvent = function(type,bubbles,cancelable,device) {
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = true;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.device = device;
}
// Meta
GameInputEvent.__name__ = ["openfl","events","GameInputEvent"];
GameInputEvent.__super__ = (openfl_events_Event().default);
GameInputEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new GameInputEvent(this.type,this.bubbles,this.cancelable,this.device);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("GameInputEvent",["type","bubbles","cancelable","device"]);
	}
});
GameInputEvent.prototype.__class__ = $hxClasses["openfl.events.GameInputEvent"] = GameInputEvent;
// Init
// Statics
GameInputEvent.DEVICE_ADDED = "deviceAdded"
GameInputEvent.DEVICE_REMOVED = "deviceRemoved"
GameInputEvent.DEVICE_UNUSABLE = "deviceUnusable"
// Export
exports.default = GameInputEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 211 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.ui.GameInputDevice
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_IntMap() {return __webpack_require__(22);}
function openfl_ui_GameInputControl() {return __webpack_require__(140);}
// Constructor
var GameInputDevice = function(id,name) {
	this.__controls = [];
	this.__button = new (haxe_ds_IntMap().default)();
	this.__axis = new (haxe_ds_IntMap().default)();
	this.id = id;
	this.name = name;
	var control;
	var _g = 0;
	while(_g < 6) {
		var i = _g++;
		control = new (openfl_ui_GameInputControl().default)(this,"AXIS_" + i,-1,1);
		this.__axis.set(i,control);
		this.__controls.push(control);
	}
	var _g1 = 0;
	while(_g1 < 15) {
		var i1 = _g1++;
		control = new (openfl_ui_GameInputControl().default)(this,"BUTTON_" + i1,0,1);
		this.__button.set(i1,control);
		this.__controls.push(control);
	}
}
// Meta
GameInputDevice.__name__ = ["openfl","ui","GameInputDevice"];
GameInputDevice.prototype = {
	getCachedSamples: function(data,append) {
		if(append == null) {
			append = false;
		}
		return 0;
	},
	getControlAt: function(i) {
		if(i >= 0 && i < this.__controls.length) {
			return this.__controls[i];
		}
		return null;
	},
	startCachingSamples: function(numSamples,controls) {
	},
	stopCachingSamples: function() {
	},
	get_numControls: function() {
		return this.__controls.length;
	}
};
GameInputDevice.prototype.__class__ = $hxClasses["openfl.ui.GameInputDevice"] = GameInputDevice;
// Init
Object.defineProperties(GameInputDevice.prototype,{ "numControls" : { get : function () { return this.get_numControls (); }}});
// Statics
GameInputDevice.MAX_BUFFER_SIZE = 32000
// Export
exports.default = GameInputDevice;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 212 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.FullScreenEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_ActivityEvent() {return __webpack_require__(213);}
// Constructor
var FullScreenEvent = function(type,bubbles,cancelable,fullScreen,interactive) {
	if(interactive == null) {
		interactive = false;
	}
	if(fullScreen == null) {
		fullScreen = false;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_ActivityEvent().default).call(this,type,bubbles,cancelable);
	this.fullScreen = fullScreen;
	this.interactive = interactive;
}
// Meta
FullScreenEvent.__name__ = ["openfl","events","FullScreenEvent"];
FullScreenEvent.__super__ = (openfl_events_ActivityEvent().default);
FullScreenEvent.prototype = $extend((openfl_events_ActivityEvent().default).prototype, {
	clone: function() {
		var event = new FullScreenEvent(this.type,this.bubbles,this.cancelable,this.fullScreen,this.interactive);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("FullscreenEvent",["type","bubbles","cancelable","fullscreen","interactive"]);
	}
});
FullScreenEvent.prototype.__class__ = $hxClasses["openfl.events.FullScreenEvent"] = FullScreenEvent;
// Init
// Statics
FullScreenEvent.FULL_SCREEN = "fullScreen"
FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED = "fullScreenInteractiveAccepted"
// Export
exports.default = FullScreenEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 213 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.ActivityEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var ActivityEvent = function(type,bubbles,cancelable,activating) {
	if(activating == null) {
		activating = false;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.activating = activating;
}
// Meta
ActivityEvent.__name__ = ["openfl","events","ActivityEvent"];
ActivityEvent.__super__ = (openfl_events_Event().default);
ActivityEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new ActivityEvent(this.type,this.bubbles,this.cancelable,this.activating);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("ActivityEvent",["type","bubbles","cancelable","activating"]);
	}
});
ActivityEvent.prototype.__class__ = $hxClasses["openfl.events.ActivityEvent"] = ActivityEvent;
// Init
// Statics
ActivityEvent.ACTIVITY = "activity"
// Export
exports.default = ActivityEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 214 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.SamplerState
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var SamplerState = function(minFilter,magFilter,wrapModeS,wrapModeT,lodBias,maxAniso,ignoreSampler,centroid,mipmapGenerated,textureAlpha) {
	if(textureAlpha == null) {
		textureAlpha = false;
	}
	if(mipmapGenerated == null) {
		mipmapGenerated = false;
	}
	if(centroid == null) {
		centroid = false;
	}
	if(ignoreSampler == null) {
		ignoreSampler = false;
	}
	if(maxAniso == null) {
		maxAniso = 0.0;
	}
	if(lodBias == null) {
		lodBias = 0.0;
	}
	this.set_minFilter(minFilter);
	this.set_magFilter(magFilter);
	this.set_wrapModeS(wrapModeS);
	this.set_wrapModeT(wrapModeT);
	this.set_lodBias(lodBias);
	this.set_maxAniso(maxAniso);
	this.ignoreSampler = ignoreSampler;
	this.centroid = centroid;
	this.mipmapGenerated = mipmapGenerated;
	this.textureAlpha = textureAlpha;
	this.__samplerDirty = true;
}
// Meta
SamplerState.__name__ = ["openfl","_internal","stage3D","SamplerState"];
SamplerState.prototype = {
	copyFrom: function(other) {
		if(other == null || other.ignoreSampler) {
			return;
		}
		this.set_minFilter(other.minFilter);
		this.set_magFilter(other.magFilter);
		this.set_wrapModeS(other.wrapModeS);
		this.set_wrapModeT(other.wrapModeT);
		this.set_lodBias(other.lodBias);
		this.set_maxAniso(other.maxAniso);
		this.centroid = other.centroid;
		this.mipmapGenerated = other.mipmapGenerated;
		this.textureAlpha = other.textureAlpha;
	},
	equals: function(other) {
		if(this == other) {
			return !this.__samplerDirty;
		}
		if(other == null) {
			return false;
		}
		if(this.minFilter == other.minFilter && this.magFilter == other.magFilter && this.wrapModeS == other.wrapModeS && this.wrapModeT == other.wrapModeT && this.lodBias == other.lodBias && this.maxAniso == other.maxAniso && this.mipmapGenerated == other.mipmapGenerated) {
			return this.textureAlpha == other.textureAlpha;
		} else {
			return false;
		}
	},
	set_lodBias: function(value) {
		if(this.lodBias != value) {
			this.__samplerDirty = true;
		}
		return this.lodBias = value;
	},
	set_magFilter: function(value) {
		if(this.magFilter != value) {
			this.__samplerDirty = true;
		}
		return this.magFilter = value;
	},
	set_maxAniso: function(value) {
		if(this.maxAniso != value) {
			this.__samplerDirty = true;
		}
		return this.maxAniso = value;
	},
	set_minFilter: function(value) {
		if(this.minFilter != value) {
			this.__samplerDirty = true;
		}
		return this.minFilter = value;
	},
	set_wrapModeS: function(value) {
		if(this.wrapModeS != value) {
			this.__samplerDirty = true;
		}
		return this.wrapModeS = value;
	},
	set_wrapModeT: function(value) {
		if(this.wrapModeT != value) {
			this.__samplerDirty = true;
		}
		return this.wrapModeT = value;
	}
};
SamplerState.prototype.__class__ = $hxClasses["openfl._internal.stage3D.SamplerState"] = SamplerState;
// Init
// Statics
// Export
exports.default = SamplerState;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 215 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.atf.ATFReader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
function _$UInt_UInt_$Impl_$() {return __webpack_require__(43);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function js_Boot() {return __webpack_require__(20);}
// Constructor
var ATFReader = function(data,byteArrayOffset) {
	this.version = 0;
	data.position = byteArrayOffset;
	var signature = data.readUTFBytes(3);
	data.position = byteArrayOffset;
	if(signature != "ATF") {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("ATF signature not found"));
	}
	var length = 0;
	if(data.get(byteArrayOffset + 6) == 255) {
		this.version = data.get(byteArrayOffset + 7);
		data.position = byteArrayOffset + 8;
		length = this.__readUInt32(data);
	} else {
		this.version = 0;
		data.position = byteArrayOffset + 3;
		length = this.__readUInt24(data);
	}
	if((js_Boot().default).__cast(byteArrayOffset + length , $hxClasses["Int"]) > (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(data)) {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("ATF length exceeds byte array length"));
	}
	this.data = data;
}
// Meta
ATFReader.__name__ = ["openfl","_internal","stage3D","atf","ATFReader"];
ATFReader.prototype = {
	readHeader: function(__width,__height,cubeMap) {
		var tdata = this.data.readUnsignedByte();
		var type = tdata >> 7;
		if(!cubeMap && type != 0) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("ATF Cube map not expected"));
		}
		if(cubeMap && type != 1) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("ATF Cube map expected"));
		}
		this.cubeMap = cubeMap;
		this.atfFormat = tdata & 127;
		if(this.atfFormat != 3 && this.atfFormat != 5) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Only ATF block compressed textures without JPEG-XR+LZMA are supported"));
		}
		this.width = 1 << this.data.readUnsignedByte();
		this.height = 1 << this.data.readUnsignedByte();
		if(this.width != __width || this.height != __height) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("ATF width and height dont match"));
		}
		this.mipCount = this.data.readUnsignedByte();
		return this.atfFormat == 5;
	},
	readTextures: function(uploadCallback) {
		var gpuFormats = this.version < 3 ? 3 : 4;
		var sideCount = this.cubeMap ? 6 : 1;
		var _g1 = 0;
		var _g = sideCount;
		while(_g1 < _g) {
			var side = _g1++;
			var _g3 = 0;
			var _g2 = this.mipCount;
			while(_g3 < _g2) {
				var level = _g3++;
				var _g5 = 0;
				var _g4 = gpuFormats;
				while(_g5 < _g4) {
					var gpuFormat = _g5++;
					var blockLength = this.version == 0 ? this.__readUInt24(this.data) : this.__readUInt32(this.data);
					if((_$UInt_UInt_$Impl_$().default).gt(this.data.position + blockLength,(openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.data))) {
						throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Block length exceeds ATF file length"));
					}
					if((_$UInt_UInt_$Impl_$().default).gt(blockLength,0)) {
						var bytes = (haxe_io_Bytes().default).alloc(blockLength);
						this.data.readBytes((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(bytes),0,blockLength);
						uploadCallback(side,level,gpuFormat,this.width >> level,this.height >> level,blockLength,bytes);
					}
				}
			}
		}
	},
	__readUInt24: function(data) {
		var value = data.readUnsignedByte() << 16;
		value = value | data.readUnsignedByte() << 8;
		value = value | data.readUnsignedByte();
		return value;
	},
	__readUInt32: function(data) {
		var value = data.readUnsignedByte() << 24;
		value = value | data.readUnsignedByte() << 16;
		value = value | data.readUnsignedByte() << 8;
		value = value | data.readUnsignedByte();
		return value;
	}
};
ATFReader.prototype.__class__ = $hxClasses["openfl._internal.stage3D.atf.ATFReader"] = ATFReader;
// Init
// Statics
// Export
exports.default = ATFReader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 216 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.IndexBuffer3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_opengl_GLIndexBuffer3D() {return __webpack_require__(400);}
// Constructor
var IndexBuffer3D = function(context3D,numIndices,bufferUsage) {
	this.__context = context3D;
	this.__numIndices = numIndices;
	(openfl__$internal_stage3D_opengl_GLIndexBuffer3D().default).create(this,this.__context.__renderSession,bufferUsage);
}
// Meta
IndexBuffer3D.__name__ = ["openfl","display3D","IndexBuffer3D"];
IndexBuffer3D.prototype = {
	dispose: function() {
		(openfl__$internal_stage3D_opengl_GLIndexBuffer3D().default).dispose(this,this.__context.__renderSession);
	},
	uploadFromByteArray: function(data,byteArrayOffset,startOffset,count) {
		(openfl__$internal_stage3D_opengl_GLIndexBuffer3D().default).uploadFromByteArray(this,this.__context.__renderSession,data,byteArrayOffset,startOffset,count);
	},
	uploadFromTypedArray: function(data,byteLength) {
		if(byteLength == null) {
			byteLength = -1;
		}
		(openfl__$internal_stage3D_opengl_GLIndexBuffer3D().default).uploadFromTypedArray(this,this.__context.__renderSession,data);
	},
	uploadFromVector: function(data,startOffset,count) {
		(openfl__$internal_stage3D_opengl_GLIndexBuffer3D().default).uploadFromVector(this,this.__context.__renderSession,data,startOffset,count);
	}
};
IndexBuffer3D.prototype.__class__ = $hxClasses["openfl.display3D.IndexBuffer3D"] = IndexBuffer3D;
// Init
// Statics
// Export
exports.default = IndexBuffer3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 217 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLProgram3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
function openfl__$internal_stage3D_AGALConverter() {return __webpack_require__(83);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
function List() {return __webpack_require__(48);}
function openfl_display3D_Uniform() {return __webpack_require__(407);}
function StringTools() {return __webpack_require__(12);}
function Std() {return __webpack_require__(4);}
function lime_utils_Log() {return __webpack_require__(23);}
function haxe_Log() {return __webpack_require__(47);}
function Lambda() {return __webpack_require__(408);}
function openfl_display3D_UniformMap() {return __webpack_require__(409);}
function openfl_errors_Error() {return __webpack_require__(30);}
// Constructor
var GLProgram3D = function(){}
// Meta
GLProgram3D.__name__ = ["openfl","_internal","stage3D","opengl","GLProgram3D"];
GLProgram3D.prototype = {
	
};
GLProgram3D.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLProgram3D"] = GLProgram3D;
// Init
// Statics
GLProgram3D.dispose = function(program,renderSession) {
	GLProgram3D.program = program;
	GLProgram3D.renderSession = renderSession;
	GLProgram3D.__deleteShaders();
}
GLProgram3D.flushUniform = function(uniform,gl) {
	var index = uniform.regIndex * 4;
	var _g = uniform.type;
	switch(_g) {
	case 35664:
		gl.uniform2fv(uniform.location,uniform.regCount,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(GLProgram3D.__getUniformRegisters(uniform,index,uniform.regCount * 2)));
		break;
	case 35665:
		gl.uniform3fv(uniform.location,uniform.regCount,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(GLProgram3D.__getUniformRegisters(uniform,index,uniform.regCount * 3)));
		break;
	case 35666:
		gl.uniform4fv(uniform.location,uniform.regCount,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(GLProgram3D.__getUniformRegisters(uniform,index,uniform.regCount * 4)));
		break;
	case 35674:
		gl.uniformMatrix2fv(uniform.location,uniform.size,false,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(GLProgram3D.__getUniformRegisters(uniform,index,uniform.size * 2 * 2)));
		break;
	case 35675:
		gl.uniformMatrix3fv(uniform.location,uniform.size,false,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(GLProgram3D.__getUniformRegisters(uniform,index,uniform.size * 3 * 3)));
		break;
	case 35676:
		gl.uniformMatrix4fv(uniform.location,uniform.size,false,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(GLProgram3D.__getUniformRegisters(uniform,index,uniform.size * 4 * 4)));
		break;
	default:
		gl.uniform4fv(uniform.location,uniform.regCount,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(GLProgram3D.__getUniformRegisters(uniform,index,uniform.regCount * 4)));
	}
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLProgram3D.setPositionScale = function(program,renderSession,positionScale) {
	var gl = renderSession.gl;
	gl.uniform4fv(program.__positionScale.location,1,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(positionScale));
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLProgram3D.upload = function(program,renderSession,vertexProgram,fragmentProgram) {
	GLProgram3D.program = program;
	GLProgram3D.renderSession = renderSession;
	var samplerStates = [];
	var glslVertex = (openfl__$internal_stage3D_AGALConverter().default).convertToGLSL(vertexProgram,null);
	var glslFragment = (openfl__$internal_stage3D_AGALConverter().default).convertToGLSL(fragmentProgram,samplerStates);
	GLProgram3D.__uploadFromGLSL(glslVertex,glslFragment);
	var _g1 = 0;
	var _g = samplerStates.length;
	while(_g1 < _g) {
		var i = _g1++;
		program.__samplerStates.set(i,samplerStates[i]);
	}
}
GLProgram3D.use = function(program,renderSession) {
	var gl = renderSession.gl;
	gl.useProgram(program.__programID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	program.__vertexUniformMap.markAllDirty();
	program.__fragmentUniformMap.markAllDirty();
	var sampler = program.__samplerUniforms.iterator();
	while(sampler.hasNext()) {
		var sampler1 = sampler.next();
		if(sampler1.regCount == 1) {
			gl.uniform1i(sampler1.location,sampler1.regIndex);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		} else {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("!!! TODO: uniform location on webgl"));
		}
	}
	var sampler2 = program.__alphaSamplerUniforms.iterator();
	while(sampler2.hasNext()) {
		var sampler3 = sampler2.next();
		if(sampler3.regCount == 1) {
			gl.uniform1i(sampler3.location,sampler3.regIndex);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		} else {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("!!! TODO: uniform location on webgl"));
		}
	}
}
GLProgram3D.__buildUniformList = function() {
	var gl = GLProgram3D.renderSession.gl;
	GLProgram3D.program.__uniforms.clear();
	GLProgram3D.program.__samplerUniforms.clear();
	GLProgram3D.program.__alphaSamplerUniforms.clear();
	GLProgram3D.program.__alphaSamplerEnabled = [];
	GLProgram3D.program.__samplerUsageMask = 0;
	var numActive = 0;
	numActive = gl.getProgramParameter(GLProgram3D.program.__programID,gl.ACTIVE_UNIFORMS);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var vertexUniforms = new (List().default)();
	var fragmentUniforms = new (List().default)();
	var _g1 = 0;
	var _g = numActive;
	while(_g1 < _g) {
		var i = _g1++;
		var info = gl.getActiveUniform(GLProgram3D.program.__programID,i);
		var name = info.name;
		var size = info.size;
		var uniformType = info.type;
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		var uniform = new (openfl_display3D_Uniform().default)(gl);
		uniform.name = name;
		uniform.size = size;
		uniform.type = uniformType;
		uniform.location = gl.getUniformLocation(GLProgram3D.program.__programID,uniform.name);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		var indexBracket = uniform.name.indexOf("[");
		if(indexBracket >= 0) {
			uniform.name = uniform.name.substring(0,indexBracket);
		}
		var _g2 = uniform.type;
		switch(_g2) {
		case 35674:
			uniform.regCount = 2;
			break;
		case 35675:
			uniform.regCount = 3;
			break;
		case 35676:
			uniform.regCount = 4;
			break;
		default:
			uniform.regCount = 1;
		}
		uniform.regCount *= uniform.size;
		GLProgram3D.program.__uniforms.add(uniform);
		if(uniform.name == "vcPositionScale") {
			GLProgram3D.program.__positionScale = uniform;
		} else if((StringTools().default).startsWith(uniform.name,"vc")) {
			uniform.regIndex = (Std().default).parseInt(uniform.name.substring(2));
			uniform.regData = GLProgram3D.program.__context.__vertexConstants;
			vertexUniforms.add(uniform);
		} else if((StringTools().default).startsWith(uniform.name,"fc")) {
			uniform.regIndex = (Std().default).parseInt(uniform.name.substring(2));
			uniform.regData = GLProgram3D.program.__context.__fragmentConstants;
			fragmentUniforms.add(uniform);
		} else if((StringTools().default).startsWith(uniform.name,"sampler") && uniform.name.indexOf("alpha") == -1) {
			uniform.regIndex = (Std().default).parseInt(uniform.name.substring(7));
			GLProgram3D.program.__samplerUniforms.add(uniform);
			var _g4 = 0;
			var _g3 = uniform.regCount;
			while(_g4 < _g3) {
				var reg = _g4++;
				GLProgram3D.program.__samplerUsageMask |= 1 << uniform.regIndex + reg;
			}
		} else if((StringTools().default).startsWith(uniform.name,"sampler") && (StringTools().default).endsWith(uniform.name,"_alpha")) {
			var len = uniform.name.indexOf("_") - 7;
			uniform.regIndex = (Std().default).parseInt(uniform.name.substring(7,7 + len)) + 4;
			GLProgram3D.program.__alphaSamplerUniforms.add(uniform);
		} else if((StringTools().default).startsWith(uniform.name,"sampler") && (StringTools().default).endsWith(uniform.name,"_alphaEnabled")) {
			uniform.regIndex = (Std().default).parseInt(uniform.name.substring(7));
			GLProgram3D.program.__alphaSamplerEnabled[uniform.regIndex] = uniform;
		}
		if((lime_utils_Log().default).level == 5) {
			(haxe_Log().default).trace("" + i + " name:" + uniform.name + " type:" + uniform.type + " size:" + uniform.size + " location:" + (Std().default).string(uniform.location),{ fileName : "GLProgram3D.hx", lineNumber : 253, className : "openfl._internal.stage3D.opengl.GLProgram3D", methodName : "__buildUniformList"});
		}
	}
	var tmp = (Lambda().default).array(vertexUniforms);
	GLProgram3D.program.__vertexUniformMap = new (openfl_display3D_UniformMap().default)(tmp);
	var tmp1 = (Lambda().default).array(fragmentUniforms);
	GLProgram3D.program.__fragmentUniformMap = new (openfl_display3D_UniformMap().default)(tmp1);
}
GLProgram3D.__deleteShaders = function() {
	var gl = GLProgram3D.renderSession.gl;
	if(GLProgram3D.program.__programID != null) {
		GLProgram3D.program.__programID = null;
	}
	if(GLProgram3D.program.__vertexShaderID != null) {
		gl.deleteShader(GLProgram3D.program.__vertexShaderID);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		GLProgram3D.program.__vertexShaderID = null;
	}
	if(GLProgram3D.program.__fragmentShaderID != null) {
		gl.deleteShader(GLProgram3D.program.__fragmentShaderID);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		GLProgram3D.program.__fragmentShaderID = null;
	}
}
GLProgram3D.__getUniformRegisters = function(uniform,index,size) {
	return uniform.regData.subarray(index,index + size);
}
GLProgram3D.__uploadFromGLSL = function(vertexShaderSource,fragmentShaderSource) {
	var gl = GLProgram3D.renderSession.gl;
	GLProgram3D.__deleteShaders();
	if((lime_utils_Log().default).level == 5) {
		(lime_utils_Log().default).info(vertexShaderSource,{ fileName : "GLProgram3D.hx", lineNumber : 328, className : "openfl._internal.stage3D.opengl.GLProgram3D", methodName : "__uploadFromGLSL"});
		(lime_utils_Log().default).info(fragmentShaderSource,{ fileName : "GLProgram3D.hx", lineNumber : 329, className : "openfl._internal.stage3D.opengl.GLProgram3D", methodName : "__uploadFromGLSL"});
	}
	GLProgram3D.program.__vertexSource = vertexShaderSource;
	GLProgram3D.program.__fragmentSource = fragmentShaderSource;
	GLProgram3D.program.__vertexShaderID = gl.createShader(gl.VERTEX_SHADER);
	gl.shaderSource(GLProgram3D.program.__vertexShaderID,vertexShaderSource);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.compileShader(GLProgram3D.program.__vertexShaderID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var shaderCompiled = gl.getShaderParameter(GLProgram3D.program.__vertexShaderID,gl.COMPILE_STATUS);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	if(shaderCompiled == 0) {
		var vertexInfoLog = gl.getShaderInfoLog(GLProgram3D.program.__vertexShaderID);
		if(vertexInfoLog != null && vertexInfoLog.length != 0) {
			(haxe_Log().default).trace("vertex: " + vertexInfoLog,{ fileName : "GLProgram3D.hx", lineNumber : 353, className : "openfl._internal.stage3D.opengl.GLProgram3D", methodName : "__uploadFromGLSL"});
		}
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("Error compiling vertex shader: " + vertexInfoLog));
	}
	GLProgram3D.program.__fragmentShaderID = gl.createShader(gl.FRAGMENT_SHADER);
	gl.shaderSource(GLProgram3D.program.__fragmentShaderID,fragmentShaderSource);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.compileShader(GLProgram3D.program.__fragmentShaderID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var fragmentCompiled = gl.getShaderParameter(GLProgram3D.program.__fragmentShaderID,gl.COMPILE_STATUS);
	if(fragmentCompiled == 0) {
		var fragmentInfoLog = gl.getShaderInfoLog(GLProgram3D.program.__fragmentShaderID);
		if(fragmentInfoLog != null && fragmentInfoLog.length != 0) {
			(haxe_Log().default).trace("fragment: " + fragmentInfoLog,{ fileName : "GLProgram3D.hx", lineNumber : 376, className : "openfl._internal.stage3D.opengl.GLProgram3D", methodName : "__uploadFromGLSL"});
		}
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("Error compiling fragment shader: " + fragmentInfoLog));
	}
	GLProgram3D.program.__programID = gl.createProgram();
	gl.attachShader(GLProgram3D.program.__programID,GLProgram3D.program.__vertexShaderID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.attachShader(GLProgram3D.program.__programID,GLProgram3D.program.__fragmentShaderID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var _g = 0;
	while(_g < 16) {
		var i = _g++;
		var name = "va" + i;
		if(vertexShaderSource.indexOf(" " + name) != -1) {
			gl.bindAttribLocation(GLProgram3D.program.__programID,i,name);
		}
	}
	gl.linkProgram(GLProgram3D.program.__programID);
	var infoLog = gl.getProgramInfoLog(GLProgram3D.program.__programID);
	if(infoLog != null && infoLog.length != 0 && (StringTools().default).trim(infoLog) != "") {
		(haxe_Log().default).trace("program: " + infoLog,{ fileName : "GLProgram3D.hx", lineNumber : 409, className : "openfl._internal.stage3D.opengl.GLProgram3D", methodName : "__uploadFromGLSL"});
	}
	GLProgram3D.__buildUniformList();
}
// Export
exports.default = GLProgram3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 218 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: openfl._internal.stage3D._AGALConverter.RegisterUsage
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var RegisterUsage = $hxClasses["openfl._internal.stage3D._AGALConverter.RegisterUsage"] = { __ename__: ["openfl","_internal","stage3D","_AGALConverter","RegisterUsage"], __constructs__: ["UNUSED","VECTOR_4","MATRIX_4_4","SAMPLER_2D","SAMPLER_2D_ALPHA","SAMPLER_CUBE","SAMPLER_CUBE_ALPHA","VECTOR_4_ARRAY"] }
RegisterUsage.SAMPLER_2D = ["SAMPLER_2D",3];
RegisterUsage.SAMPLER_2D.toString = $estr;
RegisterUsage.SAMPLER_2D.__enum__ = RegisterUsage;
RegisterUsage.SAMPLER_CUBE_ALPHA = ["SAMPLER_CUBE_ALPHA",6];
RegisterUsage.SAMPLER_CUBE_ALPHA.toString = $estr;
RegisterUsage.SAMPLER_CUBE_ALPHA.__enum__ = RegisterUsage;
RegisterUsage.SAMPLER_CUBE = ["SAMPLER_CUBE",5];
RegisterUsage.SAMPLER_CUBE.toString = $estr;
RegisterUsage.SAMPLER_CUBE.__enum__ = RegisterUsage;
RegisterUsage.UNUSED = ["UNUSED",0];
RegisterUsage.UNUSED.toString = $estr;
RegisterUsage.UNUSED.__enum__ = RegisterUsage;
RegisterUsage.VECTOR_4 = ["VECTOR_4",1];
RegisterUsage.VECTOR_4.toString = $estr;
RegisterUsage.VECTOR_4.__enum__ = RegisterUsage;
RegisterUsage.SAMPLER_2D_ALPHA = ["SAMPLER_2D_ALPHA",4];
RegisterUsage.SAMPLER_2D_ALPHA.toString = $estr;
RegisterUsage.SAMPLER_2D_ALPHA.__enum__ = RegisterUsage;
RegisterUsage.MATRIX_4_4 = ["MATRIX_4_4",2];
RegisterUsage.MATRIX_4_4.toString = $estr;
RegisterUsage.MATRIX_4_4.__enum__ = RegisterUsage;
RegisterUsage.VECTOR_4_ARRAY = ["VECTOR_4_ARRAY",7];
RegisterUsage.VECTOR_4_ARRAY.toString = $estr;
RegisterUsage.VECTOR_4_ARRAY.__enum__ = RegisterUsage;
exports.default = RegisterUsage;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 219 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.VertexBuffer3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_opengl_GLVertexBuffer3D() {return __webpack_require__(410);}
// Constructor
var VertexBuffer3D = function(context3D,numVertices,dataPerVertex,bufferUsage) {
	this.__context = context3D;
	this.__numVertices = numVertices;
	this.__vertexSize = dataPerVertex;
	(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).create(this,this.__context.__renderSession,bufferUsage);
}
// Meta
VertexBuffer3D.__name__ = ["openfl","display3D","VertexBuffer3D"];
VertexBuffer3D.prototype = {
	dispose: function() {
		(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).dispose(this,this.__context.__renderSession);
	},
	uploadFromByteArray: function(data,byteArrayOffset,startVertex,numVertices) {
		(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).uploadFromByteArray(this,this.__context.__renderSession,data,byteArrayOffset,startVertex,numVertices);
	},
	uploadFromTypedArray: function(data,byteLength) {
		if(byteLength == null) {
			byteLength = -1;
		}
		(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).uploadFromTypedArray(this,this.__context.__renderSession,data);
	},
	uploadFromVector: function(data,startVertex,numVertices) {
		(openfl__$internal_stage3D_opengl_GLVertexBuffer3D().default).uploadFromVector(this,this.__context.__renderSession,data,startVertex,numVertices);
	}
};
VertexBuffer3D.prototype.__class__ = $hxClasses["openfl.display3D.VertexBuffer3D"] = VertexBuffer3D;
// Init
// Statics
// Export
exports.default = VertexBuffer3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 220 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.UncaughtErrorEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_ErrorEvent() {return __webpack_require__(60);}
// Constructor
var UncaughtErrorEvent = function(type,bubbles,cancelable,error) {
	if(cancelable == null) {
		cancelable = true;
	}
	if(bubbles == null) {
		bubbles = true;
	}
	(openfl_events_ErrorEvent().default).call(this,type,bubbles,cancelable);
	this.error = error;
}
// Meta
UncaughtErrorEvent.__name__ = ["openfl","events","UncaughtErrorEvent"];
UncaughtErrorEvent.__super__ = (openfl_events_ErrorEvent().default);
UncaughtErrorEvent.prototype = $extend((openfl_events_ErrorEvent().default).prototype, {
	clone: function() {
		var event = new UncaughtErrorEvent(this.type,this.bubbles,this.cancelable,this.error);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("UncaughtErrorEvent",["type","bubbles","cancelable","error"]);
	}
});
UncaughtErrorEvent.prototype.__class__ = $hxClasses["openfl.events.UncaughtErrorEvent"] = UncaughtErrorEvent;
// Init
// Statics
UncaughtErrorEvent.UNCAUGHT_ERROR = "uncaughtError"
// Export
exports.default = UncaughtErrorEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 221 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.ui.Keyboard
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var Keyboard = function(){}
// Meta
Keyboard.__name__ = ["openfl","ui","Keyboard"];
Keyboard.prototype = {
	
};
Keyboard.prototype.__class__ = $hxClasses["openfl.ui.Keyboard"] = Keyboard;
// Init
// Statics
Keyboard.isAccessible = function() {
	return false;
}
Keyboard.__convertKeyCode = function(key) {
	switch(key) {
	case 8:
		return 8;
	case 9:
		return 9;
	case 13:
		return 13;
	case 27:
		return 27;
	case 32:
		return 32;
	case 33:
		return 49;
	case 34:
		return 222;
	case 35:
		return 51;
	case 36:
		return 52;
	case 37:
		return 53;
	case 38:
		return 55;
	case 39:
		return 222;
	case 40:
		return 57;
	case 41:
		return 48;
	case 42:
		return 56;
	case 44:
		return 188;
	case 45:
		return 189;
	case 46:
		return 190;
	case 47:
		return 191;
	case 48:
		return 48;
	case 49:
		return 49;
	case 50:
		return 50;
	case 51:
		return 51;
	case 52:
		return 52;
	case 53:
		return 53;
	case 54:
		return 54;
	case 55:
		return 55;
	case 56:
		return 56;
	case 57:
		return 57;
	case 58:
		return 186;
	case 59:
		return 186;
	case 60:
		return 60;
	case 61:
		return 187;
	case 62:
		return 190;
	case 63:
		return 191;
	case 64:
		return 50;
	case 91:
		return 219;
	case 92:
		return 220;
	case 93:
		return 221;
	case 94:
		return 54;
	case 95:
		return 189;
	case 96:
		return 192;
	case 97:
		return 65;
	case 98:
		return 66;
	case 99:
		return 67;
	case 100:
		return 68;
	case 101:
		return 69;
	case 102:
		return 70;
	case 103:
		return 71;
	case 104:
		return 72;
	case 105:
		return 73;
	case 106:
		return 74;
	case 107:
		return 75;
	case 108:
		return 76;
	case 109:
		return 77;
	case 110:
		return 78;
	case 111:
		return 79;
	case 112:
		return 80;
	case 113:
		return 81;
	case 114:
		return 82;
	case 115:
		return 83;
	case 116:
		return 84;
	case 117:
		return 85;
	case 118:
		return 86;
	case 119:
		return 87;
	case 120:
		return 88;
	case 121:
		return 89;
	case 122:
		return 90;
	case 127:
		return 46;
	case 1073741881:
		return 20;
	case 1073741882:
		return 112;
	case 1073741883:
		return 113;
	case 1073741884:
		return 114;
	case 1073741885:
		return 115;
	case 1073741886:
		return 116;
	case 1073741887:
		return 117;
	case 1073741888:
		return 118;
	case 1073741889:
		return 119;
	case 1073741890:
		return 120;
	case 1073741891:
		return 121;
	case 1073741892:
		return 122;
	case 1073741893:
		return 123;
	case 1073741894:
		return 301;
	case 1073741895:
		return 145;
	case 1073741896:
		return 19;
	case 1073741897:
		return 45;
	case 1073741898:
		return 36;
	case 1073741899:
		return 33;
	case 1073741901:
		return 35;
	case 1073741902:
		return 34;
	case 1073741903:
		return 39;
	case 1073741904:
		return 37;
	case 1073741905:
		return 40;
	case 1073741906:
		return 38;
	case 1073741907:
		return 144;
	case 1073741908:
		return 111;
	case 1073741909:
		return 106;
	case 1073741910:
		return 109;
	case 1073741911:
		return 107;
	case 1073741912:
		return 108;
	case 1073741913:
		return 97;
	case 1073741914:
		return 98;
	case 1073741915:
		return 99;
	case 1073741916:
		return 100;
	case 1073741917:
		return 101;
	case 1073741918:
		return 102;
	case 1073741919:
		return 103;
	case 1073741920:
		return 104;
	case 1073741921:
		return 105;
	case 1073741922:
		return 96;
	case 1073741923:
		return 110;
	case 1073741925:
		return 302;
	case 1073741928:
		return 124;
	case 1073741929:
		return 125;
	case 1073741930:
		return 126;
	case 1073741982:
		return 13;
	case 1073742044:
		return 110;
	case 1073742048:
		return 17;
	case 1073742049:
		return 16;
	case 1073742050:
		return 18;
	case 1073742051:
		return 15;
	case 1073742052:
		return 17;
	case 1073742053:
		return 16;
	case 1073742054:
		return 18;
	case 1073742055:
		return 15;
	default:
		return key;
	}
}
Keyboard.__getCharCode = function(key,shift) {
	if(shift == null) {
		shift = false;
	}
	if(!shift) {
		switch(key) {
		case 8:
			return 8;
		case 9:
			return 9;
		case 13:
			return 13;
		case 27:
			return 27;
		case 32:
			return 32;
		case 186:
			return 59;
		case 187:
			return 61;
		case 188:
			return 44;
		case 189:
			return 45;
		case 190:
			return 46;
		case 191:
			return 47;
		case 192:
			return 96;
		case 219:
			return 91;
		case 220:
			return 92;
		case 221:
			return 93;
		case 222:
			return 39;
		}
		if(key >= 48 && key <= 57) {
			return key - 48 + 48;
		}
		if(key >= 65 && key <= 90) {
			return key - 65 + 97;
		}
	} else {
		switch(key) {
		case 48:
			return 41;
		case 49:
			return 33;
		case 50:
			return 64;
		case 51:
			return 35;
		case 52:
			return 36;
		case 53:
			return 37;
		case 54:
			return 94;
		case 55:
			return 38;
		case 56:
			return 42;
		case 57:
			return 40;
		case 186:
			return 58;
		case 187:
			return 43;
		case 188:
			return 60;
		case 189:
			return 95;
		case 190:
			return 62;
		case 191:
			return 63;
		case 192:
			return 126;
		case 219:
			return 123;
		case 220:
			return 124;
		case 221:
			return 125;
		case 222:
			return 34;
		}
		if(key >= 65 && key <= 90) {
			return key - 65 + 65;
		}
	}
	if(key >= 96 && key <= 105) {
		return key - 96 + 48;
	}
	switch(key) {
	case 8:
		return 8;
	case 13:
		return 13;
	case 46:
		return 127;
	case 106:
		return 42;
	case 107:
		return 43;
	case 108:
		return 44;
	case 110:
		return 45;
	case 111:
		return 46;
	}
	return 0;
}
Keyboard.__getKeyLocation = function(key) {
	switch(key) {
	case 1073741908:case 1073741909:case 1073741910:case 1073741911:case 1073741912:case 1073741913:case 1073741914:case 1073741915:case 1073741916:case 1073741917:case 1073741918:case 1073741919:case 1073741920:case 1073741921:case 1073741922:case 1073741923:case 1073742044:
		return 3;
	case 1073742048:case 1073742049:case 1073742050:case 1073742051:
		return 1;
	case 1073742052:case 1073742053:case 1073742054:case 1073742055:
		return 2;
	default:
		return 0;
	}
}
Keyboard.NUMBER_0 = 48
Keyboard.NUMBER_1 = 49
Keyboard.NUMBER_2 = 50
Keyboard.NUMBER_3 = 51
Keyboard.NUMBER_4 = 52
Keyboard.NUMBER_5 = 53
Keyboard.NUMBER_6 = 54
Keyboard.NUMBER_7 = 55
Keyboard.NUMBER_8 = 56
Keyboard.NUMBER_9 = 57
Keyboard.A = 65
Keyboard.B = 66
Keyboard.C = 67
Keyboard.D = 68
Keyboard.E = 69
Keyboard.F = 70
Keyboard.G = 71
Keyboard.H = 72
Keyboard.I = 73
Keyboard.J = 74
Keyboard.K = 75
Keyboard.L = 76
Keyboard.M = 77
Keyboard.N = 78
Keyboard.O = 79
Keyboard.P = 80
Keyboard.Q = 81
Keyboard.R = 82
Keyboard.S = 83
Keyboard.T = 84
Keyboard.U = 85
Keyboard.V = 86
Keyboard.W = 87
Keyboard.X = 88
Keyboard.Y = 89
Keyboard.Z = 90
Keyboard.NUMPAD_0 = 96
Keyboard.NUMPAD_1 = 97
Keyboard.NUMPAD_2 = 98
Keyboard.NUMPAD_3 = 99
Keyboard.NUMPAD_4 = 100
Keyboard.NUMPAD_5 = 101
Keyboard.NUMPAD_6 = 102
Keyboard.NUMPAD_7 = 103
Keyboard.NUMPAD_8 = 104
Keyboard.NUMPAD_9 = 105
Keyboard.NUMPAD_MULTIPLY = 106
Keyboard.NUMPAD_ADD = 107
Keyboard.NUMPAD_ENTER = 108
Keyboard.NUMPAD_SUBTRACT = 109
Keyboard.NUMPAD_DECIMAL = 110
Keyboard.NUMPAD_DIVIDE = 111
Keyboard.F1 = 112
Keyboard.F2 = 113
Keyboard.F3 = 114
Keyboard.F4 = 115
Keyboard.F5 = 116
Keyboard.F6 = 117
Keyboard.F7 = 118
Keyboard.F8 = 119
Keyboard.F9 = 120
Keyboard.F10 = 121
Keyboard.F11 = 122
Keyboard.F12 = 123
Keyboard.F13 = 124
Keyboard.F14 = 125
Keyboard.F15 = 126
Keyboard.BACKSPACE = 8
Keyboard.TAB = 9
Keyboard.ALTERNATE = 18
Keyboard.ENTER = 13
Keyboard.COMMAND = 15
Keyboard.SHIFT = 16
Keyboard.CONTROL = 17
Keyboard.BREAK = 19
Keyboard.CAPS_LOCK = 20
Keyboard.NUMPAD = 21
Keyboard.ESCAPE = 27
Keyboard.SPACE = 32
Keyboard.PAGE_UP = 33
Keyboard.PAGE_DOWN = 34
Keyboard.END = 35
Keyboard.HOME = 36
Keyboard.LEFT = 37
Keyboard.RIGHT = 39
Keyboard.UP = 38
Keyboard.DOWN = 40
Keyboard.INSERT = 45
Keyboard.DELETE = 46
Keyboard.NUMLOCK = 144
Keyboard.SEMICOLON = 186
Keyboard.EQUAL = 187
Keyboard.COMMA = 188
Keyboard.MINUS = 189
Keyboard.PERIOD = 190
Keyboard.SLASH = 191
Keyboard.BACKQUOTE = 192
Keyboard.LEFTBRACKET = 219
Keyboard.BACKSLASH = 220
Keyboard.RIGHTBRACKET = 221
Keyboard.QUOTE = 222
// Export
exports.default = Keyboard;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 222 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.KeyboardEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var KeyboardEvent = function(type,bubbles,cancelable,charCodeValue,keyCodeValue,keyLocationValue,ctrlKeyValue,altKeyValue,shiftKeyValue,controlKeyValue,commandKeyValue) {
	if(commandKeyValue == null) {
		commandKeyValue = false;
	}
	if(controlKeyValue == null) {
		controlKeyValue = false;
	}
	if(shiftKeyValue == null) {
		shiftKeyValue = false;
	}
	if(altKeyValue == null) {
		altKeyValue = false;
	}
	if(ctrlKeyValue == null) {
		ctrlKeyValue = false;
	}
	if(keyCodeValue == null) {
		keyCodeValue = 0;
	}
	if(charCodeValue == null) {
		charCodeValue = 0;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.charCode = charCodeValue;
	this.keyCode = keyCodeValue;
	this.keyLocation = keyLocationValue != null ? keyLocationValue : 0;
	this.ctrlKey = ctrlKeyValue;
	this.altKey = altKeyValue;
	this.shiftKey = shiftKeyValue;
	this.controlKey = controlKeyValue;
	this.commandKey = commandKeyValue;
}
// Meta
KeyboardEvent.__name__ = ["openfl","events","KeyboardEvent"];
KeyboardEvent.__super__ = (openfl_events_Event().default);
KeyboardEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new KeyboardEvent(this.type,this.bubbles,this.cancelable,this.charCode,this.keyCode,this.keyLocation,this.ctrlKey,this.altKey,this.shiftKey,this.controlKey,this.commandKey);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("KeyboardEvent",["type","bubbles","cancelable","charCode","keyCode","keyLocation","ctrlKey","altKey","shiftKey"]);
	}
});
KeyboardEvent.prototype.__class__ = $hxClasses["openfl.events.KeyboardEvent"] = KeyboardEvent;
// Init
// Statics
KeyboardEvent.KEY_DOWN = "keyDown"
KeyboardEvent.KEY_UP = "keyUp"
// Export
exports.default = KeyboardEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 223 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.ui.Mouse
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_ui_Mouse() {return __webpack_require__(416);}
function lime_ui_MouseCursor() {return __webpack_require__(76);}
// Constructor
var Mouse = function(){}
// Meta
Mouse.__name__ = ["openfl","ui","Mouse"];
Mouse.prototype = {
	
};
Mouse.prototype.__class__ = $hxClasses["openfl.ui.Mouse"] = Mouse;
// Init
Object.defineProperty(Mouse,"cursor",{ get : function() {
	return Mouse.get_cursor();
}, set : function(value) {
	return Mouse.set_cursor(value);
}});
// Statics
Mouse.hide = function() {
	(lime_ui_Mouse().default).hide();
}
Mouse.show = function() {
	(lime_ui_Mouse().default).show();
}
Mouse.get_cursor = function() {
	return Mouse.__cursor;
}
Mouse.set_cursor = function(value) {
	switch(value) {
	case "arrow":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).ARROW);
		break;
	case "button":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).POINTER);
		break;
	case "crosshair":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).CROSSHAIR);
		break;
	case "custom":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).CUSTOM);
		break;
	case "hand":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).MOVE);
		break;
	case "ibeam":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).TEXT);
		break;
	case "resize_nesw":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).RESIZE_NESW);
		break;
	case "resize_ns":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).RESIZE_NS);
		break;
	case "resize_nwse":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).RESIZE_NWSE);
		break;
	case "resize_we":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).RESIZE_WE);
		break;
	case "wait":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).WAIT);
		break;
	case "waitarrow":
		(lime_ui_Mouse().default).set_cursor((lime_ui_MouseCursor().default).WAIT_ARROW);
		break;
	default:
	}
	return Mouse.__cursor = value;
}
Mouse.supportsCursor = true
Mouse.supportsNativeCursor = true
Mouse.__cursor = "auto"
// Export
exports.default = Mouse;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 224 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime._backend.html5.HTML5Mouse
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_app_Application() {return __webpack_require__(63);}
function lime_ui_MouseCursor() {return __webpack_require__(76);}
function Type() {return __webpack_require__(10);}
// Constructor
var HTML5Mouse = function(){}
// Meta
HTML5Mouse.__name__ = ["lime","_backend","html5","HTML5Mouse"];
HTML5Mouse.prototype = {
	
};
HTML5Mouse.prototype.__class__ = $hxClasses["lime._backend.html5.HTML5Mouse"] = HTML5Mouse;
// Init
// Statics
HTML5Mouse.hide = function() {
	if(!HTML5Mouse.__hidden) {
		HTML5Mouse.__hidden = true;
		var _g = 0;
		var _g1 = (lime_app_Application().default).current.get_windows();
		while(_g < _g1.length) {
			var $window = _g1[_g];
			++_g;
			$window.backend.element.style.cursor = "none";
		}
	}
}
HTML5Mouse.show = function() {
	if(HTML5Mouse.__hidden) {
		HTML5Mouse.__hidden = false;
		var cacheValue = HTML5Mouse.__cursor;
		HTML5Mouse.__cursor = null;
		HTML5Mouse.set_cursor(cacheValue);
	}
}
HTML5Mouse.warp = function(x,y,window) {
}
HTML5Mouse.get_cursor = function() {
	if(HTML5Mouse.__cursor == null) {
		return (lime_ui_MouseCursor().default).DEFAULT;
	}
	return HTML5Mouse.__cursor;
}
HTML5Mouse.set_cursor = function(value) {
	if(HTML5Mouse.__cursor != value) {
		if(!HTML5Mouse.__hidden) {
			var _g = 0;
			var _g1 = (lime_app_Application().default).current.get_windows();
			while(_g < _g1.length) {
				var $window = _g1[_g];
				++_g;
				var tmp;
				switch((Type().default).enumIndex(value)) {
				case 0:
					tmp = "default";
					break;
				case 1:
					tmp = "crosshair";
					break;
				case 3:
					tmp = "move";
					break;
				case 4:
					tmp = "pointer";
					break;
				case 5:
					tmp = "nesw-resize";
					break;
				case 6:
					tmp = "ns-resize";
					break;
				case 7:
					tmp = "nwse-resize";
					break;
				case 8:
					tmp = "ew-resize";
					break;
				case 9:
					tmp = "text";
					break;
				case 10:
					tmp = "wait";
					break;
				case 11:
					tmp = "wait";
					break;
				default:
					tmp = "auto";
				}
				$window.backend.element.style.cursor = tmp;
			}
		}
		HTML5Mouse.__cursor = value;
	}
	return HTML5Mouse.__cursor;
}
HTML5Mouse.get_lock = function() {
	return false;
}
HTML5Mouse.set_lock = function(value) {
	return value;
}
// Export
exports.default = HTML5Mouse;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 225 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.FocusEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var FocusEvent = function(type,bubbles,cancelable,relatedObject,shiftKey,keyCode) {
	if(keyCode == null) {
		keyCode = 0;
	}
	if(shiftKey == null) {
		shiftKey = false;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.keyCode = keyCode;
	this.shiftKey = shiftKey;
	this.relatedObject = relatedObject;
}
// Meta
FocusEvent.__name__ = ["openfl","events","FocusEvent"];
FocusEvent.__super__ = (openfl_events_Event().default);
FocusEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new FocusEvent(this.type,this.bubbles,this.cancelable,this.relatedObject,this.shiftKey,this.keyCode);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("FocusEvent",["type","bubbles","cancelable","relatedObject","shiftKey","keyCode"]);
	}
});
FocusEvent.prototype.__class__ = $hxClasses["openfl.events.FocusEvent"] = FocusEvent;
// Init
// Statics
FocusEvent.FOCUS_IN = "focusIn"
FocusEvent.FOCUS_OUT = "focusOut"
FocusEvent.KEY_FOCUS_CHANGE = "keyFocusChange"
FocusEvent.MOUSE_FOCUS_CHANGE = "mouseFocusChange"
// Export
exports.default = FocusEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 226 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Tile
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_ITile() {return __webpack_require__(227);}
function openfl_geom_ColorTransform() {return __webpack_require__(40);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
// Constructor
var Tile = function(id,x,y,scaleX,scaleY,rotation,originX,originY) {
	if(originY == null) {
		originY = 0;
	}
	if(originX == null) {
		originX = 0;
	}
	if(rotation == null) {
		rotation = 0;
	}
	if(scaleY == null) {
		scaleY = 1;
	}
	if(scaleX == null) {
		scaleX = 1;
	}
	if(y == null) {
		y = 0;
	}
	if(x == null) {
		x = 0;
	}
	if(id == null) {
		id = 0;
	}
	this.__id = id;
	this.__matrix = new (openfl_geom_Matrix().default)();
	if(x != 0) {
		this.set_x(x);
	}
	if(y != 0) {
		this.set_y(y);
	}
	if(scaleX != 1) {
		this.set_scaleX(scaleX);
	}
	if(scaleY != 1) {
		this.set_scaleY(scaleY);
	}
	if(rotation != 0) {
		this.set_rotation(rotation);
	}
	this.__originX = originX;
	this.__originY = originY;
	this.__alpha = 1;
	this.__visible = true;
	this.__alphaDirty = true;
	this.__sourceDirty = true;
	this.__transformDirty = true;
	this.__visibleDirty = true;
}
// Meta
Tile.__name__ = ["openfl","display","Tile"];
Tile.__interfaces__ = [(openfl_display_ITile().default)];
Tile.prototype = {
	clone: function() {
		var tile = new Tile(this.__id);
		tile.set_matrix(this.__matrix.clone());
		tile.set_tileset(this.__tileset);
		return tile;
	},
	__setRenderDirty: function() {
		if(this.parent != null) {
			this.parent.__setRenderDirty();
		}
	},
	__updateTileArray: function(position,tileArray,forceUpdate) {
		var cachePosition = tileArray.position;
		tileArray.position = position;
		if(this.__shaderDirty || forceUpdate) {
			tileArray.set_shader(this.__shader);
			this.__shaderDirty = false;
		}
		if(this.__colorTransformDirty || forceUpdate) {
			tileArray.set_colorTransform(this.__colorTransform);
			this.__colorTransformDirty = false;
		}
		if(this.__visibleDirty || forceUpdate) {
			tileArray.set_visible(this.__visible);
			tileArray.__bufferDirty = true;
			this.__visibleDirty = false;
		}
		if(this.__alphaDirty || forceUpdate) {
			tileArray.set_alpha(this.__alpha);
			tileArray.__bufferDirty = true;
			this.__alphaDirty = false;
		}
		if(this.__sourceDirty || forceUpdate) {
			if(this.__rect == null) {
				tileArray.set_id(this.__id);
			} else {
				tileArray.set_rect(this.get_rect());
			}
			tileArray.set_tileset(this.__tileset);
			tileArray.__bufferDirty = true;
			this.__sourceDirty = true;
		}
		if(this.__transformDirty || forceUpdate) {
			if(this.__originX != 0 || this.__originY != 0) {
				Tile.__tempMatrix.setTo(1,0,0,1,-this.__originX,-this.__originY);
				Tile.__tempMatrix.concat(this.__matrix);
				tileArray.set_matrix(Tile.__tempMatrix);
			} else {
				tileArray.set_matrix(this.__matrix);
			}
			tileArray.__bufferDirty = true;
			this.__transformDirty = false;
		}
		tileArray.position = cachePosition;
	},
	get_alpha: function() {
		return this.__alpha;
	},
	set_alpha: function(value) {
		this.__alphaDirty = true;
		this.__setRenderDirty();
		return this.__alpha = value;
	},
	get_colorTransform: function() {
		if(this.__colorTransform == null) {
			this.__colorTransform = new (openfl_geom_ColorTransform().default)();
		}
		return this.__colorTransform;
	},
	set_colorTransform: function(value) {
		if(this.__colorTransform == null) {
			if(value != null) {
				this.__colorTransform = value.__clone();
			}
		} else if(value != null) {
			this.__colorTransform.__copyFrom(value);
		} else {
			this.__colorTransform.__identity();
		}
		this.__colorTransformDirty = true;
		this.__setRenderDirty();
		return value;
	},
	get_id: function() {
		return this.__id;
	},
	set_id: function(value) {
		this.__sourceDirty = true;
		this.__setRenderDirty();
		return this.__id = value;
	},
	get_matrix: function() {
		return this.__matrix;
	},
	set_matrix: function(value) {
		this.__rotation = null;
		this.__scaleX = null;
		this.__scaleY = null;
		this.__transformDirty = true;
		this.__setRenderDirty();
		return this.__matrix = value;
	},
	get_originX: function() {
		return this.__originX;
	},
	set_originX: function(value) {
		this.__transformDirty = true;
		this.__setRenderDirty();
		return this.__originX = value;
	},
	get_originY: function() {
		return this.__originY;
	},
	set_originY: function(value) {
		this.__transformDirty = true;
		this.__setRenderDirty();
		return this.__originY = value;
	},
	get_rect: function() {
		return this.__rect;
	},
	set_rect: function(value) {
		this.__sourceDirty = true;
		this.__setRenderDirty();
		return this.__rect = value;
	},
	get_rotation: function() {
		if(this.__rotation == null) {
			if(this.__matrix.b == 0 && this.__matrix.c == 0) {
				this.__rotation = 0;
				this.__rotationSine = 0;
				this.__rotationCosine = 1;
			} else {
				var radians = Math.atan2(this.__matrix.d,this.__matrix.c) - Math.PI / 2;
				this.__rotation = radians * (180 / Math.PI);
				this.__rotationSine = Math.sin(radians);
				this.__rotationCosine = Math.cos(radians);
			}
		}
		return this.__rotation;
	},
	set_rotation: function(value) {
		if(value != this.__rotation) {
			this.__rotation = value;
			var radians = value * (Math.PI / 180);
			this.__rotationSine = Math.sin(radians);
			this.__rotationCosine = Math.cos(radians);
			var __scaleX = this.get_scaleX();
			var __scaleY = this.get_scaleY();
			this.__matrix.a = this.__rotationCosine * __scaleX;
			this.__matrix.b = this.__rotationSine * __scaleX;
			this.__matrix.c = -this.__rotationSine * __scaleY;
			this.__matrix.d = this.__rotationCosine * __scaleY;
			this.__transformDirty = true;
			this.__setRenderDirty();
		}
		return value;
	},
	get_scaleX: function() {
		if(this.__scaleX == null) {
			if(this.get_matrix().b == 0) {
				this.__scaleX = this.__matrix.a;
			} else {
				this.__scaleX = Math.sqrt(this.__matrix.a * this.__matrix.a + this.__matrix.b * this.__matrix.b);
			}
		}
		return this.__scaleX;
	},
	set_scaleX: function(value) {
		if(this.__scaleX != value) {
			this.__scaleX = value;
			if(this.__matrix.b == 0) {
				this.__matrix.a = value;
			} else {
				var rotation = this.get_rotation();
				var a = this.__rotationCosine * value;
				var b = this.__rotationSine * value;
				this.__matrix.a = a;
				this.__matrix.b = b;
			}
			this.__transformDirty = true;
			this.__setRenderDirty();
		}
		return value;
	},
	get_scaleY: function() {
		if(this.__scaleY == null) {
			if(this.__matrix.c == 0) {
				this.__scaleY = this.get_matrix().d;
			} else {
				this.__scaleY = Math.sqrt(this.__matrix.c * this.__matrix.c + this.__matrix.d * this.__matrix.d);
			}
		}
		return this.__scaleY;
	},
	set_scaleY: function(value) {
		if(this.__scaleY != value) {
			this.__scaleY = value;
			if(this.__matrix.c == 0) {
				this.__matrix.d = value;
			} else {
				var rotation = this.get_rotation();
				var c = -this.__rotationSine * value;
				var d = this.__rotationCosine * value;
				this.__matrix.c = c;
				this.__matrix.d = d;
			}
			this.__transformDirty = true;
			this.__setRenderDirty();
		}
		return value;
	},
	get_shader: function() {
		return this.__shader;
	},
	set_shader: function(value) {
		this.__shaderDirty = true;
		this.__setRenderDirty();
		return this.__shader = value;
	},
	get_tileset: function() {
		return this.__tileset;
	},
	set_tileset: function(value) {
		this.__sourceDirty = true;
		this.__setRenderDirty();
		return this.__tileset = value;
	},
	get_visible: function() {
		return this.__visible;
	},
	set_visible: function(value) {
		this.__visibleDirty = true;
		this.__setRenderDirty();
		return this.__visible = value;
	},
	get_x: function() {
		return this.__matrix.tx;
	},
	set_x: function(value) {
		this.__transformDirty = true;
		this.__setRenderDirty();
		return this.__matrix.tx = value;
	},
	get_y: function() {
		return this.__matrix.ty;
	},
	set_y: function(value) {
		this.__transformDirty = true;
		this.__setRenderDirty();
		return this.__matrix.ty = value;
	}
};
Tile.prototype.__class__ = $hxClasses["openfl.display.Tile"] = Tile;
// Init
Object.defineProperties(Tile.prototype,{ "alpha" : { get : function () { return this.get_alpha (); }, set : function (v) { return this.set_alpha (v); }}, "colorTransform" : { get : function () { return this.get_colorTransform (); }, set : function (v) { return this.set_colorTransform (v); }}, "id" : { get : function () { return this.get_id (); }, set : function (v) { return this.set_id (v); }}, "matrix" : { get : function () { return this.get_matrix (); }, set : function (v) { return this.set_matrix (v); }}, "originX" : { get : function () { return this.get_originX (); }, set : function (v) { return this.set_originX (v); }}, "originY" : { get : function () { return this.get_originY (); }, set : function (v) { return this.set_originY (v); }}, "rect" : { get : function () { return this.get_rect (); }, set : function (v) { return this.set_rect (v); }}, "rotation" : { get : function () { return this.get_rotation (); }, set : function (v) { return this.set_rotation (v); }}, "scaleX" : { get : function () { return this.get_scaleX (); }, set : function (v) { return this.set_scaleX (v); }}, "scaleY" : { get : function () { return this.get_scaleY (); }, set : function (v) { return this.set_scaleY (v); }}, "shader" : { get : function () { return this.get_shader (); }, set : function (v) { return this.set_shader (v); }}, "tileset" : { get : function () { return this.get_tileset (); }, set : function (v) { return this.set_tileset (v); }}, "visible" : { get : function () { return this.get_visible (); }, set : function (v) { return this.set_visible (v); }}, "x" : { get : function () { return this.get_x (); }, set : function (v) { return this.set_x (v); }}, "y" : { get : function () { return this.get_y (); }, set : function (v) { return this.set_y (v); }}});
// Statics
Tile.__fromTileArray = function(position,tileArray) {
	var cachePosition = tileArray.position;
	tileArray.position = position;
	var tile = new Tile();
	tile.set_alpha(tileArray.get_alpha());
	tile.set_id(tileArray.get_id());
	tileArray.set_matrix(tile.get_matrix());
	tileArray.position = cachePosition;
	return tile;
}
Tile.__tempMatrix = new (openfl_geom_Matrix().default)()
// Export
exports.default = Tile;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 227 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.ITile
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var ITile = function() {}
// Meta
ITile.__name__ = ["openfl","display","ITile"];
ITile.prototype = {
	
};
ITile.prototype.__class__ = $hxClasses["openfl.display.ITile"] = ITile;
// Init
// Statics
// Export
exports.default = ITile;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 228 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.TileArray
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display_ITile() {return __webpack_require__(227);}
function openfl_display__$TileArray_TileArrayIterator() {return __webpack_require__(426);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl_geom_ColorTransform() {return __webpack_require__(40);}
function Std() {return __webpack_require__(4);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
// Constructor
var TileArray = function(length) {
	if(length == null) {
		length = 0;
	}
	this.__cacheAlpha = -1;
	this.__data = (openfl__$Vector_Vector_$Impl_$().default)._new(length * 21);
	this.__dirty = (openfl__$Vector_Vector_$Impl_$().default)._new(length * 5);
	this.__shaders = (openfl__$Vector_Vector_$Impl_$().default)._new(length);
	this.__tilesets = (openfl__$Vector_Vector_$Impl_$().default)._new(length);
	this.__visible = (openfl__$Vector_Vector_$Impl_$().default)._new(length);
	this.__length = length;
}
// Meta
TileArray.__name__ = ["openfl","display","TileArray"];
TileArray.__interfaces__ = [(openfl_display_ITile().default)];
TileArray.prototype = {
	iterator: function() {
		return new (openfl_display__$TileArray_TileArrayIterator().default)(this);
	},
	__init: function(position) {
		this.position = position;
		this.set_alpha(1);
		this.set_colorTransform(null);
		this.set_id(0);
		this.set_matrix(null);
		this.set_tileset(null);
		this.set_visible(true);
		this.__dirty.set(4 + position * 5,true);
	},
	__updateGLBuffer: function(gl,defaultTileset,worldAlpha,defaultColorTransform) {
		var _gthis = this;
		var attributeLength = 25;
		var stride = attributeLength * 6;
		var bufferLength = this.__length * stride;
		if(this.__bufferData == null) {
			var this1;
			if(bufferLength != null) {
				this1 = new Float32Array(bufferLength);
			} else {
				this1 = null;
			}
			this.__bufferData = this1;
			this.__bufferSkipped = (openfl__$Vector_Vector_$Impl_$().default)._new(this.__length);
			this.__bufferDirty = true;
		} else if(this.__bufferData.length != bufferLength) {
			var this2;
			if(bufferLength != null) {
				this2 = new Float32Array(bufferLength);
			} else {
				this2 = null;
			}
			var data = this2;
			if(this.__bufferData.length <= data.length) {
				data.set(this.__bufferData);
				if(this.__bufferData.length == 0) {
					this.__bufferDirty = true;
				} else {
					var cacheLength = this.__bufferData.length;
					var _g1 = cacheLength;
					var _g = bufferLength;
					while(_g1 < _g) {
						var i = _g1++;
						this.__dirty.set(4 + this.position * 5,true);
					}
				}
			} else {
				data.set(this.__bufferData.subarray(0,data.length));
			}
			this.__bufferData = data;
			this.__bufferSkipped.set_length(this.__length);
			this.__bufferDirty = true;
		}
		if(this.__buffer == null || this.__bufferContext != gl) {
			this.__bufferContext = gl;
			this.__buffer = gl.createBuffer();
		}
		gl.bindBuffer(gl.ARRAY_BUFFER,this.__buffer);
		if(this.__bufferDirty || this.__cacheAlpha != worldAlpha || this.__cacheDefaultTileset != defaultTileset) {
			var tileMatrix;
			var tileColorTransform;
			var tileRect = null;
			var offset = 0;
			var alpha;
			var visible;
			var tileset;
			var tileData;
			var id;
			var bitmapWidth;
			var bitmapHeight;
			var tileWidth;
			var tileHeight;
			var uvX;
			var uvY;
			var uvWidth;
			var uvHeight;
			var x;
			var y;
			var x2;
			var y2;
			var x3;
			var y3;
			var x4;
			var y4;
			var redMultiplier;
			var greenMultiplier;
			var blueMultiplier;
			var alphaMultiplier;
			var redOffset;
			var greenOffset;
			var blueOffset;
			var alphaOffset;
			this.position = 0;
			var __skipTile = function(i1,offset1) {
				var _g2 = 0;
				while(_g2 < 6) {
					var i2 = _g2++;
					_gthis.__bufferData[offset1 + attributeLength * i2 + 4] = 0;
				}
				_gthis.__bufferSkipped.set(i1,true);
			};
			var _g11 = 0;
			var _g3 = this.__length;
			while(_g11 < _g3) {
				var i3 = _g11++;
				this.position = i3;
				offset = i3 * stride;
				alpha = this.get_alpha();
				visible = this.get_visible();
				if(!visible || alpha <= 0) {
					__skipTile(i3,offset);
					continue;
				}
				tileset = this.get_tileset();
				if(tileset == null) {
					tileset = defaultTileset;
				}
				if(tileset == null) {
					__skipTile(i3,offset);
					continue;
				}
				id = this.get_id();
				if(id > -1) {
					if(id >= tileset.__data.length) {
						__skipTile(i3,offset);
						continue;
					}
					tileData = tileset.__data[id];
					if(tileData == null) {
						__skipTile(i3,offset);
						continue;
					}
					tileWidth = tileData.width;
					tileHeight = tileData.height;
					uvX = tileData.__uvX;
					uvY = tileData.__uvY;
					uvWidth = tileData.__uvWidth;
					uvHeight = tileData.__uvHeight;
				} else {
					tileRect = this.get_rect();
					if(tileRect == null) {
						__skipTile(i3,offset);
						continue;
					}
					tileWidth = tileRect.width;
					tileHeight = tileRect.height;
					if(tileWidth <= 0 || tileHeight <= 0) {
						__skipTile(i3,offset);
						continue;
					}
					bitmapWidth = tileset.__bitmapData.width;
					bitmapHeight = tileset.__bitmapData.height;
					uvX = tileRect.x / bitmapWidth;
					uvY = tileRect.y / bitmapHeight;
					uvWidth = tileRect.get_right() / bitmapWidth;
					uvHeight = tileRect.get_bottom() / bitmapHeight;
				}
				tileMatrix = this.get_matrix();
				x = tileMatrix.__transformX(0,0);
				y = tileMatrix.__transformY(0,0);
				x2 = tileMatrix.__transformX(tileWidth,0);
				y2 = tileMatrix.__transformY(tileWidth,0);
				x3 = tileMatrix.__transformX(0,tileHeight);
				y3 = tileMatrix.__transformY(0,tileHeight);
				x4 = tileMatrix.__transformX(tileWidth,tileHeight);
				y4 = tileMatrix.__transformY(tileWidth,tileHeight);
				alpha *= worldAlpha;
				tileColorTransform = this.get_colorTransform();
				tileColorTransform.__combine(defaultColorTransform);
				redMultiplier = tileColorTransform.redMultiplier;
				greenMultiplier = tileColorTransform.greenMultiplier;
				blueMultiplier = tileColorTransform.blueMultiplier;
				alphaMultiplier = tileColorTransform.alphaMultiplier;
				redOffset = tileColorTransform.redOffset;
				greenOffset = tileColorTransform.greenOffset;
				blueOffset = tileColorTransform.blueOffset;
				alphaOffset = tileColorTransform.alphaOffset;
				this.__bufferData[offset] = x;
				this.__bufferData[offset + 1] = y;
				this.__bufferData[offset + 2] = uvX;
				this.__bufferData[offset + 3] = uvY;
				this.__bufferData[offset + attributeLength] = x2;
				this.__bufferData[offset + attributeLength + 1] = y2;
				this.__bufferData[offset + attributeLength + 2] = uvWidth;
				this.__bufferData[offset + attributeLength + 3] = uvY;
				this.__bufferData[offset + attributeLength * 2] = x3;
				this.__bufferData[offset + attributeLength * 2 + 1] = y3;
				this.__bufferData[offset + attributeLength * 2 + 2] = uvX;
				this.__bufferData[offset + attributeLength * 2 + 3] = uvHeight;
				this.__bufferData[offset + attributeLength * 3] = x3;
				this.__bufferData[offset + attributeLength * 3 + 1] = y3;
				this.__bufferData[offset + attributeLength * 3 + 2] = uvX;
				this.__bufferData[offset + attributeLength * 3 + 3] = uvHeight;
				this.__bufferData[offset + attributeLength * 4] = x2;
				this.__bufferData[offset + attributeLength * 4 + 1] = y2;
				this.__bufferData[offset + attributeLength * 4 + 2] = uvWidth;
				this.__bufferData[offset + attributeLength * 4 + 3] = uvY;
				this.__bufferData[offset + attributeLength * 5] = x4;
				this.__bufferData[offset + attributeLength * 5 + 1] = y4;
				this.__bufferData[offset + attributeLength * 5 + 2] = uvWidth;
				this.__bufferData[offset + attributeLength * 5 + 3] = uvHeight;
				var _g21 = 0;
				while(_g21 < 6) {
					var i4 = _g21++;
					this.__bufferData[offset + attributeLength * i4 + 4] = alpha;
					this.__bufferData[offset + attributeLength * i4 + 5] = redMultiplier;
					this.__bufferData[offset + attributeLength * i4 + 10] = greenMultiplier;
					this.__bufferData[offset + attributeLength * i4 + 15] = blueMultiplier;
					this.__bufferData[offset + attributeLength * i4 + 20] = alphaMultiplier;
					this.__bufferData[offset + attributeLength * i4 + 21] = redOffset / 255;
					this.__bufferData[offset + attributeLength * i4 + 22] = greenOffset / 255;
					this.__bufferData[offset + attributeLength * i4 + 23] = blueOffset / 255;
					this.__bufferData[offset + attributeLength * i4 + 24] = alphaOffset / 255;
				}
				this.__bufferSkipped.set(i3,false);
			}
			gl.bufferData(gl.ARRAY_BUFFER,this.__bufferData.byteLength,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(this.__bufferData),gl.DYNAMIC_DRAW);
			this.__cacheAlpha = worldAlpha;
			this.__cacheDefaultTileset = defaultTileset;
			this.__bufferDirty = false;
		}
		return this.__buffer;
	},
	get_alpha: function() {
		return this.__data.get(11 + this.position * 21);
	},
	set_alpha: function(value) {
		this.__dirty.set(2 + this.position * 5,true);
		return this.__data.set(11 + this.position * 21,value);
	},
	get_colorTransform: function() {
		if(this.__colorTransform == null) {
			this.__colorTransform = new (openfl_geom_ColorTransform().default)();
		}
		var i = 12 + this.position * 21;
		var tmp = this.__data.get(i);
		this.__colorTransform.redMultiplier = tmp;
		var tmp1 = this.__data.get(i + 1);
		this.__colorTransform.greenMultiplier = tmp1;
		var tmp2 = this.__data.get(i + 2);
		this.__colorTransform.blueMultiplier = tmp2;
		var tmp3 = this.__data.get(i + 3);
		this.__colorTransform.alphaMultiplier = tmp3;
		var tmp4 = this.__data.get(i + 4);
		this.__colorTransform.redOffset = tmp4;
		var tmp5 = this.__data.get(i + 5);
		this.__colorTransform.greenOffset = tmp5;
		var tmp6 = this.__data.get(i + 6);
		this.__colorTransform.blueOffset = tmp6;
		var tmp7 = this.__data.get(i + 7);
		this.__colorTransform.alphaOffset = tmp7;
		return this.__colorTransform;
	},
	set_colorTransform: function(value) {
		var i = 12 + this.position * 21;
		if(value != null) {
			this.__data.set(i,value.redMultiplier);
			this.__data.set(i + 1,value.greenMultiplier);
			this.__data.set(i + 2,value.blueMultiplier);
			this.__data.set(i + 3,value.alphaMultiplier);
			this.__data.set(i + 4,value.redOffset);
			this.__data.set(i + 5,value.greenOffset);
			this.__data.set(i + 6,value.blueOffset);
			this.__data.set(i + 7,value.alphaOffset);
		} else {
			this.__data.set(i,1);
			this.__data.set(i + 1,1);
			this.__data.set(i + 2,1);
			this.__data.set(i + 3,1);
			this.__data.set(i + 4,0);
			this.__data.set(i + 5,0);
			this.__data.set(i + 6,0);
			this.__data.set(i + 7,0);
		}
		this.__dirty.set(3 + this.position * 5,true);
		return value;
	},
	get_id: function() {
		return (Std().default)["int"](this.__data.get(this.position * 21));
	},
	set_id: function(value) {
		this.__dirty.set(this.position * 5,true);
		this.__data.set(this.position * 21,value);
		return value;
	},
	get_length: function() {
		return this.__length;
	},
	set_length: function(value) {
		this.__data.set_length(value * 21);
		this.__dirty.set_length(value * 5);
		this.__shaders.set_length(value);
		this.__tilesets.set_length(value);
		this.__visible.set_length(value);
		if(value > this.__length) {
			var cachePosition = this.position;
			var _g1 = this.__length;
			var _g = value;
			while(_g1 < _g) {
				var i = _g1++;
				this.__init(i);
			}
			this.position = cachePosition;
		}
		this.__length = value;
		return value;
	},
	get_matrix: function() {
		if(this.__matrix == null) {
			this.__matrix = new (openfl_geom_Matrix().default)();
		}
		var i = 5 + this.position * 21;
		var tmp = this.__data.get(i);
		this.__matrix.a = tmp;
		var tmp1 = this.__data.get(i + 1);
		this.__matrix.b = tmp1;
		var tmp2 = this.__data.get(i + 2);
		this.__matrix.c = tmp2;
		var tmp3 = this.__data.get(i + 3);
		this.__matrix.d = tmp3;
		var tmp4 = this.__data.get(i + 4);
		this.__matrix.tx = tmp4;
		var tmp5 = this.__data.get(i + 5);
		this.__matrix.ty = tmp5;
		return this.__matrix;
	},
	set_matrix: function(value) {
		var i = 5 + this.position * 21;
		if(value != null) {
			this.__data.set(i,value.a);
			this.__data.set(i + 1,value.b);
			this.__data.set(i + 2,value.c);
			this.__data.set(i + 3,value.d);
			this.__data.set(i + 4,value.tx);
			this.__data.set(i + 5,value.ty);
		} else {
			this.__data.set(i,1);
			this.__data.set(i + 1,0);
			this.__data.set(i + 2,0);
			this.__data.set(i + 3,1);
			this.__data.set(i + 4,0);
			this.__data.set(i + 5,0);
		}
		this.__dirty.set(1 + this.position * 5,true);
		return value;
	},
	get_rect: function() {
		if(this.__rect == null) {
			this.__rect = new (openfl_geom_Rectangle().default)();
		}
		var i = 1 + this.position * 21;
		var tmp = this.__data.get(i);
		this.__rect.x = tmp;
		var tmp1 = this.__data.get(i + 1);
		this.__rect.y = tmp1;
		var tmp2 = this.__data.get(i + 2);
		this.__rect.width = tmp2;
		var tmp3 = this.__data.get(i + 3);
		this.__rect.height = tmp3;
		return this.__rect;
	},
	set_rect: function(value) {
		if(value != null) {
			this.__data.set(this.position * 21,-1);
			var i = 1 + this.position * 21;
			this.__data.set(i,value.x);
			this.__data.set(i + 1,value.y);
			this.__data.set(i + 2,value.width);
			this.__data.set(i + 3,value.height);
		} else {
			var i1 = 1 + this.position * 21;
			this.__data.set(i1,0);
			this.__data.set(i1 + 1,0);
			this.__data.set(i1 + 2,0);
			this.__data.set(i1 + 3,0);
		}
		this.__dirty.set(this.position * 5,true);
		return value;
	},
	get_shader: function() {
		return this.__shaders.get(this.position);
	},
	set_shader: function(value) {
		this.__shaders.set(this.position,value);
		return value;
	},
	get_tileset: function() {
		return this.__tilesets.get(this.position);
	},
	set_tileset: function(value) {
		this.__tilesets.set(this.position,value);
		return value;
	},
	get_visible: function() {
		return this.__visible.get(this.position);
	},
	set_visible: function(value) {
		this.__visible.set(this.position,value);
		return value;
	}
};
TileArray.prototype.__class__ = $hxClasses["openfl.display.TileArray"] = TileArray;
// Init
Object.defineProperties(TileArray.prototype,{ "alpha" : { get : function () { return this.get_alpha (); }, set : function (v) { return this.set_alpha (v); }}, "colorTransform" : { get : function () { return this.get_colorTransform (); }, set : function (v) { return this.set_colorTransform (v); }}, "id" : { get : function () { return this.get_id (); }, set : function (v) { return this.set_id (v); }}, "length" : { get : function () { return this.get_length (); }, set : function (v) { return this.set_length (v); }}, "matrix" : { get : function () { return this.get_matrix (); }, set : function (v) { return this.set_matrix (v); }}, "rect" : { get : function () { return this.get_rect (); }, set : function (v) { return this.set_rect (v); }}, "shader" : { get : function () { return this.get_shader (); }, set : function (v) { return this.set_shader (v); }}, "tileset" : { get : function () { return this.get_tileset (); }, set : function (v) { return this.set_tileset (v); }}, "visible" : { get : function () { return this.get_visible (); }, set : function (v) { return this.set_visible (v); }}});
// Statics
TileArray.ID_INDEX = 0
TileArray.RECT_INDEX = 1
TileArray.MATRIX_INDEX = 5
TileArray.ALPHA_INDEX = 11
TileArray.COLOR_TRANSFORM_INDEX = 12
TileArray.DATA_LENGTH = 21
TileArray.SOURCE_DIRTY_INDEX = 0
TileArray.MATRIX_DIRTY_INDEX = 1
TileArray.ALPHA_DIRTY_INDEX = 2
TileArray.COLOR_TRANSFORM_DIRTY_INDEX = 3
TileArray.ALL_DIRTY_INDEX = 4
TileArray.DIRTY_LENGTH = 5
// Export
exports.default = TileArray;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 229 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasTilemap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function Std() {return __webpack_require__(4);}
// Constructor
var CanvasTilemap = function(){}
// Meta
CanvasTilemap.__name__ = ["openfl","_internal","renderer","canvas","CanvasTilemap"];
CanvasTilemap.prototype = {
	
};
CanvasTilemap.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasTilemap"] = CanvasTilemap;
// Init
// Statics
CanvasTilemap.render = function(tilemap,renderSession) {
	if(!tilemap.__renderable || tilemap.__worldAlpha <= 0) {
		return;
	}
	tilemap.__updateTileArray();
	if(tilemap.__tileArray == null || tilemap.__tileArray.get_length() == 0) {
		return;
	}
	var context = renderSession.context;
	renderSession.blendModeManager.setBlendMode(tilemap.__worldBlendMode);
	renderSession.maskManager.pushObject(tilemap);
	var rect = (openfl_geom_Rectangle().default).__pool.get();
	rect.setTo(0,0,tilemap.__width,tilemap.__height);
	renderSession.maskManager.pushRect(rect,tilemap.__renderTransform);
	var transform = tilemap.__renderTransform;
	var roundPixels = renderSession.roundPixels;
	if(!renderSession.allowSmoothing || !tilemap.smoothing) {
		context.mozImageSmoothingEnabled = false;
		context.msImageSmoothingEnabled = false;
		context.imageSmoothingEnabled = false;
	}
	var defaultTileset = tilemap.__tileset;
	var cacheBitmapData = null;
	var source = null;
	var alpha;
	var visible;
	var tileset;
	var id;
	var tileData;
	var bitmapData;
	var tileArray = tilemap.__tileArray;
	var tileTransform;
	var tileRect = (openfl_geom_Rectangle().default).__pool.get();
	var tile = tileArray.iterator();
	while(tile.hasNext()) {
		var tile1 = tile.next();
		alpha = tile1.get_alpha();
		visible = tile1.get_visible();
		if(!visible || alpha <= 0) {
			continue;
		}
		tileset = tile1.get_tileset();
		if(tileset == null) {
			tileset = defaultTileset;
		}
		if(tileset == null) {
			continue;
		}
		id = tile1.get_id();
		if(id == -1) {
			tileRect.copyFrom(tile1.get_rect());
			if(tileRect.width <= 0 || tileRect.height <= 0) {
				continue;
			}
		} else {
			tileData = tileset.__data[id];
			if(tileData == null) {
				continue;
			}
			tileRect.setTo(tileData.x,tileData.y,tileData.width,tileData.height);
		}
		bitmapData = tileset.get_bitmapData();
		if(bitmapData == null || !bitmapData.readable) {
			continue;
		}
		if(bitmapData != cacheBitmapData) {
			if(bitmapData.image.buffer.__srcImage == null) {
				(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(bitmapData.image);
			}
			source = bitmapData.image.get_src();
			cacheBitmapData = bitmapData;
		}
		context.globalAlpha = tilemap.__worldAlpha * alpha;
		tileTransform = tile1.get_matrix();
		tileTransform.concat(transform);
		if(roundPixels) {
			context.setTransform(tileTransform.a,tileTransform.b,tileTransform.c,tileTransform.d,(Std().default)["int"](tileTransform.tx),(Std().default)["int"](tileTransform.ty));
		} else {
			context.setTransform(tileTransform.a,tileTransform.b,tileTransform.c,tileTransform.d,tileTransform.tx,tileTransform.ty);
		}
		context.drawImage(source,tileRect.x,tileRect.y,tileRect.width,tileRect.height,0,0,tileRect.width,tileRect.height);
	}
	if(!renderSession.allowSmoothing || !tilemap.smoothing) {
		context.mozImageSmoothingEnabled = true;
		context.msImageSmoothingEnabled = true;
		context.imageSmoothingEnabled = true;
	}
	renderSession.maskManager.popRect();
	renderSession.maskManager.popObject(tilemap);
	(openfl_geom_Rectangle().default).__pool.release(rect);
	(openfl_geom_Rectangle().default).__pool.release(tileRect);
}
// Export
exports.default = CanvasTilemap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 230 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.errors.SecurityError
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_errors_Error() {return __webpack_require__(30);}
// Constructor
var SecurityError = function(message) {
	if(message == null) {
		message = "";
	}
	(openfl_errors_Error().default).call(this,message,0);
	this.name = "SecurityError";
}
// Meta
SecurityError.__name__ = ["openfl","errors","SecurityError"];
SecurityError.__super__ = (openfl_errors_Error().default);
SecurityError.prototype = $extend((openfl_errors_Error().default).prototype, {
	
});
SecurityError.prototype.__class__ = $hxClasses["openfl.errors.SecurityError"] = SecurityError;
// Init
// Statics
// Export
exports.default = SecurityError;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 231 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.AccelerometerEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var AccelerometerEvent = function(type,bubbles,cancelable,timestamp,accelerationX,accelerationY,accelerationZ) {
	if(accelerationZ == null) {
		accelerationZ = 0;
	}
	if(accelerationY == null) {
		accelerationY = 0;
	}
	if(accelerationX == null) {
		accelerationX = 0;
	}
	if(timestamp == null) {
		timestamp = 0;
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	this.timestamp = timestamp;
	this.accelerationX = accelerationX;
	this.accelerationY = accelerationY;
	this.accelerationZ = accelerationZ;
}
// Meta
AccelerometerEvent.__name__ = ["openfl","events","AccelerometerEvent"];
AccelerometerEvent.__super__ = (openfl_events_Event().default);
AccelerometerEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new AccelerometerEvent(this.type,this.bubbles,this.cancelable,this.timestamp,this.accelerationX,this.accelerationY,this.accelerationZ);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("AccelerometerEvent",["type","bubbles","cancelable","timestamp","accelerationX","accelerationY","accelerationZ"]);
	}
});
AccelerometerEvent.prototype.__class__ = $hxClasses["openfl.events.AccelerometerEvent"] = AccelerometerEvent;
// Init
// Statics
AccelerometerEvent.UPDATE = "update"
// Export
exports.default = AccelerometerEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 232 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.DataEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_TextEvent() {return __webpack_require__(77);}
// Constructor
var DataEvent = function(type,bubbles,cancelable,data) {
	if(data == null) {
		data = "";
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_TextEvent().default).call(this,type,bubbles,cancelable);
	this.data = data;
}
// Meta
DataEvent.__name__ = ["openfl","events","DataEvent"];
DataEvent.__super__ = (openfl_events_TextEvent().default);
DataEvent.prototype = $extend((openfl_events_TextEvent().default).prototype, {
	clone: function() {
		var event = new DataEvent(this.type,this.bubbles,this.cancelable,this.data);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("DataEvent",["type","bubbles","cancelable","data"]);
	}
});
DataEvent.prototype.__class__ = $hxClasses["openfl.events.DataEvent"] = DataEvent;
// Init
// Statics
DataEvent.DATA = "data"
DataEvent.UPLOAD_COMPLETE_DATA = "uploadCompleteData"
// Export
exports.default = DataEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 233 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.TimerEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var TimerEvent = function(type,bubbles,cancelable) {
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
}
// Meta
TimerEvent.__name__ = ["openfl","events","TimerEvent"];
TimerEvent.__super__ = (openfl_events_Event().default);
TimerEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new TimerEvent(this.type,this.bubbles,this.cancelable);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("TimerEvent",["type","bubbles","cancelable"]);
	},
	updateAfterEvent: function() {
	}
});
TimerEvent.prototype.__class__ = $hxClasses["openfl.events.TimerEvent"] = TimerEvent;
// Init
// Statics
TimerEvent.TIMER = "timer"
TimerEvent.TIMER_COMPLETE = "timerComplete"
// Export
exports.default = TimerEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 234 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.FileReference
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl_net_URLLoader() {return __webpack_require__(79);}
function lime_ui_FileDialog() {return __webpack_require__(536);}
function lime_ui_FileDialogType() {return __webpack_require__(235);}
function haxe_io_Path() {return __webpack_require__(80);}
function Std() {return __webpack_require__(4);}
function openfl_utils_ByteArrayData() {return __webpack_require__(45);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
function openfl_events_Event() {return __webpack_require__(9);}
function haxe_Timer() {return __webpack_require__(26);}
// Constructor
var FileReference = function() {
	(openfl_events_EventDispatcher().default).call(this);
}
// Meta
FileReference.__name__ = ["openfl","net","FileReference"];
FileReference.__super__ = (openfl_events_EventDispatcher().default);
FileReference.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	browse: function(typeFilter) {
		this.__data = null;
		this.__path = null;
		return false;
	},
	cancel: function() {
		if(this.__urlLoader != null) {
			this.__urlLoader.close();
		}
	},
	download: function(request,defaultFileName) {
		this.__data = null;
		this.__path = null;
		this.__urlLoader = new (openfl_net_URLLoader().default)();
		this.__urlLoader.addEventListener("complete",$bind(this,this.urlLoader_onComplete));
		this.__urlLoader.addEventListener("ioError",$bind(this,this.urlLoader_onIOError));
		this.__urlLoader.addEventListener("progress",$bind(this,this.urlLoader_onProgress));
		this.__urlLoader.load(request);
		var saveFileDialog = new (lime_ui_FileDialog().default)();
		saveFileDialog.onCancel.add($bind(this,this.saveFileDialog_onCancel));
		saveFileDialog.onSelect.add($bind(this,this.saveFileDialog_onSelect));
		saveFileDialog.browse((lime_ui_FileDialogType().default).SAVE,defaultFileName != null ? (haxe_io_Path().default).extension(defaultFileName) : null,defaultFileName);
	},
	load: function() {
	},
	save: function(data,defaultFileName) {
		this.__data = null;
		this.__path = null;
		if(data == null) {
			return;
		}
		if((Std().default)["is"](data,(openfl_utils_ByteArrayData().default))) {
			this.__data = data;
		} else {
			var this1 = new (openfl_utils_ByteArrayData().default)(0);
			this.__data = this1;
			this.__data.writeUTFBytes((Std().default).string(data));
		}
		var saveFileDialog = new (lime_ui_FileDialog().default)();
		saveFileDialog.onCancel.add($bind(this,this.saveFileDialog_onCancel));
		saveFileDialog.onSave.add($bind(this,this.saveFileDialog_onSave));
		saveFileDialog.save((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(this.__data),defaultFileName != null ? (haxe_io_Path().default).extension(defaultFileName) : null,defaultFileName);
	},
	upload: function(request,uploadDataFieldName,testUpload) {
		if(testUpload == null) {
			testUpload = false;
		}
		if(uploadDataFieldName == null) {
			uploadDataFieldName = "Filedata";
		}
		(openfl__$internal_Lib().default).notImplemented({ fileName : "FileReference.hx", lineNumber : 177, className : "openfl.net.FileReference", methodName : "upload"});
	},
	openFileDialog_onCancel: function() {
		this.dispatchEvent(new (openfl_events_Event().default)("cancel"));
	},
	openFileDialog_onComplete: function() {
		this.dispatchEvent(new (openfl_events_Event().default)("complete"));
	},
	openFileDialog_onSelect: function(path) {
		this.name = (haxe_io_Path().default).withoutDirectory(path);
		this.__path = path;
		this.dispatchEvent(new (openfl_events_Event().default)("select"));
	},
	saveFileDialog_onCancel: function() {
		this.dispatchEvent(new (openfl_events_Event().default)("cancel"));
	},
	saveFileDialog_onSave: function(path) {
		var _gthis = this;
		(haxe_Timer().default).delay(function() {
			_gthis.dispatchEvent(new (openfl_events_Event().default)("complete"));
		},1);
	},
	saveFileDialog_onSelect: function(path) {
		this.dispatchEvent(new (openfl_events_Event().default)("select"));
	},
	urlLoader_onComplete: function(event) {
		this.dispatchEvent(event);
	},
	urlLoader_onIOError: function(event) {
		this.dispatchEvent(event);
	},
	urlLoader_onProgress: function(event) {
		this.dispatchEvent(event);
	}
});
FileReference.prototype.__class__ = $hxClasses["openfl.net.FileReference"] = FileReference;
// Init
// Statics
// Export
exports.default = FileReference;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 235 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.ui.FileDialogType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var FileDialogType = $hxClasses["lime.ui.FileDialogType"] = { __ename__: ["lime","ui","FileDialogType"], __constructs__: ["OPEN","OPEN_MULTIPLE","SAVE","OPEN_DIRECTORY"] }
FileDialogType.SAVE = ["SAVE",2];
FileDialogType.SAVE.toString = $estr;
FileDialogType.SAVE.__enum__ = FileDialogType;
FileDialogType.OPEN_MULTIPLE = ["OPEN_MULTIPLE",1];
FileDialogType.OPEN_MULTIPLE.toString = $estr;
FileDialogType.OPEN_MULTIPLE.__enum__ = FileDialogType;
FileDialogType.OPEN_DIRECTORY = ["OPEN_DIRECTORY",3];
FileDialogType.OPEN_DIRECTORY.toString = $estr;
FileDialogType.OPEN_DIRECTORY.__enum__ = FileDialogType;
FileDialogType.OPEN = ["OPEN",0];
FileDialogType.OPEN.toString = $estr;
FileDialogType.OPEN.__enum__ = FileDialogType;
exports.default = FileDialogType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 236 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.Socket
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_utils_IDataOutput() {return __webpack_require__(123);}
function openfl_utils_IDataInput() {return __webpack_require__(92);}
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_SecurityError() {return __webpack_require__(230);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl_utils_ByteArrayData() {return __webpack_require__(45);}
function js_Browser() {return __webpack_require__(11);}
function EReg() {return __webpack_require__(27);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
function openfl_errors_IOError() {return __webpack_require__(124);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl_events_Event() {return __webpack_require__(9);}
function _$UInt_UInt_$Impl_$() {return __webpack_require__(43);}
function openfl_events_ProgressEvent() {return __webpack_require__(53);}
function haxe_io_Bytes() {return __webpack_require__(16);}
// Constructor
var Socket = function(host,port) {
	if(port == null) {
		port = 0;
	}
	(openfl_events_EventDispatcher().default).call(this);
	this.set_endian("bigEndian");
	this.timeout = 20000;
	this.__buffer = (haxe_io_Bytes().default).alloc(4096);
	if(port > 0 && port < 65535) {
		this.connect(host,port);
	}
}
// Meta
Socket.__name__ = ["openfl","net","Socket"];
Socket.__interfaces__ = [(openfl_utils_IDataOutput().default),(openfl_utils_IDataInput().default)];
Socket.__super__ = (openfl_events_EventDispatcher().default);
Socket.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	connect: function(host,port) {
		if(port == null) {
			port = 0;
		}
		if(this.__socket != null) {
			this.close();
		}
		if(port < 0 || port > 65535) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_SecurityError().default)("Invalid socket port number specified."));
		}
		this.__timestamp = (haxe_Timer().default).stamp();
		this.__host = host;
		this.__port = port;
		var this1 = new (openfl_utils_ByteArrayData().default)(0);
		this.__output = this1;
		this.__output.set_endian(this.__endian);
		var this2 = new (openfl_utils_ByteArrayData().default)(0);
		this.__input = this2;
		this.__input.set_endian(this.__endian);
		var this3 = new (openfl_utils_ByteArrayData().default)(0);
		this.__inputBuffer = this3;
		this.__inputBuffer.set_endian(this.__endian);
		if((js_Browser().default).get_location().protocol == "https:") {
			this.secure = true;
		}
		var schema = this.secure ? "wss" : "ws";
		var urlReg = new (EReg().default)("^(.*://)?([A-Za-z0-9\\-\\.]+)/?(.*)","g");
		urlReg.match(host);
		var __webHost = urlReg.matched(2);
		var __webPath = urlReg.matched(3);
		this.__socket = new WebSocket(schema + "://" + __webHost + ":" + port + "/" + __webPath);
		this.__socket.binaryType = "arraybuffer";
		this.__socket.onopen = $bind(this,this.socket_onOpen);
		this.__socket.onmessage = $bind(this,this.socket_onMessage);
		this.__socket.onclose = $bind(this,this.socket_onClose);
		this.__socket.onerror = $bind(this,this.socket_onError);
		(openfl__$internal_Lib().default).current.addEventListener("enterFrame",$bind(this,this.this_onEnterFrame));
	},
	close: function() {
		if(this.__socket != null) {
			this.__cleanSocket();
		} else {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
	},
	flush: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		if((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.__output) > 0) {
			try {
				var buffer = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toArrayBuffer(this.__output);
				if(buffer.byteLength > (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.__output)) {
					buffer = buffer.slice(0,(openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.__output));
				}
				this.__socket.send(buffer);
				var this1 = new (openfl_utils_ByteArrayData().default)(0);
				this.__output = this1;
				this.__output.set_endian(this.__endian);
			} catch( e ) {
				throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
			}
		}
	},
	readBoolean: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readBoolean();
	},
	readByte: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readByte();
	},
	readBytes: function(bytes,offset,length) {
		if(length == null) {
			length = 0;
		}
		if(offset == null) {
			offset = 0;
		}
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__input.readBytes(bytes,offset,length);
	},
	readDouble: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readDouble();
	},
	readFloat: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readFloat();
	},
	readInt: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readInt();
	},
	readMultiByte: function(length,charSet) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readMultiByte(length,charSet);
	},
	readShort: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readShort();
	},
	readUnsignedByte: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readUnsignedByte();
	},
	readUnsignedInt: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readUnsignedInt();
	},
	readUnsignedShort: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readUnsignedShort();
	},
	readUTF: function() {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readUTF();
	},
	readUTFBytes: function(length) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		return this.__input.readUTFBytes(length);
	},
	writeBoolean: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeBoolean(value);
	},
	writeByte: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeByte(value);
	},
	writeBytes: function(bytes,offset,length) {
		if(length == null) {
			length = 0;
		}
		if(offset == null) {
			offset = 0;
		}
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeBytes(bytes,offset,length);
	},
	writeDouble: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeDouble(value);
	},
	writeFloat: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeFloat(value);
	},
	writeInt: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeInt(value);
	},
	writeMultiByte: function(value,charSet) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeUTFBytes(value);
	},
	writeShort: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeShort(value);
	},
	writeUnsignedInt: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeUnsignedInt(value);
	},
	writeUTF: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeUTF(value);
	},
	writeUTFBytes: function(value) {
		if(this.__socket == null) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IOError().default)("Operation attempted on invalid socket."));
		}
		this.__output.writeUTFBytes(value);
	},
	__cleanSocket: function() {
		try {
			this.__socket.close();
		} catch( e ) {
		}
		this.__socket = null;
		this.__connected = false;
		(openfl__$internal_Lib().default).current.removeEventListener("enterFrame",$bind(this,this.this_onEnterFrame));
	},
	socket_onClose: function(_) {
		this.dispatchEvent(new (openfl_events_Event().default)("close"));
	},
	socket_onError: function(e) {
		this.dispatchEvent(new (openfl_events_Event().default)("ioError"));
	},
	socket_onMessage: function(msg) {
		if(typeof(msg.data) == "string") {
			this.__inputBuffer.position = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.__inputBuffer);
			var cachePosition = this.__inputBuffer.position;
			this.__inputBuffer.writeUTFBytes(msg.data);
			this.__inputBuffer.position = cachePosition;
		} else {
			var newData = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromArrayBuffer(msg.data);
			newData.readBytes(this.__inputBuffer,(openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.__inputBuffer));
		}
		if((_$UInt_UInt_$Impl_$().default).gt(this.__inputBuffer.get_bytesAvailable(),0)) {
			var this1 = new (openfl_utils_ByteArrayData().default)(0);
			var newInput = this1;
			var newDataLength = this.__inputBuffer.get_bytesAvailable();
			this.__input.readBytes(newInput,0,this.__input.get_bytesAvailable());
			this.__inputBuffer.position = 0;
			this.__inputBuffer.readBytes(newInput,newInput.position,(openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.__inputBuffer));
			newInput.position = 0;
			this.__input = newInput;
			this.__input.set_endian(this.__endian);
			this.__inputBuffer.clear();
			this.dispatchEvent(new (openfl_events_ProgressEvent().default)("socketData",false,false,(_$UInt_UInt_$Impl_$().default).toFloat(newDataLength),0));
		}
	},
	socket_onOpen: function(_) {
		this.__connected = true;
		this.dispatchEvent(new (openfl_events_Event().default)("connect"));
	},
	this_onEnterFrame: function(event) {
		if(this.__socket != null) {
			this.flush();
		}
	},
	get_bytesAvailable: function() {
		return this.__input.get_bytesAvailable();
	},
	get_bytesPending: function() {
		return (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.__output);
	},
	get_connected: function() {
		return this.__connected;
	},
	get_endian: function() {
		return this.__endian;
	},
	set_endian: function(value) {
		this.__endian = value;
		if(this.__input != null) {
			this.__input.set_endian(value);
		}
		if(this.__inputBuffer != null) {
			this.__inputBuffer.set_endian(value);
		}
		if(this.__output != null) {
			this.__output.set_endian(value);
		}
		return this.__endian;
	}
});
Socket.prototype.__class__ = $hxClasses["openfl.net.Socket"] = Socket;
// Init
Object.defineProperties(Socket.prototype,{ "bytesAvailable" : { get : function () { return this.get_bytesAvailable (); }}, "bytesPending" : { get : function () { return this.get_bytesPending (); }}, "connected" : { get : function () { return this.get_connected (); }}, "endian" : { get : function () { return this.get_endian (); }, set : function (v) { return this.set_endian (v); }}});
// Statics
// Export
exports.default = Socket;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 237 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	desktop: __webpack_require__(238),
	display: __webpack_require__(286),
	display3D: __webpack_require__(436),
	errors: __webpack_require__(459),
	events: __webpack_require__(468),
	external: __webpack_require__(496),
	filters: __webpack_require__(499),
	geom: __webpack_require__(507),
	media: __webpack_require__(520),
	net: __webpack_require__(532),
	profiler: __webpack_require__(563),
	sensors: __webpack_require__(566),
	system: __webpack_require__(572),
	text: __webpack_require__(586),
	ui: __webpack_require__(598),
	utils: __webpack_require__(609),
	Assets: __webpack_require__(626),
	Lib: __webpack_require__(627),
	Memory: __webpack_require__(628),
	Vector: __webpack_require__(630),
}
/***/ }),
/* 238 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	Clipboard: __webpack_require__(239).default,
	ClipboardFormats: __webpack_require__(284).default,
	ClipboardTransferMode: __webpack_require__(285).default
}
/***/ }),
/* 239 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(240);
/***/ }),
/* 240 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.desktop.Clipboard
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_system_Clipboard() {return __webpack_require__(84);}
function Std() {return __webpack_require__(4);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
// Constructor
var Clipboard = function() {
}
// Meta
Clipboard.__name__ = ["openfl","desktop","Clipboard"];
Clipboard.prototype = {
	clear: function() {
		if(!this.__systemClipboard) {
			this.__htmlText = null;
			this.__richText = null;
			this.__text = null;
		} else {
			(lime_system_Clipboard().default).set_text(null);
		}
	},
	clearData: function(format) {
		if(!this.__systemClipboard) {
			switch(format) {
			case "air:html":
				this.__htmlText = null;
				break;
			case "air:rtf":
				this.__richText = null;
				break;
			case "air:txt":
				this.__text = null;
				break;
			default:
			}
		} else {
			switch(format) {
			case "air:html":case "air:rtf":case "air:txt":
				(lime_system_Clipboard().default).set_text(null);
				break;
			default:
			}
		}
	},
	getData: function(format,transferMode) {
		if(transferMode == null) {
			transferMode = "originalPreferred";
		}
		if(!this.__systemClipboard) {
			switch(format) {
			case "air:html":
				return this.__htmlText;
			case "air:rtf":
				return this.__richText;
			case "air:txt":
				return this.__text;
			default:
				return null;
			}
		} else {
			switch(format) {
			case "air:html":case "air:rtf":case "air:txt":
				return (lime_system_Clipboard().default).get_text();
			default:
				return null;
			}
		}
	},
	hasFormat: function(format) {
		if(!this.__systemClipboard) {
			switch(format) {
			case "air:html":
				return this.__htmlText != null;
			case "air:rtf":
				return this.__richText != null;
			case "air:txt":
				return this.__text != null;
			default:
				return false;
			}
		} else {
			switch(format) {
			case "air:html":case "air:rtf":case "air:txt":
				return (lime_system_Clipboard().default).get_text() != null;
			default:
				return false;
			}
		}
	},
	setData: function(format,data,serializable) {
		if(serializable == null) {
			serializable = true;
		}
		if(!this.__systemClipboard) {
			switch(format) {
			case "air:html":
				this.__htmlText = (Std().default).string(data);
				return true;
			case "air:rtf":
				this.__richText = (Std().default).string(data);
				return true;
			case "air:txt":
				this.__text = (Std().default).string(data);
				return true;
			default:
				return false;
			}
		} else {
			switch(format) {
			case "air:html":case "air:rtf":case "air:txt":
				(lime_system_Clipboard().default).set_text((Std().default).string(data));
				return true;
			default:
				return false;
			}
		}
	},
	setDataHandler: function(format,handler,serializable) {
		if(serializable == null) {
			serializable = true;
		}
		(openfl__$internal_Lib().default).notImplemented({ fileName : "Clipboard.hx", lineNumber : 210, className : "openfl.desktop.Clipboard", methodName : "setDataHandler"});
		return false;
	},
	get_formats: function() {
		var formats = ["air:txt"];
		if(this.hasFormat("air:html")) {
			formats.push("air:html");
		}
		if(this.hasFormat("air:rtf")) {
			formats.push("air:rtf");
		}
		if(this.hasFormat("air:txt")) {
			formats.push("air:txt");
		}
		return formats;
	}
};
Clipboard.prototype.__class__ = $hxClasses["openfl.desktop.Clipboard"] = Clipboard;
// Init
{
	global.Object.defineProperty(Clipboard,"generalClipboard",{ get : function() {
		return Clipboard.get_generalClipboard();
	}});
	var tmp = Clipboard.prototype;
	var tmp1 = function () { return this.get_formats (); }
	global.Object.defineProperty(tmp,"formats",{ get : tmp1});
};
// Statics
Clipboard.get_generalClipboard = function() {
	if(Clipboard.__generalClipboard == null) {
		Clipboard.__generalClipboard = new Clipboard();
		Clipboard.__generalClipboard.__systemClipboard = true;
	}
	return Clipboard.__generalClipboard;
}
// Export
exports.default = Clipboard;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 241 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app.Module
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $bind = __webpack_require__(8).default;
var $import = __webpack_require__(2).default;
function lime_app_IModule() {return __webpack_require__(146);}
function lime_ui_Gamepad() {return __webpack_require__(85);}
function lime_ui_Joystick() {return __webpack_require__(86);}
function lime_ui_Touch() {return __webpack_require__(109);}
function HxOverrides() {return __webpack_require__(7);}
function lime_app__$Event_$Int_$Void() {return __webpack_require__(108);}
// Constructor
var Module = function() {
	this.onExit = new (lime_app__$Event_$Int_$Void().default)();
	this.__renderers = [];
	this.__windows = [];
}
// Meta
Module.__name__ = ["lime","app","Module"];
Module.__interfaces__ = [(lime_app_IModule().default)];
Module.prototype = {
	addRenderer: function(renderer) {
		var f = $bind(this,this.render);
		var a1 = renderer;
		var tmp = function() {
			f(a1);
		};
		renderer.onRender.add(tmp);
		var f1 = $bind(this,this.onRenderContextLost);
		var a11 = renderer;
		var tmp1 = function() {
			f1(a11);
		};
		renderer.onContextLost.add(tmp1);
		var f2 = $bind(this,this.onRenderContextRestored);
		var a12 = renderer;
		var tmp2 = function(a2) {
			f2(a12,a2);
		};
		renderer.onContextRestored.add(tmp2);
		this.__renderers.push(renderer);
	},
	addWindow: function(window) {
		var f = $bind(this,this.onWindowActivate);
		var a1 = window;
		var tmp = function() {
			f(a1);
		};
		window.onActivate.add(tmp);
		var f1 = $bind(this,this.__onWindowClose);
		var a11 = window;
		var tmp1 = function() {
			f1(a11);
		};
		window.onClose.add(tmp1,false,-10000);
		var f2 = $bind(this,this.onWindowCreate);
		var a12 = window;
		var tmp2 = function() {
			f2(a12);
		};
		window.onCreate.add(tmp2);
		var f3 = $bind(this,this.onWindowDeactivate);
		var a13 = window;
		var tmp3 = function() {
			f3(a13);
		};
		window.onDeactivate.add(tmp3);
		var f4 = $bind(this,this.onWindowDropFile);
		var a14 = window;
		var tmp4 = function(a2) {
			f4(a14,a2);
		};
		window.onDropFile.add(tmp4);
		var f5 = $bind(this,this.onWindowEnter);
		var a15 = window;
		var tmp5 = function() {
			f5(a15);
		};
		window.onEnter.add(tmp5);
		var f6 = $bind(this,this.onWindowFocusIn);
		var a16 = window;
		var tmp6 = function() {
			f6(a16);
		};
		window.onFocusIn.add(tmp6);
		var f7 = $bind(this,this.onWindowFocusOut);
		var a17 = window;
		var tmp7 = function() {
			f7(a17);
		};
		window.onFocusOut.add(tmp7);
		var f8 = $bind(this,this.onWindowFullscreen);
		var a18 = window;
		var tmp8 = function() {
			f8(a18);
		};
		window.onFullscreen.add(tmp8);
		var f9 = $bind(this,this.onKeyDown);
		var a19 = window;
		var tmp9 = function(a21,a3) {
			f9(a19,a21,a3);
		};
		window.onKeyDown.add(tmp9);
		var f10 = $bind(this,this.onKeyUp);
		var a110 = window;
		var tmp10 = function(a22,a31) {
			f10(a110,a22,a31);
		};
		window.onKeyUp.add(tmp10);
		var f11 = $bind(this,this.onWindowLeave);
		var a111 = window;
		var tmp11 = function() {
			f11(a111);
		};
		window.onLeave.add(tmp11);
		var f12 = $bind(this,this.onWindowMinimize);
		var a112 = window;
		var tmp12 = function() {
			f12(a112);
		};
		window.onMinimize.add(tmp12);
		var f13 = $bind(this,this.onMouseDown);
		var a113 = window;
		var tmp13 = function(x,y,a23) {
			f13(a113,x,y,a23);
		};
		window.onMouseDown.add(tmp13);
		var f14 = $bind(this,this.onMouseMove);
		var a114 = window;
		var tmp14 = function(x1,y1) {
			f14(a114,x1,y1);
		};
		window.onMouseMove.add(tmp14);
		var f15 = $bind(this,this.onMouseMoveRelative);
		var a115 = window;
		var tmp15 = function(x2,y2) {
			f15(a115,x2,y2);
		};
		window.onMouseMoveRelative.add(tmp15);
		var f16 = $bind(this,this.onMouseUp);
		var a116 = window;
		var tmp16 = function(x3,y3,a24) {
			f16(a116,x3,y3,a24);
		};
		window.onMouseUp.add(tmp16);
		var f17 = $bind(this,this.onMouseWheel);
		var a117 = window;
		var tmp17 = function(a25,a32) {
			f17(a117,a25,a32);
		};
		window.onMouseWheel.add(tmp17);
		var f18 = $bind(this,this.onWindowMove);
		var a118 = window;
		var tmp18 = function(x4,y4) {
			f18(a118,x4,y4);
		};
		window.onMove.add(tmp18);
		var f19 = $bind(this,this.onWindowResize);
		var a119 = window;
		var tmp19 = function(a26,a33) {
			f19(a119,a26,a33);
		};
		window.onResize.add(tmp19);
		var f20 = $bind(this,this.onWindowRestore);
		var a120 = window;
		var tmp20 = function() {
			f20(a120);
		};
		window.onRestore.add(tmp20);
		var f21 = $bind(this,this.onTextEdit);
		var a121 = window;
		var tmp21 = function(a27,a34,a4) {
			f21(a121,a27,a34,a4);
		};
		window.onTextEdit.add(tmp21);
		var f22 = $bind(this,this.onTextInput);
		var a122 = window;
		var tmp22 = function(a28) {
			f22(a122,a28);
		};
		window.onTextInput.add(tmp22);
		if(window.id > -1) {
			this.onWindowCreate(window);
		}
		this.__windows.push(window);
	},
	registerModule: function(application) {
		this.__application = application;
		application.onExit.add($bind(this,this.onModuleExit),false,0);
		application.onUpdate.add($bind(this,this.update));
		var gamepad = (lime_ui_Gamepad().default).devices.iterator();
		while(gamepad.hasNext()) {
			var gamepad1 = gamepad.next();
			this.__onGamepadConnect(gamepad1);
		}
		(lime_ui_Gamepad().default).onConnect.add($bind(this,this.__onGamepadConnect));
		var joystick = (lime_ui_Joystick().default).devices.iterator();
		while(joystick.hasNext()) {
			var joystick1 = joystick.next();
			this.__onJoystickConnect(joystick1);
		}
		(lime_ui_Joystick().default).onConnect.add($bind(this,this.__onJoystickConnect));
		(lime_ui_Touch().default).onCancel.add($bind(this,this.onTouchCancel));
		(lime_ui_Touch().default).onStart.add($bind(this,this.onTouchStart));
		(lime_ui_Touch().default).onMove.add($bind(this,this.onTouchMove));
		(lime_ui_Touch().default).onEnd.add($bind(this,this.onTouchEnd));
	},
	removeRenderer: function(renderer) {
		if(renderer != null && this.__renderers.indexOf(renderer) > -1) {
			(HxOverrides().default).remove(this.__renderers,renderer);
		}
	},
	removeWindow: function(window) {
		if(window != null && this.__windows.indexOf(window) > -1) {
			(HxOverrides().default).remove(this.__windows,window);
		}
	},
	setPreloader: function(preloader) {
		if(this.__preloader != null) {
			this.__preloader.onProgress.remove($bind(this,this.onPreloadProgress));
			this.__preloader.onComplete.remove($bind(this,this.onPreloadComplete));
		}
		this.__preloader = preloader;
		if(preloader == null || preloader.complete) {
			this.onPreloadComplete();
		} else {
			preloader.onProgress.add($bind(this,this.onPreloadProgress));
			preloader.onComplete.add($bind(this,this.onPreloadComplete));
		}
	},
	unregisterModule: function(application) {
		this.__application.onExit.remove($bind(this,this.onModuleExit));
		this.__application.onUpdate.remove($bind(this,this.update));
		(lime_ui_Gamepad().default).onConnect.remove($bind(this,this.__onGamepadConnect));
		(lime_ui_Joystick().default).onConnect.remove($bind(this,this.__onJoystickConnect));
		(lime_ui_Touch().default).onCancel.remove($bind(this,this.onTouchCancel));
		(lime_ui_Touch().default).onStart.remove($bind(this,this.onTouchStart));
		(lime_ui_Touch().default).onMove.remove($bind(this,this.onTouchMove));
		(lime_ui_Touch().default).onEnd.remove($bind(this,this.onTouchEnd));
		this.onModuleExit(0);
	},
	onGamepadAxisMove: function(gamepad,axis,value) {
	},
	onGamepadButtonDown: function(gamepad,button) {
	},
	onGamepadButtonUp: function(gamepad,button) {
	},
	onGamepadConnect: function(gamepad) {
	},
	onGamepadDisconnect: function(gamepad) {
	},
	onJoystickAxisMove: function(joystick,axis,value) {
	},
	onJoystickButtonDown: function(joystick,button) {
	},
	onJoystickButtonUp: function(joystick,button) {
	},
	onJoystickConnect: function(joystick) {
	},
	onJoystickDisconnect: function(joystick) {
	},
	onJoystickHatMove: function(joystick,hat,position) {
	},
	onJoystickTrackballMove: function(joystick,trackball,x,y) {
	},
	onKeyDown: function(window,keyCode,modifier) {
	},
	onKeyUp: function(window,keyCode,modifier) {
	},
	onModuleExit: function(code) {
	},
	onMouseDown: function(window,x,y,button) {
	},
	onMouseMove: function(window,x,y) {
	},
	onMouseMoveRelative: function(window,x,y) {
	},
	onMouseUp: function(window,x,y,button) {
	},
	onMouseWheel: function(window,deltaX,deltaY) {
	},
	onPreloadComplete: function() {
	},
	onPreloadProgress: function(loaded,total) {
	},
	onRenderContextLost: function(renderer) {
	},
	onRenderContextRestored: function(renderer,context) {
	},
	onTextEdit: function(window,text,start,length) {
	},
	onTextInput: function(window,text) {
	},
	onTouchCancel: function(touch) {
	},
	onTouchEnd: function(touch) {
	},
	onTouchMove: function(touch) {
	},
	onTouchStart: function(touch) {
	},
	onWindowActivate: function(window) {
	},
	onWindowClose: function(window) {
	},
	onWindowCreate: function(window) {
	},
	onWindowDeactivate: function(window) {
	},
	onWindowDropFile: function(window,file) {
	},
	onWindowEnter: function(window) {
	},
	onWindowFocusIn: function(window) {
	},
	onWindowFocusOut: function(window) {
	},
	onWindowFullscreen: function(window) {
	},
	onWindowLeave: function(window) {
	},
	onWindowMove: function(window,x,y) {
	},
	onWindowMinimize: function(window) {
	},
	onWindowResize: function(window,width,height) {
	},
	onWindowRestore: function(window) {
	},
	render: function(renderer) {
	},
	update: function(deltaTime) {
	},
	__onGamepadConnect: function(gamepad) {
		this.onGamepadConnect(gamepad);
		var f = $bind(this,this.onGamepadAxisMove);
		var a1 = gamepad;
		var tmp = function(a2,a3) {
			f(a1,a2,a3);
		};
		gamepad.onAxisMove.add(tmp);
		var f1 = $bind(this,this.onGamepadButtonDown);
		var a11 = gamepad;
		var tmp1 = function(a21) {
			f1(a11,a21);
		};
		gamepad.onButtonDown.add(tmp1);
		var f2 = $bind(this,this.onGamepadButtonUp);
		var a12 = gamepad;
		var tmp2 = function(a22) {
			f2(a12,a22);
		};
		gamepad.onButtonUp.add(tmp2);
		var f3 = $bind(this,this.onGamepadDisconnect);
		var a13 = gamepad;
		var tmp3 = function() {
			f3(a13);
		};
		gamepad.onDisconnect.add(tmp3);
	},
	__onJoystickConnect: function(joystick) {
		this.onJoystickConnect(joystick);
		var f = $bind(this,this.onJoystickAxisMove);
		var a1 = joystick;
		var tmp = function(a2,a3) {
			f(a1,a2,a3);
		};
		joystick.onAxisMove.add(tmp);
		var f1 = $bind(this,this.onJoystickButtonDown);
		var a11 = joystick;
		var tmp1 = function(a21) {
			f1(a11,a21);
		};
		joystick.onButtonDown.add(tmp1);
		var f2 = $bind(this,this.onJoystickButtonUp);
		var a12 = joystick;
		var tmp2 = function(a22) {
			f2(a12,a22);
		};
		joystick.onButtonUp.add(tmp2);
		var f3 = $bind(this,this.onJoystickDisconnect);
		var a13 = joystick;
		var tmp3 = function() {
			f3(a13);
		};
		joystick.onDisconnect.add(tmp3);
		var f4 = $bind(this,this.onJoystickHatMove);
		var a14 = joystick;
		var tmp4 = function(a23,a31) {
			f4(a14,a23,a31);
		};
		joystick.onHatMove.add(tmp4);
		var f5 = $bind(this,this.onJoystickTrackballMove);
		var a15 = joystick;
		var tmp5 = function(a24,x,y) {
			f5(a15,a24,x,y);
		};
		joystick.onTrackballMove.add(tmp5);
	},
	__onWindowClose: function(window) {
		this.onWindowClose(window);
		(HxOverrides().default).remove(this.__windows,window);
	}
};
Module.prototype.__class__ = $hxClasses["lime.app.Module"] = Module;
// Init
// Statics
// Export
exports.default = Module;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 242 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_lime_ui_Joystick_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_lime_ui_Joystick_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_lime_ui_Joystick_Void.__name__ = ["lime","app","_Event_lime_ui_Joystick_Void"];
_Event_lime_ui_Joystick_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_lime_ui_Joystick_Void.prototype.__class__ = $hxClasses["lime.app._Event_lime_ui_Joystick_Void"] = _Event_lime_ui_Joystick_Void;
// Init
// Statics
// Export
exports.default = _Event_lime_ui_Joystick_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 243 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Int_Float_Float_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Int_Float_Float_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Int_Float_Float_Void.__name__ = ["lime","app","_Event_Int_Float_Float_Void"];
_Event_Int_Float_Float_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1,a2) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1,a2);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Int_Float_Float_Void.prototype.__class__ = $hxClasses["lime.app._Event_Int_Float_Float_Void"] = _Event_Int_Float_Float_Void;
// Init
// Statics
// Export
exports.default = _Event_Int_Float_Float_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 244 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Int_lime_ui_JoystickHatPosition_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Int_lime_ui_JoystickHatPosition_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Int_lime_ui_JoystickHatPosition_Void.__name__ = ["lime","app","_Event_Int_lime_ui_JoystickHatPosition_Void"];
_Event_Int_lime_ui_JoystickHatPosition_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Int_lime_ui_JoystickHatPosition_Void.prototype.__class__ = $hxClasses["lime.app._Event_Int_lime_ui_JoystickHatPosition_Void"] = _Event_Int_lime_ui_JoystickHatPosition_Void;
// Init
// Statics
// Export
exports.default = _Event_Int_lime_ui_JoystickHatPosition_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 245 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Int_Float_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Int_Float_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Int_Float_Void.__name__ = ["lime","app","_Event_Int_Float_Void"];
_Event_Int_Float_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Int_Float_Void.prototype.__class__ = $hxClasses["lime.app._Event_Int_Float_Void"] = _Event_Int_Float_Void;
// Init
// Statics
// Export
exports.default = _Event_Int_Float_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 246 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_lime_ui_Gamepad_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_lime_ui_Gamepad_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_lime_ui_Gamepad_Void.__name__ = ["lime","app","_Event_lime_ui_Gamepad_Void"];
_Event_lime_ui_Gamepad_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_lime_ui_Gamepad_Void.prototype.__class__ = $hxClasses["lime.app._Event_lime_ui_Gamepad_Void"] = _Event_lime_ui_Gamepad_Void;
// Init
// Statics
// Export
exports.default = _Event_lime_ui_Gamepad_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 247 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_lime_ui_GamepadButton_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_lime_ui_GamepadButton_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_lime_ui_GamepadButton_Void.__name__ = ["lime","app","_Event_lime_ui_GamepadButton_Void"];
_Event_lime_ui_GamepadButton_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_lime_ui_GamepadButton_Void.prototype.__class__ = $hxClasses["lime.app._Event_lime_ui_GamepadButton_Void"] = _Event_lime_ui_GamepadButton_Void;
// Init
// Statics
// Export
exports.default = _Event_lime_ui_GamepadButton_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 248 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_lime_ui_GamepadAxis_Float_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_lime_ui_GamepadAxis_Float_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_lime_ui_GamepadAxis_Float_Void.__name__ = ["lime","app","_Event_lime_ui_GamepadAxis_Float_Void"];
_Event_lime_ui_GamepadAxis_Float_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_lime_ui_GamepadAxis_Float_Void.prototype.__class__ = $hxClasses["lime.app._Event_lime_ui_GamepadAxis_Float_Void"] = _Event_lime_ui_GamepadAxis_Float_Void;
// Init
// Statics
// Export
exports.default = _Event_lime_ui_GamepadAxis_Float_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 249 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_lime_ui_Touch_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_lime_ui_Touch_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_lime_ui_Touch_Void.__name__ = ["lime","app","_Event_lime_ui_Touch_Void"];
_Event_lime_ui_Touch_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_lime_ui_Touch_Void.prototype.__class__ = $hxClasses["lime.app._Event_lime_ui_Touch_Void"] = _Event_lime_ui_Touch_Void;
// Init
// Statics
// Export
exports.default = _Event_lime_ui_Touch_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 250 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_String_Int_Int_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_String_Int_Int_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_String_Int_Int_Void.__name__ = ["lime","app","_Event_String_Int_Int_Void"];
_Event_String_Int_Int_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1,a2) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1,a2);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_String_Int_Int_Void.prototype.__class__ = $hxClasses["lime.app._Event_String_Int_Int_Void"] = _Event_String_Int_Int_Void;
// Init
// Statics
// Export
exports.default = _Event_String_Int_Int_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 251 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Float_Float_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Float_Float_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Float_Float_Void.__name__ = ["lime","app","_Event_Float_Float_Void"];
_Event_Float_Float_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Float_Float_Void.prototype.__class__ = $hxClasses["lime.app._Event_Float_Float_Void"] = _Event_Float_Float_Void;
// Init
// Statics
// Export
exports.default = _Event_Float_Float_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 252 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Float_Float_Int_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Float_Float_Int_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Float_Float_Int_Void.__name__ = ["lime","app","_Event_Float_Float_Int_Void"];
_Event_Float_Float_Int_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1,a2) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1,a2);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Float_Float_Int_Void.prototype.__class__ = $hxClasses["lime.app._Event_Float_Float_Int_Void"] = _Event_Float_Float_Int_Void;
// Init
// Statics
// Export
exports.default = _Event_Float_Float_Int_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 253 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void.__name__ = ["lime","app","_Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void"];
_Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void.prototype.__class__ = $hxClasses["lime.app._Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void"] = _Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void;
// Init
// Statics
// Export
exports.default = _Event_lime_ui_KeyCode_lime_ui_KeyModifier_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 254 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime._backend.html5.HTML5Window
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function js_Browser() {return __webpack_require__(11);}
function Std() {return __webpack_require__(4);}
function lime_system_System() {return __webpack_require__(46);}
function lime_system_Clipboard() {return __webpack_require__(84);}
function haxe_Timer() {return __webpack_require__(26);}
function lime_ui_Joystick() {return __webpack_require__(86);}
function lime_ui_Gamepad() {return __webpack_require__(85);}
function StringTools() {return __webpack_require__(12);}
function lime_ui_Touch() {return __webpack_require__(109);}
function EReg() {return __webpack_require__(27);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function List() {return __webpack_require__(48);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
function Reflect() {return __webpack_require__(5);}
// Constructor
var HTML5Window = function(parent) {
	this.unusedTouchesPool = new (List().default)();
	this.scale = 1.0;
	this.currentTouches = new (haxe_ds_IntMap().default)();
	this.parent = parent;
	if(parent.config != null && (Reflect().default).hasField(parent.config,"element")) {
		this.element = parent.config.element;
	}
	if(parent.config != null && (Reflect().default).hasField(parent.config,"renderer")) {
		this.renderType = parent.config.renderer;
	}
	if(parent.config != null && (Reflect().default).hasField(parent.config,"allowHighDPI") && parent.config.allowHighDPI && this.renderType != "dom") {
		this.scale = (js_Browser().default).get_window().devicePixelRatio;
	}
	parent.__scale = this.scale;
	this.cacheMouseX = 0;
	this.cacheMouseY = 0;
}
// Meta
HTML5Window.__name__ = ["lime","_backend","html5","HTML5Window"];
HTML5Window.prototype = {
	alert: function(message,title) {
		if(message != null) {
			(js_Browser().default).alert(message);
		}
	},
	close: function() {
		this.parent.application.removeWindow(this.parent);
	},
	create: function(application) {
		this.setWidth = this.parent.get_width();
		this.setHeight = this.parent.get_height();
		this.parent.id = HTML5Window.windowID++;
		if((Std().default)["is"](this.element,HTMLCanvasElement)) {
			this.canvas = this.element;
		} else if(this.renderType == "dom") {
			this.div = (js_Browser().default).get_document().createElement("div");
		} else {
			this.canvas = (js_Browser().default).get_document().createElement("canvas");
		}
		if(this.canvas != null) {
			var style = this.canvas.style;
			style.setProperty("-webkit-transform","translateZ(0)",null);
			style.setProperty("transform","translateZ(0)",null);
		} else if(this.div != null) {
			var style1 = this.div.style;
			style1.setProperty("-webkit-transform","translate3D(0,0,0)",null);
			style1.setProperty("transform","translate3D(0,0,0)",null);
			style1.position = "relative";
			style1.overflow = "hidden";
			style1.setProperty("-webkit-user-select","none",null);
			style1.setProperty("-moz-user-select","none",null);
			style1.setProperty("-ms-user-select","none",null);
			style1.setProperty("-o-user-select","none",null);
		}
		if(this.parent.get_width() == 0 && this.parent.get_height() == 0) {
			if(this.element != null) {
				this.parent.set_width(this.element.clientWidth);
				this.parent.set_height(this.element.clientHeight);
			} else {
				this.parent.set_width((js_Browser().default).get_window().innerWidth);
				this.parent.set_height((js_Browser().default).get_window().innerHeight);
			}
			this.cacheElementWidth = this.parent.get_width();
			this.cacheElementHeight = this.parent.get_height();
			this.resizeElement = true;
		}
		if(this.canvas != null) {
			var tmp = this.parent.get_width() * this.scale;
			this.canvas.width = Math.round(tmp);
			var tmp1 = this.parent.get_height() * this.scale;
			this.canvas.height = Math.round(tmp1);
			var tmp2 = this.parent.get_width();
			this.canvas.style.width = tmp2 + "px";
			var tmp3 = this.parent.get_height();
			this.canvas.style.height = tmp3 + "px";
		} else {
			var tmp4 = this.parent.get_width();
			this.div.style.width = tmp4 + "px";
			var tmp5 = this.parent.get_height();
			this.div.style.height = tmp5 + "px";
		}
		this.updateSize();
		if(this.element != null) {
			if(this.canvas != null) {
				if(this.element != this.canvas) {
					this.element.appendChild(this.canvas);
				}
			} else {
				this.element.appendChild(this.div);
			}
			var events = ["mousedown","mouseenter","mouseleave","mousemove","mouseup","wheel"];
			var _g = 0;
			while(_g < events.length) {
				var event = events[_g];
				++_g;
				this.element.addEventListener(event,$bind(this,this.handleMouseEvent),true);
			}
			(js_Browser().default).get_document().addEventListener("dragstart",function(e) {
				if(e.target.nodeName.toLowerCase() == "img") {
					e.preventDefault();
					return false;
				}
				return true;
			},false);
			this.element.addEventListener("contextmenu",$bind(this,this.handleContextMenuEvent),true);
			this.element.addEventListener("touchstart",$bind(this,this.handleTouchEvent),true);
			this.element.addEventListener("touchmove",$bind(this,this.handleTouchEvent),true);
			this.element.addEventListener("touchend",$bind(this,this.handleTouchEvent),true);
			this.element.addEventListener("touchcancel",$bind(this,this.handleTouchEvent),true);
			this.element.addEventListener("gamepadconnected",$bind(this,this.handleGamepadEvent),true);
			this.element.addEventListener("gamepaddisconnected",$bind(this,this.handleGamepadEvent),true);
		}
	},
	focus: function() {
	},
	getDisplay: function() {
		return (lime_system_System().default).getDisplay(0);
	},
	getDisplayMode: function() {
		return (lime_system_System().default).getDisplay(0).currentMode;
	},
	setDisplayMode: function(value) {
		return value;
	},
	getEnableTextEvents: function() {
		return this.enableTextEvents;
	},
	handleContextMenuEvent: function(event) {
		if(this.parent.onMouseUp.canceled) {
			event.preventDefault();
		}
	},
	handleCutOrCopyEvent: function(event) {
		event.clipboardData.setData("text/plain",(lime_system_Clipboard().default).get_text());
		event.preventDefault();
	},
	handleFocusEvent: function(event) {
		var _gthis = this;
		if(this.enableTextEvents) {
			if(event.relatedTarget == null || this.isDescendent(event.relatedTarget)) {
				(haxe_Timer().default).delay(function() {
					if(_gthis.enableTextEvents) {
						HTML5Window.textInput.focus();
					}
				},20);
			}
		}
	},
	handleFullscreenEvent: function(event) {
		var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;
		if(fullscreenElement != null) {
			this.isFullscreen = true;
			this.parent.__fullscreen = true;
			if(this.requestedFullscreen) {
				this.requestedFullscreen = false;
				this.parent.onFullscreen.dispatch();
			}
		} else {
			this.isFullscreen = false;
			this.parent.__fullscreen = false;
			var changeEvents = ["fullscreenchange","mozfullscreenchange","webkitfullscreenchange","MSFullscreenChange"];
			var errorEvents = ["fullscreenerror","mozfullscreenerror","webkitfullscreenerror","MSFullscreenError"];
			var _g1 = 0;
			var _g = changeEvents.length;
			while(_g1 < _g) {
				var i = _g1++;
				(js_Browser().default).get_document().removeEventListener(changeEvents[i],$bind(this,this.handleFullscreenEvent),false);
				(js_Browser().default).get_document().removeEventListener(errorEvents[i],$bind(this,this.handleFullscreenEvent),false);
			}
		}
	},
	handleGamepadEvent: function(event) {
		var _g = event.type;
		switch(_g) {
		case "gamepadconnected":
			(lime_ui_Joystick().default).__connect(event.gamepad.index);
			if(event.gamepad.mapping == "standard") {
				(lime_ui_Gamepad().default).__connect(event.gamepad.index);
			}
			break;
		case "gamepaddisconnected":
			(lime_ui_Joystick().default).__disconnect(event.gamepad.index);
			(lime_ui_Gamepad().default).__disconnect(event.gamepad.index);
			break;
		default:
		}
	},
	handleInputEvent: function(event) {
		if(HTML5Window.textInput.value != HTML5Window.dummyCharacter) {
			var value = (StringTools().default).replace(HTML5Window.textInput.value,HTML5Window.dummyCharacter,"");
			if(value.length > 0) {
				this.parent.onTextInput.dispatch(value);
			}
			HTML5Window.textInput.value = HTML5Window.dummyCharacter;
		}
	},
	handleMouseEvent: function(event) {
		var x = 0.0;
		var y = 0.0;
		if(event.type != "wheel") {
			if(this.element != null) {
				if(this.canvas != null) {
					var rect = this.canvas.getBoundingClientRect();
					x = (event.clientX - rect.left) * (this.parent.get_width() / rect.width);
					y = (event.clientY - rect.top) * (this.parent.get_height() / rect.height);
				} else if(this.div != null) {
					var rect1 = this.div.getBoundingClientRect();
					x = event.clientX - rect1.left;
					y = event.clientY - rect1.top;
				} else {
					var rect2 = this.element.getBoundingClientRect();
					x = (event.clientX - rect2.left) * (this.parent.get_width() / rect2.width);
					y = (event.clientY - rect2.top) * (this.parent.get_height() / rect2.height);
				}
			} else {
				x = event.clientX;
				y = event.clientY;
			}
			var _g = event.type;
			switch(_g) {
			case "mousedown":
				this.parent.onMouseDown.dispatch(x,y,event.button);
				if(this.parent.onMouseDown.canceled) {
					event.preventDefault();
				}
				break;
			case "mouseenter":
				if(event.target == this.element) {
					this.parent.onEnter.dispatch();
					if(this.parent.onEnter.canceled) {
						event.preventDefault();
					}
				}
				break;
			case "mouseleave":
				if(event.target == this.element) {
					this.parent.onLeave.dispatch();
					if(this.parent.onLeave.canceled) {
						event.preventDefault();
					}
				}
				break;
			case "mousemove":
				if(x != this.cacheMouseX || y != this.cacheMouseY) {
					this.parent.onMouseMove.dispatch(x,y);
					this.parent.onMouseMoveRelative.dispatch(x - this.cacheMouseX,y - this.cacheMouseY);
					if(this.parent.onMouseMove.canceled || this.parent.onMouseMoveRelative.canceled) {
						event.preventDefault();
					}
				}
				break;
			case "mouseup":
				this.parent.onMouseUp.dispatch(x,y,event.button);
				if(this.parent.onMouseUp.canceled) {
					event.preventDefault();
				}
				break;
			default:
			}
			this.cacheMouseX = x;
			this.cacheMouseY = y;
		} else {
			this.parent.onMouseWheel.dispatch(event.deltaX,-event.deltaY);
			if(this.parent.onMouseWheel.canceled) {
				event.preventDefault();
			}
		}
	},
	handlePasteEvent: function(event) {
		if(event.clipboardData.types.indexOf("text/plain") > -1) {
			var text = event.clipboardData.getData("text/plain");
			(lime_system_Clipboard().default).set_text(text);
			if(this.enableTextEvents) {
				this.parent.onTextInput.dispatch(text);
			}
			event.preventDefault();
		}
	},
	handleResizeEvent: function(event) {
		this.primaryTouch = null;
		this.updateSize();
	},
	handleTouchEvent: function(event) {
		event.preventDefault();
		var rect = null;
		if(this.element != null) {
			if(this.canvas != null) {
				rect = this.canvas.getBoundingClientRect();
			} else if(this.div != null) {
				rect = this.div.getBoundingClientRect();
			} else {
				rect = this.element.getBoundingClientRect();
			}
		}
		var windowWidth = this.setWidth;
		var windowHeight = this.setHeight;
		if(windowWidth == 0 || windowHeight == 0) {
			if(rect != null) {
				windowWidth = rect.width;
				windowHeight = rect.height;
			} else {
				windowWidth = 1;
				windowHeight = 1;
			}
		}
		var touch;
		var x;
		var y;
		var cacheX;
		var cacheY;
		var _g = 0;
		var _g1 = event.changedTouches;
		while(_g < _g1.length) {
			var data = _g1[_g];
			++_g;
			x = 0.0;
			y = 0.0;
			if(rect != null) {
				x = (data.clientX - rect.left) * (windowWidth / rect.width);
				y = (data.clientY - rect.top) * (windowHeight / rect.height);
			} else {
				x = data.clientX;
				y = data.clientY;
			}
			if(event.type == "touchstart") {
				touch = this.unusedTouchesPool.pop();
				if(touch == null) {
					touch = new (lime_ui_Touch().default)(x / windowWidth,y / windowHeight,data.identifier,0,0,data.force,this.parent.id);
				} else {
					touch.x = x / windowWidth;
					touch.y = y / windowHeight;
					touch.id = data.identifier;
					touch.dx = 0;
					touch.dy = 0;
					touch.pressure = data.force;
					touch.device = this.parent.id;
				}
				this.currentTouches.set(data.identifier,touch);
				(lime_ui_Touch().default).onStart.dispatch(touch);
				if(this.primaryTouch == null) {
					this.primaryTouch = touch;
				}
				if(touch == this.primaryTouch) {
					this.parent.onMouseDown.dispatch(x,y,0);
				}
			} else {
				touch = this.currentTouches.get(data.identifier);
				if(touch != null) {
					cacheX = touch.x;
					cacheY = touch.y;
					touch.x = x / windowWidth;
					touch.y = y / windowHeight;
					touch.dx = touch.x - cacheX;
					touch.dy = touch.y - cacheY;
					touch.pressure = data.force;
					var _g2 = event.type;
					switch(_g2) {
					case "touchcancel":
						(lime_ui_Touch().default).onCancel.dispatch(touch);
						this.currentTouches.remove(data.identifier);
						this.unusedTouchesPool.add(touch);
						if(touch == this.primaryTouch) {
							this.primaryTouch = null;
						}
						break;
					case "touchend":
						(lime_ui_Touch().default).onEnd.dispatch(touch);
						this.currentTouches.remove(data.identifier);
						this.unusedTouchesPool.add(touch);
						if(touch == this.primaryTouch) {
							this.parent.onMouseUp.dispatch(x,y,0);
							this.primaryTouch = null;
						}
						break;
					case "touchmove":
						(lime_ui_Touch().default).onMove.dispatch(touch);
						if(touch == this.primaryTouch) {
							this.parent.onMouseMove.dispatch(x,y);
						}
						break;
					default:
					}
				}
			}
		}
	},
	isDescendent: function(node) {
		if(node == this.element) {
			return true;
		}
		while(node != null) {
			if(node.parentNode == this.element) {
				return true;
			}
			node = node.parentNode;
		}
		return false;
	},
	move: function(x,y) {
	},
	resize: function(width,height) {
	},
	setBorderless: function(value) {
		return value;
	},
	setClipboard: function(value) {
		var inputEnabled = this.enableTextEvents;
		this.setEnableTextEvents(true);
		var cacheText = HTML5Window.textInput.value;
		HTML5Window.textInput.value = value;
		HTML5Window.textInput.select();
		if((js_Browser().default).get_document().queryCommandEnabled("copy")) {
			(js_Browser().default).get_document().execCommand("copy");
		}
		HTML5Window.textInput.value = cacheText;
		this.setEnableTextEvents(inputEnabled);
	},
	setEnableTextEvents: function(value) {
		if(value) {
			if(HTML5Window.textInput == null) {
				HTML5Window.textInput = (js_Browser().default).get_document().createElement("input");
				HTML5Window.textInput.type = "text";
				HTML5Window.textInput.style.position = "absolute";
				HTML5Window.textInput.style.opacity = "0";
				HTML5Window.textInput.style.color = "transparent";
				HTML5Window.textInput.value = HTML5Window.dummyCharacter;
				HTML5Window.textInput.autocapitalize = "off";
				HTML5Window.textInput.autocorrect = "off";
				HTML5Window.textInput.autocomplete = "off";
				HTML5Window.textInput.style.left = "0px";
				HTML5Window.textInput.style.top = "50%";
				if(new (EReg().default)("(iPad|iPhone|iPod).*OS 8_","gi").match((js_Browser().default).get_window().navigator.userAgent)) {
					HTML5Window.textInput.style.fontSize = "0px";
					HTML5Window.textInput.style.width = "0px";
					HTML5Window.textInput.style.height = "0px";
				} else {
					HTML5Window.textInput.style.width = "1px";
					HTML5Window.textInput.style.height = "1px";
				}
				HTML5Window.textInput.style.pointerEvents = "none";
				HTML5Window.textInput.style.zIndex = "-10000000";
				(js_Browser().default).get_document().body.appendChild(HTML5Window.textInput);
			}
			if(!this.enableTextEvents) {
				HTML5Window.textInput.addEventListener("input",$bind(this,this.handleInputEvent),true);
				HTML5Window.textInput.addEventListener("blur",$bind(this,this.handleFocusEvent),true);
				HTML5Window.textInput.addEventListener("cut",$bind(this,this.handleCutOrCopyEvent),true);
				HTML5Window.textInput.addEventListener("copy",$bind(this,this.handleCutOrCopyEvent),true);
				HTML5Window.textInput.addEventListener("paste",$bind(this,this.handlePasteEvent),true);
			}
			HTML5Window.textInput.focus();
			HTML5Window.textInput.select();
		} else if(HTML5Window.textInput != null) {
			HTML5Window.textInput.removeEventListener("input",$bind(this,this.handleInputEvent),true);
			HTML5Window.textInput.removeEventListener("blur",$bind(this,this.handleFocusEvent),true);
			HTML5Window.textInput.removeEventListener("cut",$bind(this,this.handleCutOrCopyEvent),true);
			HTML5Window.textInput.removeEventListener("copy",$bind(this,this.handleCutOrCopyEvent),true);
			HTML5Window.textInput.removeEventListener("paste",$bind(this,this.handlePasteEvent),true);
			HTML5Window.textInput.blur();
		}
		return this.enableTextEvents = value;
	},
	setFullscreen: function(value) {
		if(value) {
			if(!this.requestedFullscreen && !this.isFullscreen) {
				this.requestedFullscreen = true;
				if(($_=this.element,$bind($_,$_.requestFullscreen))) {
					document.addEventListener("fullscreenchange",$bind(this,this.handleFullscreenEvent),false);
					document.addEventListener("fullscreenerror",$bind(this,this.handleFullscreenEvent),false);
					this.element.requestFullscreen();
				} else if(this.element.mozRequestFullScreen) {
					document.addEventListener("mozfullscreenchange",$bind(this,this.handleFullscreenEvent),false);
					document.addEventListener("mozfullscreenerror",$bind(this,this.handleFullscreenEvent),false);
					this.element.mozRequestFullScreen();
				} else if(this.element.webkitRequestFullscreen) {
					document.addEventListener("webkitfullscreenchange",$bind(this,this.handleFullscreenEvent),false);
					document.addEventListener("webkitfullscreenerror",$bind(this,this.handleFullscreenEvent),false);
					this.element.webkitRequestFullscreen();
				} else if(this.element.msRequestFullscreen) {
					document.addEventListener("MSFullscreenChange",$bind(this,this.handleFullscreenEvent),false);
					document.addEventListener("MSFullscreenError",$bind(this,this.handleFullscreenEvent),false);
					this.element.msRequestFullscreen();
				}
			}
		} else if(this.isFullscreen) {
			this.requestedFullscreen = false;
			if(document.exitFullscreen) {
				document.exitFullscreen();
			} else if(document.mozCancelFullScreen) {
				document.mozCancelFullScreen();
			} else if(document.webkitExitFullscreen) {
				document.webkitExitFullscreen();
			} else if(document.msExitFullscreen) {
				document.msExitFullscreen();
			}
		}
		return value;
	},
	setIcon: function(image) {
		(lime_graphics_utils_ImageCanvasUtil().default).convertToCanvas(image);
		var link = (js_Browser().default).get_document().querySelector("link[rel*='icon']");
		if(link == null) {
			link = (js_Browser().default).get_document().createElement("link");
		}
		link.type = "image/x-icon";
		link.rel = "shortcut icon";
		link.href = image.buffer.get_src().toDataURL("image/x-icon");
		(js_Browser().default).get_document().getElementsByTagName("head")[0].appendChild(link);
	},
	setMaximized: function(value) {
		return false;
	},
	setMinimized: function(value) {
		return false;
	},
	setResizable: function(value) {
		return value;
	},
	setTitle: function(value) {
		if(value != null) {
			(js_Browser().default).get_document().title = value;
		}
		return value;
	},
	updateSize: function() {
		if(!this.parent.__resizable) {
			return;
		}
		var elementWidth;
		var elementHeight;
		if(this.element != null) {
			elementWidth = this.element.clientWidth;
			elementHeight = this.element.clientHeight;
		} else {
			elementWidth = (js_Browser().default).get_window().innerWidth;
			elementHeight = (js_Browser().default).get_window().innerHeight;
		}
		if(elementWidth != this.cacheElementWidth || elementHeight != this.cacheElementHeight) {
			this.cacheElementWidth = elementWidth;
			this.cacheElementHeight = elementHeight;
			var stretch = this.resizeElement || this.setWidth == 0 && this.setHeight == 0;
			if(this.element != null && (this.div == null || this.div != null && stretch)) {
				if(stretch) {
					if(this.parent.get_width() != elementWidth || this.parent.get_height() != elementHeight) {
						this.parent.set_width(elementWidth);
						this.parent.set_height(elementHeight);
						if(this.canvas != null) {
							if(this.element != this.canvas) {
								this.canvas.width = Math.round(elementWidth * this.scale);
								this.canvas.height = Math.round(elementHeight * this.scale);
								this.canvas.style.width = elementWidth + "px";
								this.canvas.style.height = elementHeight + "px";
							}
						} else {
							this.div.style.width = elementWidth + "px";
							this.div.style.height = elementHeight + "px";
						}
						this.parent.onResize.dispatch(elementWidth,elementHeight);
					}
				} else {
					var scaleX = this.setWidth != 0 ? elementWidth / this.setWidth : 1;
					var scaleY = this.setHeight != 0 ? elementHeight / this.setHeight : 1;
					var targetWidth = elementWidth;
					var targetHeight = elementHeight;
					var marginLeft = 0;
					var marginTop = 0;
					if(scaleX < scaleY) {
						targetHeight = Math.floor(this.setHeight * scaleX);
						marginTop = Math.floor((elementHeight - targetHeight) / 2);
					} else {
						targetWidth = Math.floor(this.setWidth * scaleY);
						marginLeft = Math.floor((elementWidth - targetWidth) / 2);
					}
					if(this.canvas != null) {
						if(this.element != this.canvas) {
							this.canvas.style.width = targetWidth + "px";
							this.canvas.style.height = targetHeight + "px";
							this.canvas.style.marginLeft = marginLeft + "px";
							this.canvas.style.marginTop = marginTop + "px";
						}
					} else {
						this.div.style.width = targetWidth + "px";
						this.div.style.height = targetHeight + "px";
						this.div.style.marginLeft = marginLeft + "px";
						this.div.style.marginTop = marginTop + "px";
					}
				}
			}
		}
	}
};
HTML5Window.prototype.__class__ = $hxClasses["lime._backend.html5.HTML5Window"] = HTML5Window;
// Init
// Statics
HTML5Window.dummyCharacter = ""
HTML5Window.windowID = 0
// Export
exports.default = HTML5Window;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 255 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system.Display
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var Display = function() {
}
// Meta
Display.__name__ = ["lime","system","Display"];
Display.prototype = {
	
};
Display.prototype.__class__ = $hxClasses["lime.system.Display"] = Display;
// Init
// Statics
// Export
exports.default = Display;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 256 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system.DisplayMode
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var DisplayMode = function(width,height,refreshRate,pixelFormat) {
	this.width = width;
	this.height = height;
	this.refreshRate = refreshRate;
	this.pixelFormat = pixelFormat;
}
// Meta
DisplayMode.__name__ = ["lime","system","DisplayMode"];
DisplayMode.prototype = {
	
};
DisplayMode.prototype.__class__ = $hxClasses["lime.system.DisplayMode"] = DisplayMode;
// Init
// Statics
// Export
exports.default = DisplayMode;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 257 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system.CFFI
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var CFFI = function(){}
// Meta
CFFI.__name__ = ["lime","system","CFFI"];
CFFI.prototype = {
	
};
CFFI.prototype.__class__ = $hxClasses["lime.system.CFFI"] = CFFI;
// Init
{
	CFFI.available = false;
	CFFI.enabled = false;
};
// Statics
CFFI.load = function(library,method,args,lazy) {
	if(lazy == null) {
		lazy = false;
	}
	if(args == null) {
		args = 0;
	}
	if(!CFFI.enabled) {
		return (Reflect().default).makeVarArgs(function(__) {
			return { };
		});
	}
	var result = null;
	return result;
}
CFFI.__findHaxelib = function(library) {
	return "";
}
CFFI.__loaderTrace = function(message) {
}
CFFI.__sysName = function() {
	return null;
}
CFFI.__tryLoad = function(name,library,func,args) {
	return null;
}
CFFI.__moduleNames = null
// Export
exports.default = CFFI;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 258 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.ds._StringMap.StringMapIterator
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var StringMapIterator = function(map,keys) {
	this.map = map;
	this.keys = keys;
	this.index = 0;
	this.count = keys.length;
}
// Meta
StringMapIterator.__name__ = ["haxe","ds","_StringMap","StringMapIterator"];
StringMapIterator.prototype = {
	hasNext: function() {
		return this.index < this.count;
	},
	next: function() {
		return this.map.get(this.keys[this.index++]);
	}
};
StringMapIterator.prototype.__class__ = $hxClasses["haxe.ds._StringMap.StringMapIterator"] = StringMapIterator;
// Init
// Statics
// Export
exports.default = StringMapIterator;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 259 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.utils._ImageDataUtil.ImageDataView
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var ImageDataView = function(image,rect) {
	this.image = image;
	if(rect == null) {
		this.rect = image.get_rect();
	} else {
		if(rect.x < 0) {
			rect.x = 0;
		}
		if(rect.y < 0) {
			rect.y = 0;
		}
		if(rect.x + rect.width > image.width) {
			rect.width = image.width - rect.x;
		}
		if(rect.y + rect.height > image.height) {
			rect.height = image.height - rect.y;
		}
		if(rect.width < 0) {
			rect.width = 0;
		}
		if(rect.height < 0) {
			rect.height = 0;
		}
		this.rect = rect;
	}
	this.stride = image.buffer.get_stride();
	this.__update();
}
// Meta
ImageDataView.__name__ = ["lime","graphics","utils","_ImageDataUtil","ImageDataView"];
ImageDataView.prototype = {
	clip: function(x,y,width,height) {
		this.rect.__contract(x,y,width,height);
		this.__update();
	},
	hasRow: function(y) {
		if(y >= 0) {
			return y < this.height;
		} else {
			return false;
		}
	},
	offset: function(x,y) {
		if(x < 0) {
			this.rect.x += x;
			if(this.rect.x < 0) {
				this.rect.x = 0;
			}
		} else {
			this.rect.x += x;
			this.rect.width -= x;
		}
		if(y < 0) {
			this.rect.y += y;
			if(this.rect.y < 0) {
				this.rect.y = 0;
			}
		} else {
			this.rect.y += y;
			this.rect.height -= y;
		}
		this.__update();
	},
	row: function(y) {
		return this.byteOffset + this.stride * y;
	},
	__update: function() {
		this.x = Math.ceil(this.rect.x);
		this.y = Math.ceil(this.rect.y);
		this.width = Math.floor(this.rect.width);
		this.height = Math.floor(this.rect.height);
		this.byteOffset = this.stride * (this.y + this.image.offsetY) + (this.x + this.image.offsetX) * 4;
	}
};
ImageDataView.prototype.__class__ = $hxClasses["lime.graphics.utils._ImageDataUtil.ImageDataView"] = ImageDataView;
// Init
// Statics
// Export
exports.default = ImageDataView;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 260 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: haxe.io.Error
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var Error = $hxClasses["haxe.io.Error"] = { __ename__: ["haxe","io","Error"], __constructs__: ["Blocked","Overflow","OutsideBounds","Custom"] }
Error.Custom = function(e) { var $x = ["Custom",3,e]; $x.__enum__ = Error; $x.toString = $estr; return $x; }
Error.Blocked = ["Blocked",0];
Error.Blocked.toString = $estr;
Error.Blocked.__enum__ = Error;
Error.Overflow = ["Overflow",1];
Error.Overflow.toString = $estr;
Error.Overflow.__enum__ = Error;
Error.OutsideBounds = ["OutsideBounds",2];
Error.OutsideBounds.toString = $estr;
Error.OutsideBounds.__enum__ = Error;
exports.default = Error;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 261 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: _List.ListNode
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var ListNode = function(item,next) {
	this.item = item;
	this.next = next;
}
// Meta
ListNode.__name__ = ["_List","ListNode"];
ListNode.prototype = {
	
};
ListNode.prototype.__class__ = $hxClasses["_List.ListNode"] = ListNode;
// Init
// Statics
// Export
exports.default = ListNode;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 262 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: _List.ListIterator
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var ListIterator = function(head) {
	this.head = head;
}
// Meta
ListIterator.__name__ = ["_List","ListIterator"];
ListIterator.prototype = {
	hasNext: function() {
		return this.head != null;
	},
	next: function() {
		var val = this.head.item;
		this.head = this.head.next;
		return val;
	}
};
ListIterator.prototype.__class__ = $hxClasses["_List.ListIterator"] = ListIterator;
// Init
// Statics
// Export
exports.default = ListIterator;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 263 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.Renderer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
function lime_app__$Event_$lime_$graphics_$RenderContext_$Void() {return __webpack_require__(264);}
function lime__$backend_html5_HTML5Renderer() {return __webpack_require__(265);}
// Constructor
var Renderer = function(window) {
	this.onRender = new (lime_app__$Event_$Void_$Void().default)();
	this.onContextRestored = new (lime_app__$Event_$lime_$graphics_$RenderContext_$Void().default)();
	this.onContextLost = new (lime_app__$Event_$Void_$Void().default)();
	this.window = window;
	this.backend = new (lime__$backend_html5_HTML5Renderer().default)(this);
	this.window.renderer = this;
}
// Meta
Renderer.__name__ = ["lime","graphics","Renderer"];
Renderer.prototype = {
	create: function() {
		this.backend.create();
	},
	flip: function() {
		this.backend.flip();
	},
	readPixels: function(rect) {
		return this.backend.readPixels(rect);
	},
	render: function() {
		this.backend.render();
	}
};
Renderer.prototype.__class__ = $hxClasses["lime.graphics.Renderer"] = Renderer;
// Init
// Statics
// Export
exports.default = Renderer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 264 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_lime_graphics_RenderContext_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_lime_graphics_RenderContext_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_lime_graphics_RenderContext_Void.__name__ = ["lime","app","_Event_lime_graphics_RenderContext_Void"];
_Event_lime_graphics_RenderContext_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_lime_graphics_RenderContext_Void.prototype.__class__ = $hxClasses["lime.app._Event_lime_graphics_RenderContext_Void"] = _Event_lime_graphics_RenderContext_Void;
// Init
// Statics
// Export
exports.default = _Event_lime_graphics_RenderContext_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 265 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime._backend.html5.HTML5Renderer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function Type() {return __webpack_require__(10);}
function lime_graphics_RenderContext() {return __webpack_require__(266);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function Reflect() {return __webpack_require__(5);}
function lime_graphics_opengl_GL() {return __webpack_require__(49);}
function lime__$backend_html5_HTML5GLRenderContext() {return __webpack_require__(153);}
function lime_math_Rectangle() {return __webpack_require__(41);}
function js_Browser() {return __webpack_require__(11);}
function Std() {return __webpack_require__(4);}
function lime_graphics_Image() {return __webpack_require__(56);}
// Constructor
var HTML5Renderer = function(parent) {
	this.parent = parent;
}
// Meta
HTML5Renderer.__name__ = ["lime","_backend","html5","HTML5Renderer"];
HTML5Renderer.prototype = {
	create: function() {
		this.createContext();
		var _g = this.parent.context;
		if((Type().default).enumIndex(_g) == 0) {
			this.parent.window.backend.canvas.addEventListener("webglcontextlost",$bind(this,this.handleEvent),false);
			this.parent.window.backend.canvas.addEventListener("webglcontextrestored",$bind(this,this.handleEvent),false);
		}
	},
	createContext: function() {
		if(this.parent.window.backend.div != null) {
			this.parent.context = (lime_graphics_RenderContext().default).DOM(this.parent.window.backend.div);
			this.parent.type = (lime_graphics_RendererType().default).DOM;
		} else if(this.parent.window.backend.canvas != null) {
			var webgl = null;
			var renderType = this.parent.window.backend.renderType;
			var forceCanvas = renderType == "canvas";
			var forceWebGL = renderType == "opengl" || renderType == "webgl" || renderType == "webgl1" || renderType == "webgl2";
			var allowWebGL2 = renderType != "webgl1";
			if(forceWebGL || !forceCanvas && (!(Reflect().default).hasField(this.parent.window.config,"hardware") || this.parent.window.config.hardware)) {
				var transparentBackground = (Reflect().default).hasField(this.parent.window.config,"background") && this.parent.window.config.background == null;
				var colorDepth = (Reflect().default).hasField(this.parent.window.config,"colorDepth") ? this.parent.window.config.colorDepth : 16;
				var options = { alpha : transparentBackground || colorDepth > 16, antialias : (Reflect().default).hasField(this.parent.window.config,"antialiasing") && this.parent.window.config.antialiasing > 0, depth : (Reflect().default).hasField(this.parent.window.config,"depthBuffer") ? this.parent.window.config.depthBuffer : true, premultipliedAlpha : true, stencil : (Reflect().default).hasField(this.parent.window.config,"stencilBuffer") && this.parent.window.config.stencilBuffer, preserveDrawingBuffer : false};
				var glContextType = ["webgl","experimental-webgl"];
				if(allowWebGL2) {
					glContextType.unshift("webgl2");
				}
				var _g = 0;
				while(_g < glContextType.length) {
					var name = glContextType[_g];
					++_g;
					webgl = this.parent.window.backend.canvas.getContext(name,options);
					if(webgl != null) {
						break;
					}
				}
			}
			if(webgl == null) {
				this.parent.context = (lime_graphics_RenderContext().default).CANVAS(this.parent.window.backend.canvas.getContext("2d"));
				this.parent.type = (lime_graphics_RendererType().default).CANVAS;
			} else {
				(lime_graphics_opengl_GL().default).context = new (lime__$backend_html5_HTML5GLRenderContext().default)(webgl);
				this.parent.context = (lime_graphics_RenderContext().default).OPENGL((lime_graphics_opengl_GL().default).context);
				this.parent.type = (lime_graphics_RendererType().default).OPENGL;
			}
		}
	},
	flip: function() {
	},
	handleEvent: function(event) {
		var _g = event.type;
		switch(_g) {
		case "webglcontextlost":
			event.preventDefault();
			if((lime_graphics_opengl_GL().default).context != null) {
				(lime_graphics_opengl_GL().default).context.__contextLost = true;
			}
			this.parent.context = null;
			this.parent.onContextLost.dispatch();
			break;
		case "webglcontextrestored":
			this.createContext();
			this.parent.onContextRestored.dispatch(this.parent.context);
			break;
		default:
		}
	},
	readPixels: function(rect) {
		if(this.parent.window.backend.canvas != null) {
			if(rect == null) {
				rect = new (lime_math_Rectangle().default)(0,0,this.parent.window.backend.canvas.width,this.parent.window.backend.canvas.height);
			} else {
				rect.__contract(0,0,this.parent.window.backend.canvas.width,this.parent.window.backend.canvas.height);
			}
			if(rect.width > 0 && rect.height > 0) {
				var canvas = (js_Browser().default).get_document().createElement("canvas");
				canvas.width = (Std().default)["int"](rect.width);
				canvas.height = (Std().default)["int"](rect.height);
				var context = canvas.getContext("2d");
				context.drawImage(this.parent.window.backend.canvas,-rect.x,-rect.y);
				return (lime_graphics_Image().default).fromCanvas(canvas);
			}
		}
		return null;
	},
	render: function() {
	}
};
HTML5Renderer.prototype.__class__ = $hxClasses["lime._backend.html5.HTML5Renderer"] = HTML5Renderer;
// Init
// Statics
// Export
exports.default = HTML5Renderer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 266 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.graphics.RenderContext
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var RenderContext = $hxClasses["lime.graphics.RenderContext"] = { __ename__: ["lime","graphics","RenderContext"], __constructs__: ["OPENGL","CANVAS","DOM","FLASH","CAIRO","CONSOLE","CUSTOM","NONE"] }
RenderContext.OPENGL = function(gl) { var $x = ["OPENGL",0,gl]; $x.__enum__ = RenderContext; $x.toString = $estr; return $x; }
RenderContext.CANVAS = function(context) { var $x = ["CANVAS",1,context]; $x.__enum__ = RenderContext; $x.toString = $estr; return $x; }
RenderContext.DOM = function(element) { var $x = ["DOM",2,element]; $x.__enum__ = RenderContext; $x.toString = $estr; return $x; }
RenderContext.NONE = ["NONE",7];
RenderContext.NONE.toString = $estr;
RenderContext.NONE.__enum__ = RenderContext;
RenderContext.FLASH = function(stage) { var $x = ["FLASH",3,stage]; $x.__enum__ = RenderContext; $x.toString = $estr; return $x; }
RenderContext.CONSOLE = function(context) { var $x = ["CONSOLE",5,context]; $x.__enum__ = RenderContext; $x.toString = $estr; return $x; }
RenderContext.CAIRO = function(cairo) { var $x = ["CAIRO",4,cairo]; $x.__enum__ = RenderContext; $x.toString = $estr; return $x; }
RenderContext.CUSTOM = function(data) { var $x = ["CUSTOM",6,data]; $x.__enum__ = RenderContext; $x.toString = $estr; return $x; }
exports.default = RenderContext;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 267 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.DataPointerObject
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils_DataPointerObjectType() {return __webpack_require__(268);}
// Constructor
var DataPointerObject = function(bufferView,buffer,offset) {
	if(offset == null) {
		offset = 0;
	}
	if(bufferView != null) {
		this.bufferView = bufferView;
		this.type = (lime_utils_DataPointerObjectType().default).BUFFER_VIEW;
	} else if(buffer != null) {
		this.buffer = buffer;
		this.type = (lime_utils_DataPointerObjectType().default).BUFFER;
	} else {
		this.type = (lime_utils_DataPointerObjectType().default).VALUE;
	}
	this.offset = offset;
}
// Meta
DataPointerObject.__name__ = ["lime","utils","DataPointerObject"];
DataPointerObject.prototype = {
	
};
DataPointerObject.prototype.__class__ = $hxClasses["lime.utils.DataPointerObject"] = DataPointerObject;
// Init
// Statics
// Export
exports.default = DataPointerObject;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 268 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.utils.DataPointerObjectType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var DataPointerObjectType = $hxClasses["lime.utils.DataPointerObjectType"] = { __ename__: ["lime","utils","DataPointerObjectType"], __constructs__: ["BUFFER","BUFFER_VIEW","VALUE"] }
DataPointerObjectType.VALUE = ["VALUE",2];
DataPointerObjectType.VALUE.toString = $estr;
DataPointerObjectType.VALUE.__enum__ = DataPointerObjectType;
DataPointerObjectType.BUFFER = ["BUFFER",0];
DataPointerObjectType.BUFFER.toString = $estr;
DataPointerObjectType.BUFFER.__enum__ = DataPointerObjectType;
DataPointerObjectType.BUFFER_VIEW = ["BUFFER_VIEW",1];
DataPointerObjectType.BUFFER_VIEW.toString = $estr;
DataPointerObjectType.BUFFER_VIEW.__enum__ = DataPointerObjectType;
exports.default = DataPointerObjectType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 269 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system._CFFIPointer.CFFIPointer_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var CFFIPointer_Impl_ = function(){}
// Meta
CFFIPointer_Impl_.__name__ = ["lime","system","_CFFIPointer","CFFIPointer_Impl_"];
CFFIPointer_Impl_.prototype = {
	
};
CFFIPointer_Impl_.prototype.__class__ = $hxClasses["lime.system._CFFIPointer.CFFIPointer_Impl_"] = CFFIPointer_Impl_;
// Init
// Statics
CFFIPointer_Impl_._new = function(handle) {
	var this1 = handle;
	return this1;
}
CFFIPointer_Impl_.get = function(this1) {
	var tmp = this1 != null;
	return 0;
}
CFFIPointer_Impl_.equals = function(a,b) {
	return CFFIPointer_Impl_.get(a) == b;
}
CFFIPointer_Impl_.equalsPointer = function(a,b) {
	return CFFIPointer_Impl_.get(a) == CFFIPointer_Impl_.get(b);
}
CFFIPointer_Impl_.greaterThan = function(a,b) {
	return CFFIPointer_Impl_.get(a) > b;
}
CFFIPointer_Impl_.greaterThanPointer = function(a,b) {
	return CFFIPointer_Impl_.get(a) > CFFIPointer_Impl_.get(b);
}
CFFIPointer_Impl_.greaterThanOrEqual = function(a,b) {
	return CFFIPointer_Impl_.get(a) >= b;
}
CFFIPointer_Impl_.greaterThanOrEqualPointer = function(a,b) {
	return CFFIPointer_Impl_.get(a) >= CFFIPointer_Impl_.get(b);
}
CFFIPointer_Impl_.lessThan = function(a,b) {
	return CFFIPointer_Impl_.get(a) < b;
}
CFFIPointer_Impl_.lessThanPointer = function(a,b) {
	return CFFIPointer_Impl_.get(a) < CFFIPointer_Impl_.get(b);
}
CFFIPointer_Impl_.lessThanOrEqual = function(a,b) {
	return CFFIPointer_Impl_.get(a) <= b;
}
CFFIPointer_Impl_.lessThanOrEqualPointer = function(a,b) {
	return CFFIPointer_Impl_.get(a) <= CFFIPointer_Impl_.get(b);
}
CFFIPointer_Impl_.notEquals = function(a,b) {
	return CFFIPointer_Impl_.get(a) != b;
}
CFFIPointer_Impl_.notEqualsPointer = function(a,b) {
	return CFFIPointer_Impl_.get(a) != CFFIPointer_Impl_.get(b);
}
// Export
exports.default = CFFIPointer_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 270 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.format.BMP
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_format_BMPType() {return __webpack_require__(271);}
function Type() {return __webpack_require__(10);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function lime_math_Rectangle() {return __webpack_require__(41);}
// Constructor
var BMP = function(){}
// Meta
BMP.__name__ = ["lime","graphics","format","BMP"];
BMP.prototype = {
	
};
BMP.prototype.__class__ = $hxClasses["lime.graphics.format.BMP"] = BMP;
// Init
// Statics
BMP.encode = function(image,type) {
	if(image.get_premultiplied() || image.get_format() != 0) {
		image = image.clone();
		image.set_premultiplied(false);
		image.set_format(0);
	}
	if(type == null) {
		type = (lime_graphics_format_BMPType().default).RGB;
	}
	var fileHeaderLength = 14;
	var infoHeaderLength = 40;
	var pixelValuesLength = image.width * image.height * 4;
	if(type != null) {
		switch((Type().default).enumIndex(type)) {
		case 0:
			pixelValuesLength = image.width * 3 + image.width * 3 % 4 + image.height * 3 + image.height * 3;
			break;
		case 1:
			infoHeaderLength = 108;
			break;
		case 2:
			fileHeaderLength = 0;
			pixelValuesLength += image.width * image.height;
			break;
		}
	}
	var data = (haxe_io_Bytes().default).alloc(fileHeaderLength + infoHeaderLength + pixelValuesLength);
	var position = 0;
	if(fileHeaderLength > 0) {
		data.set(position++,66);
		data.set(position++,77);
		data.setInt32(position,data.get_length());
		position += 4;
		data.setUInt16(position,0);
		position += 2;
		data.setUInt16(position,0);
		position += 2;
		data.setInt32(position,fileHeaderLength + infoHeaderLength);
		position += 4;
	}
	data.setInt32(position,infoHeaderLength);
	position += 4;
	data.setInt32(position,image.width);
	position += 4;
	data.setInt32(position,type == (lime_graphics_format_BMPType().default).ICO ? image.height * 2 : image.height);
	position += 4;
	data.setUInt16(position,1);
	position += 2;
	data.setUInt16(position,type == (lime_graphics_format_BMPType().default).RGB ? 24 : 32);
	position += 2;
	data.setInt32(position,type == (lime_graphics_format_BMPType().default).BITFIELD ? 3 : 0);
	position += 4;
	data.setInt32(position,pixelValuesLength);
	position += 4;
	data.setInt32(position,11824);
	position += 4;
	data.setInt32(position,11824);
	position += 4;
	data.setInt32(position,0);
	position += 4;
	data.setInt32(position,0);
	position += 4;
	if(type == (lime_graphics_format_BMPType().default).BITFIELD) {
		data.setInt32(position,16711680);
		position += 4;
		data.setInt32(position,65280);
		position += 4;
		data.setInt32(position,255);
		position += 4;
		data.setInt32(position,-16777216);
		position += 4;
		data.set(position++,32);
		data.set(position++,110);
		data.set(position++,105);
		data.set(position++,87);
		var _g = 0;
		while(_g < 48) {
			var i = _g++;
			data.set(position++,0);
		}
	}
	var pixels = image.getPixels(new (lime_math_Rectangle().default)(0,0,image.width,image.height),1);
	var readPosition = 0;
	var a;
	var r;
	var g;
	var b;
	if(type != null) {
		switch((Type().default).enumIndex(type)) {
		case 0:
			var _g1 = 0;
			var _g2 = image.height;
			while(_g1 < _g2) {
				var y = _g1++;
				readPosition = (image.height - 1 - y) * 4 * image.width;
				var _g3 = 0;
				var _g21 = image.width;
				while(_g3 < _g21) {
					var x = _g3++;
					a = pixels.get(readPosition++);
					r = pixels.get(readPosition++);
					g = pixels.get(readPosition++);
					b = pixels.get(readPosition++);
					data.set(position++,b);
					data.set(position++,g);
					data.set(position++,r);
				}
				var _g31 = 0;
				var _g22 = image.width * 3 % 4;
				while(_g31 < _g22) {
					var i1 = _g31++;
					data.set(position++,0);
				}
			}
			break;
		case 1:
			var _g11 = 0;
			var _g4 = image.height;
			while(_g11 < _g4) {
				var y1 = _g11++;
				readPosition = (image.height - 1 - y1) * 4 * image.width;
				var _g32 = 0;
				var _g23 = image.width;
				while(_g32 < _g23) {
					var x1 = _g32++;
					a = pixels.get(readPosition++);
					r = pixels.get(readPosition++);
					g = pixels.get(readPosition++);
					b = pixels.get(readPosition++);
					data.set(position++,b);
					data.set(position++,g);
					data.set(position++,r);
					data.set(position++,a);
				}
			}
			break;
		case 2:
			var andMask = (haxe_io_Bytes().default).alloc(image.width * image.height);
			var maskPosition = 0;
			var _g12 = 0;
			var _g5 = image.height;
			while(_g12 < _g5) {
				var y2 = _g12++;
				readPosition = (image.height - 1 - y2) * 4 * image.width;
				var _g33 = 0;
				var _g24 = image.width;
				while(_g33 < _g24) {
					var x2 = _g33++;
					a = pixels.get(readPosition++);
					r = pixels.get(readPosition++);
					g = pixels.get(readPosition++);
					b = pixels.get(readPosition++);
					data.set(position++,b);
					data.set(position++,g);
					data.set(position++,r);
					data.set(position++,a);
					andMask.set(maskPosition++,0);
				}
			}
			data.blit(position,andMask,0,image.width * image.height);
			break;
		}
	}
	return data;
}
// Export
exports.default = BMP;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 271 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.graphics.format.BMPType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var BMPType = $hxClasses["lime.graphics.format.BMPType"] = { __ename__: ["lime","graphics","format","BMPType"], __constructs__: ["RGB","BITFIELD","ICO"] }
BMPType.ICO = ["ICO",2];
BMPType.ICO.toString = $estr;
BMPType.ICO.__enum__ = BMPType;
BMPType.BITFIELD = ["BITFIELD",1];
BMPType.BITFIELD.toString = $estr;
BMPType.BITFIELD.__enum__ = BMPType;
BMPType.RGB = ["RGB",0];
BMPType.RGB.toString = $estr;
BMPType.RGB.__enum__ = BMPType;
exports.default = BMPType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 272 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.format.JPEG
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_ImageType() {return __webpack_require__(55);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function js_Browser() {return __webpack_require__(11);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var JPEG = function(){}
// Meta
JPEG.__name__ = ["lime","graphics","format","JPEG"];
JPEG.prototype = {
	
};
JPEG.prototype.__class__ = $hxClasses["lime.graphics.format.JPEG"] = JPEG;
// Init
// Statics
JPEG.decodeBytes = function(bytes,decodeData) {
	if(decodeData == null) {
		decodeData = true;
	}
	return null;
}
JPEG.decodeFile = function(path,decodeData) {
	if(decodeData == null) {
		decodeData = true;
	}
	return null;
}
JPEG.encode = function(image,quality) {
	if(image.get_premultiplied() || image.get_format() != 0) {
		image = image.clone();
		image.set_premultiplied(false);
		image.set_format(0);
	}
	image.type = (lime_graphics_ImageType().default).CANVAS;
	(lime_graphics_utils_ImageCanvasUtil().default).sync(image,false);
	if(image.buffer.__srcCanvas != null) {
		var data = image.buffer.__srcCanvas.toDataURL("image/jpeg",quality / 100);
		var buffer = (js_Browser().default).get_window().atob(data.split(";base64,")[1]);
		var bytes = (haxe_io_Bytes().default).alloc(buffer.length);
		var _g1 = 0;
		var _g = buffer.length;
		while(_g1 < _g) {
			var i = _g1++;
			bytes.set(i,(HxOverrides().default).cca(buffer,i));
		}
		return bytes;
	}
	return null;
}
// Export
exports.default = JPEG;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 273 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.format.PNG
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_ImageType() {return __webpack_require__(55);}
function lime_graphics_utils_ImageCanvasUtil() {return __webpack_require__(32);}
function js_Browser() {return __webpack_require__(11);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var PNG = function(){}
// Meta
PNG.__name__ = ["lime","graphics","format","PNG"];
PNG.prototype = {
	
};
PNG.prototype.__class__ = $hxClasses["lime.graphics.format.PNG"] = PNG;
// Init
// Statics
PNG.decodeBytes = function(bytes,decodeData) {
	if(decodeData == null) {
		decodeData = true;
	}
	return null;
}
PNG.decodeFile = function(path,decodeData) {
	if(decodeData == null) {
		decodeData = true;
	}
	return null;
}
PNG.encode = function(image) {
	if(image.get_premultiplied() || image.get_format() != 0) {
		image = image.clone();
		image.set_premultiplied(false);
		image.set_format(0);
	}
	image.type = (lime_graphics_ImageType().default).CANVAS;
	(lime_graphics_utils_ImageCanvasUtil().default).sync(image,false);
	if(image.buffer.__srcCanvas != null) {
		var data = image.buffer.__srcCanvas.toDataURL("image/png");
		var buffer = (js_Browser().default).get_window().atob(data.split(";base64,")[1]);
		var bytes = (haxe_io_Bytes().default).alloc(buffer.length);
		var _g1 = 0;
		var _g = buffer.length;
		while(_g1 < _g) {
			var i = _g1++;
			bytes.set(i,(HxOverrides().default).cca(buffer,i));
		}
		return bytes;
	}
	return null;
}
// Export
exports.default = PNG;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 274 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Future.FutureWork
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_system_ThreadPool() {return __webpack_require__(275);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
// Constructor
var FutureWork = function(){}
// Meta
FutureWork.__name__ = ["lime","app","_Future","FutureWork"];
FutureWork.prototype = {
	
};
FutureWork.prototype.__class__ = $hxClasses["lime.app._Future.FutureWork"] = FutureWork;
// Init
// Statics
FutureWork.queue = function(state) {
	if(FutureWork.threadPool == null) {
		FutureWork.threadPool = new (lime_system_ThreadPool().default)();
		FutureWork.threadPool.doWork.add(FutureWork.threadPool_doWork);
		FutureWork.threadPool.onComplete.add(FutureWork.threadPool_onComplete);
		FutureWork.threadPool.onError.add(FutureWork.threadPool_onError);
	}
	FutureWork.threadPool.queue(state);
}
FutureWork.threadPool_doWork = function(state) {
	try {
		var result = state.work();
		FutureWork.threadPool.sendComplete({ promise : state.promise, result : result});
	} catch( e ) {
		if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
		FutureWork.threadPool.sendError({ promise : state.promise, error : e});
	}
}
FutureWork.threadPool_onComplete = function(state) {
	state.promise.complete(state.result);
}
FutureWork.threadPool_onError = function(state) {
	state.promise.error(state.error);
}
// Export
exports.default = FutureWork;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 275 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system.ThreadPool
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_app__$Event_$haxe_$Function_$Void() {return __webpack_require__(276);}
// Constructor
var ThreadPool = function(minThreads,maxThreads) {
	if(maxThreads == null) {
		maxThreads = 1;
	}
	if(minThreads == null) {
		minThreads = 0;
	}
	this.onRun = new (lime_app__$Event_$haxe_$Function_$Void().default)();
	this.onProgress = new (lime_app__$Event_$haxe_$Function_$Void().default)();
	this.onError = new (lime_app__$Event_$haxe_$Function_$Void().default)();
	this.onComplete = new (lime_app__$Event_$haxe_$Function_$Void().default)();
	this.doWork = new (lime_app__$Event_$haxe_$Function_$Void().default)();
	this.minThreads = minThreads;
	this.maxThreads = maxThreads;
	this.currentThreads = 0;
}
// Meta
ThreadPool.__name__ = ["lime","system","ThreadPool"];
ThreadPool.prototype = {
	queue: function(state) {
		this.runWork(state);
	},
	sendComplete: function(state) {
		this.onComplete.dispatch(state);
	},
	sendError: function(state) {
		this.onError.dispatch(state);
	},
	sendProgress: function(state) {
		this.onProgress.dispatch(state);
	},
	runWork: function(state) {
		this.onRun.dispatch(state);
		this.doWork.dispatch(state);
	}
};
ThreadPool.prototype.__class__ = $hxClasses["lime.system.ThreadPool"] = ThreadPool;
// Init
// Statics
// Export
exports.default = ThreadPool;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 276 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_haxe_Function_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_haxe_Function_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_haxe_Function_Void.__name__ = ["lime","app","_Event_haxe_Function_Void"];
_Event_haxe_Function_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_haxe_Function_Void.prototype.__class__ = $hxClasses["lime.app._Event_haxe_Function_Void"] = _Event_haxe_Function_Void;
// Init
// Statics
// Export
exports.default = _Event_haxe_Function_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 277 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime._backend.html5.HTML5Application
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function js_Browser() {return __webpack_require__(11);}
function Std() {return __webpack_require__(4);}
function lime_ui_Joystick() {return __webpack_require__(86);}
function lime__$backend_html5_GameDeviceData() {return __webpack_require__(278);}
function lime_ui_Gamepad() {return __webpack_require__(85);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
function lime_media_AudioManager() {return __webpack_require__(279);}
// Constructor
var HTML5Application = function(parent) {
	this.gameDeviceCache = new (haxe_ds_IntMap().default)();
	this.parent = parent;
	this.currentUpdate = 0;
	this.lastUpdate = 0;
	this.nextUpdate = 0;
	this.framePeriod = -1;
	(lime_media_AudioManager().default).init();
}
// Meta
HTML5Application.__name__ = ["lime","_backend","html5","HTML5Application"];
HTML5Application.prototype = {
	convertKeyCode: function(keyCode) {
		if(keyCode >= 65 && keyCode <= 90) {
			return keyCode + 32;
		}
		switch(keyCode) {
		case 16:
			return 1073742049;
		case 17:
			return 1073742048;
		case 18:
			return 1073742050;
		case 20:
			return 1073741881;
		case 33:
			return 1073741899;
		case 34:
			return 1073741902;
		case 35:
			return 1073741901;
		case 36:
			return 1073741898;
		case 37:
			return 1073741904;
		case 38:
			return 1073741906;
		case 39:
			return 1073741903;
		case 40:
			return 1073741905;
		case 45:
			return 1073741897;
		case 46:
			return 127;
		case 96:
			return 1073741922;
		case 97:
			return 1073741913;
		case 98:
			return 1073741914;
		case 99:
			return 1073741915;
		case 100:
			return 1073741916;
		case 101:
			return 1073741917;
		case 102:
			return 1073741918;
		case 103:
			return 1073741919;
		case 104:
			return 1073741920;
		case 105:
			return 1073741921;
		case 106:
			return 1073741909;
		case 107:
			return 1073741911;
		case 109:
			return 1073741910;
		case 110:
			return 1073741923;
		case 111:
			return 1073741908;
		case 112:
			return 1073741882;
		case 113:
			return 1073741883;
		case 114:
			return 1073741884;
		case 115:
			return 1073741885;
		case 116:
			return 1073741886;
		case 117:
			return 1073741887;
		case 118:
			return 1073741888;
		case 119:
			return 1073741889;
		case 120:
			return 1073741890;
		case 121:
			return 1073741891;
		case 122:
			return 1073741892;
		case 123:
			return 1073741893;
		case 124:
			return 1073741928;
		case 125:
			return 1073741929;
		case 126:
			return 1073741930;
		case 144:
			return 1073741907;
		case 186:
			return 59;
		case 187:
			return 61;
		case 188:
			return 44;
		case 189:
			return 45;
		case 190:
			return 46;
		case 191:
			return 47;
		case 192:
			return 96;
		case 219:
			return 91;
		case 220:
			return 92;
		case 221:
			return 93;
		case 222:
			return 39;
		}
		return keyCode;
	},
	create: function(config) {
	},
	exec: function() {
		(js_Browser().default).get_window().addEventListener("keydown",$bind(this,this.handleKeyEvent),false);
		(js_Browser().default).get_window().addEventListener("keyup",$bind(this,this.handleKeyEvent),false);
		(js_Browser().default).get_window().addEventListener("focus",$bind(this,this.handleWindowEvent),false);
		(js_Browser().default).get_window().addEventListener("blur",$bind(this,this.handleWindowEvent),false);
		(js_Browser().default).get_window().addEventListener("resize",$bind(this,this.handleWindowEvent),false);
		(js_Browser().default).get_window().addEventListener("beforeunload",$bind(this,this.handleWindowEvent),false);
		
				if (!CanvasRenderingContext2D.prototype.isPointInStroke) {
					CanvasRenderingContext2D.prototype.isPointInStroke = function (path, x, y) {
						return false;
					};
				}
				if (!CanvasRenderingContext2D.prototype.isPointInPath) {
					CanvasRenderingContext2D.prototype.isPointInPath = function (path, x, y) {
						return false;
					};
				}
				
				if ('performance' in window == false) {
					window.performance = {};
				}
				
				if ('now' in window.performance == false) {
					var offset = Date.now();
					if (performance.timing && performance.timing.navigationStart) {
						offset = performance.timing.navigationStart
					}
					window.performance.now = function now() {
						return Date.now() - offset;
					}
				}
				
				var lastTime = 0;
				var vendors = ['ms', 'moz', 'webkit', 'o'];
				for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
					window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
					window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame'];
				}
				
				if (!window.requestAnimationFrame)
					window.requestAnimationFrame = function(callback, element) {
						var currTime = new Date().getTime();
						var timeToCall = Math.max(0, 16 - (currTime - lastTime));
						var id = window.setTimeout(function() { callback(currTime + timeToCall); }, 
						  timeToCall);
						lastTime = currTime + timeToCall;
						return id;
					};
				
				if (!window.cancelAnimationFrame)
					window.cancelAnimationFrame = function(id) {
						clearTimeout(id);
					};
				
				window.requestAnimFrame = window.requestAnimationFrame;
			;
		this.lastUpdate = new Date().getTime();
		this.handleApplicationEvent();
		return 0;
	},
	exit: function() {
	},
	getFrameRate: function() {
		if(this.framePeriod < 0) {
			return 60;
		} else if(this.framePeriod == 1000) {
			return 0;
		} else {
			return 1000 / this.framePeriod;
		}
	},
	handleApplicationEvent: function(__) {
		if(this.parent.get_window() != null) {
			this.parent.get_window().backend.updateSize();
		}
		this.updateGameDevices();
		this.currentUpdate = new Date().getTime();
		if(this.currentUpdate >= this.nextUpdate) {
			this.deltaTime = this.currentUpdate - this.lastUpdate;
			this.parent.onUpdate.dispatch((Std().default)["int"](this.deltaTime));
			if(this.parent.get_renderer() != null && this.parent.get_renderer().context != null) {
				this.parent.get_renderer().render();
				this.parent.get_renderer().onRender.dispatch();
				if(!this.parent.get_renderer().onRender.canceled) {
					this.parent.get_renderer().flip();
				}
			}
			if(this.framePeriod < 0) {
				this.nextUpdate = this.currentUpdate;
				this.nextUpdate = this.currentUpdate;
			} else {
				this.nextUpdate = this.currentUpdate + this.framePeriod;
			}
			this.lastUpdate = this.currentUpdate;
		}
		(js_Browser().default).get_window().requestAnimationFrame($bind(this,this.handleApplicationEvent));
	},
	handleKeyEvent: function(event) {
		if(this.parent.get_window() != null) {
			var keyCode = this.convertKeyCode(event.keyCode != null ? event.keyCode : event.which);
			var modifier = (event.shiftKey ? 3 : 0) | (event.ctrlKey ? 192 : 0) | (event.altKey ? 768 : 0) | (event.metaKey ? 3072 : 0);
			if(event.type == "keydown") {
				this.parent.get_window().onKeyDown.dispatch(keyCode,modifier);
				if(this.parent.get_window().onKeyDown.canceled) {
					event.preventDefault();
				}
			} else {
				this.parent.get_window().onKeyUp.dispatch(keyCode,modifier);
				if(this.parent.get_window().onKeyUp.canceled) {
					event.preventDefault();
				}
			}
		}
	},
	handleWindowEvent: function(event) {
		if(this.parent.get_window() != null) {
			var _g = event.type;
			switch(_g) {
			case "beforeunload":
				if(!event.defaultPrevented) {
					this.parent.get_window().onClose.dispatch();
					if(this.parent.get_window() != null && this.parent.get_window().onClose.canceled) {
						event.preventDefault();
					}
				}
				break;
			case "blur":
				this.parent.get_window().onFocusOut.dispatch();
				this.parent.get_window().onDeactivate.dispatch();
				break;
			case "focus":
				this.parent.get_window().onFocusIn.dispatch();
				this.parent.get_window().onActivate.dispatch();
				break;
			case "resize":
				this.parent.get_window().backend.handleResizeEvent(event);
				break;
			}
		}
	},
	setFrameRate: function(value) {
		if(value >= 60) {
			this.framePeriod = -1;
		} else if(value > 0) {
			this.framePeriod = 1000 / value;
		} else {
			this.framePeriod = 1000;
		}
		return value;
	},
	updateGameDevices: function() {
		var devices = (lime_ui_Joystick().default).__getDeviceData();
		if(devices == null) {
			return;
		}
		var id;
		var gamepad;
		var joystick;
		var data;
		var cache;
		var _g1 = 0;
		var _g = devices.length;
		while(_g1 < _g) {
			var i = _g1++;
			id = i;
			data = devices[id];
			if(data == null) {
				continue;
			}
			if(!this.gameDeviceCache.exists(id)) {
				cache = new (lime__$backend_html5_GameDeviceData().default)();
				cache.id = id;
				cache.connected = data.connected;
				var _g3 = 0;
				var _g2 = data.buttons.length;
				while(_g3 < _g2) {
					var i1 = _g3++;
					cache.buttons.push(data.buttons[i1].value);
				}
				var _g31 = 0;
				var _g21 = data.axes.length;
				while(_g31 < _g21) {
					var i2 = _g31++;
					cache.axes.push(data.axes[i2]);
				}
				if(data.mapping == "standard") {
					cache.isGamepad = true;
				}
				this.gameDeviceCache.set(id,cache);
				if(data.connected) {
					(lime_ui_Joystick().default).__connect(id);
					if(cache.isGamepad) {
						(lime_ui_Gamepad().default).__connect(id);
					}
				}
			}
			cache = this.gameDeviceCache.get(id);
			joystick = (lime_ui_Joystick().default).devices.get(id);
			gamepad = (lime_ui_Gamepad().default).devices.get(id);
			if(data.connected) {
				var button;
				var value;
				var _g32 = 0;
				var _g22 = data.buttons.length;
				while(_g32 < _g22) {
					var i3 = _g32++;
					value = data.buttons[i3].value;
					if(value != cache.buttons[i3]) {
						if(i3 == 6) {
							joystick.onAxisMove.dispatch(data.axes.length,value);
							if(gamepad != null) {
								gamepad.onAxisMove.dispatch(4,value);
							}
						} else if(i3 == 7) {
							joystick.onAxisMove.dispatch(data.axes.length + 1,value);
							if(gamepad != null) {
								gamepad.onAxisMove.dispatch(5,value);
							}
						} else {
							if(value > 0) {
								joystick.onButtonDown.dispatch(i3);
							} else {
								joystick.onButtonUp.dispatch(i3);
							}
							if(gamepad != null) {
								switch(i3) {
								case 0:
									button = 0;
									break;
								case 1:
									button = 1;
									break;
								case 2:
									button = 2;
									break;
								case 3:
									button = 3;
									break;
								case 4:
									button = 9;
									break;
								case 5:
									button = 10;
									break;
								case 8:
									button = 4;
									break;
								case 9:
									button = 6;
									break;
								case 10:
									button = 7;
									break;
								case 11:
									button = 8;
									break;
								case 12:
									button = 11;
									break;
								case 13:
									button = 12;
									break;
								case 14:
									button = 13;
									break;
								case 15:
									button = 14;
									break;
								case 16:
									button = 5;
									break;
								default:
									continue;
								}
								if(value > 0) {
									gamepad.onButtonDown.dispatch(button);
								} else {
									gamepad.onButtonUp.dispatch(button);
								}
							}
						}
						cache.buttons[i3] = value;
					}
				}
				var _g33 = 0;
				var _g23 = data.axes.length;
				while(_g33 < _g23) {
					var i4 = _g33++;
					if(data.axes[i4] != cache.axes[i4]) {
						joystick.onAxisMove.dispatch(i4,data.axes[i4]);
						if(gamepad != null) {
							gamepad.onAxisMove.dispatch(i4,data.axes[i4]);
						}
						cache.axes[i4] = data.axes[i4];
					}
				}
			} else if(cache.connected) {
				cache.connected = false;
				(lime_ui_Joystick().default).__disconnect(id);
				(lime_ui_Gamepad().default).__disconnect(id);
			}
		}
	}
};
HTML5Application.prototype.__class__ = $hxClasses["lime._backend.html5.HTML5Application"] = HTML5Application;
// Init
// Statics
// Export
exports.default = HTML5Application;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 278 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime._backend.html5.GameDeviceData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var GameDeviceData = function() {
	this.connected = true;
	this.buttons = [];
	this.axes = [];
}
// Meta
GameDeviceData.__name__ = ["lime","_backend","html5","GameDeviceData"];
GameDeviceData.prototype = {
	
};
GameDeviceData.prototype.__class__ = $hxClasses["lime._backend.html5.GameDeviceData"] = GameDeviceData;
// Init
// Statics
// Export
exports.default = GameDeviceData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 279 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.media.AudioManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_media_AudioContext() {return __webpack_require__(280);}
function lime_media_HTML5AudioContext() {return __webpack_require__(281);}
function Type() {return __webpack_require__(10);}
// Constructor
var AudioManager = function(){}
// Meta
AudioManager.__name__ = ["lime","media","AudioManager"];
AudioManager.prototype = {
	
};
AudioManager.prototype.__class__ = $hxClasses["lime.media.AudioManager"] = AudioManager;
// Init
// Statics
AudioManager.init = function(context) {
	if(AudioManager.context == null) {
		if(context == null) {
			try {
				window.AudioContext = window.AudioContext || window.webkitAudioContext;
				AudioManager.context = (lime_media_AudioContext().default).WEB(new AudioContext ());
			} catch( e ) {
				AudioManager.context = (lime_media_AudioContext().default).HTML5(new (lime_media_HTML5AudioContext().default)());
			}
		} else {
			AudioManager.context = context;
		}
	}
}
AudioManager.resume = function() {
	if(AudioManager.context != null) {
		var _g = AudioManager.context;
		if((Type().default).enumIndex(_g) == 0) {
			var al = _g[3];
			var alc = _g[2];
			var currentContext = alc.getCurrentContext();
			if(currentContext != null) {
				var device = alc.getContextsDevice(currentContext);
				alc.resumeDevice(device);
				alc.processContext(currentContext);
			}
		}
	}
}
AudioManager.shutdown = function() {
	if(AudioManager.context != null) {
		var _g = AudioManager.context;
		if((Type().default).enumIndex(_g) == 0) {
			var al = _g[3];
			var alc = _g[2];
			var currentContext = alc.getCurrentContext();
			if(currentContext != null) {
				var device = alc.getContextsDevice(currentContext);
				alc.makeContextCurrent(null);
				alc.destroyContext(currentContext);
				if(device != null) {
					alc.closeDevice(device);
				}
			}
		}
		AudioManager.context = null;
	}
}
AudioManager.suspend = function() {
	if(AudioManager.context != null) {
		var _g = AudioManager.context;
		if((Type().default).enumIndex(_g) == 0) {
			var al = _g[3];
			var alc = _g[2];
			var currentContext = alc.getCurrentContext();
			if(currentContext != null) {
				alc.suspendContext(currentContext);
				var device = alc.getContextsDevice(currentContext);
				alc.pauseDevice(device);
			}
		}
	}
}
// Export
exports.default = AudioManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 280 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.media.AudioContext
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var AudioContext = $hxClasses["lime.media.AudioContext"] = { __ename__: ["lime","media","AudioContext"], __constructs__: ["OPENAL","HTML5","WEB","FLASH","CUSTOM"] }
AudioContext.OPENAL = function(alc,al) { var $x = ["OPENAL",0,alc,al]; $x.__enum__ = AudioContext; $x.toString = $estr; return $x; }
AudioContext.FLASH = function(context) { var $x = ["FLASH",3,context]; $x.__enum__ = AudioContext; $x.toString = $estr; return $x; }
AudioContext.WEB = function(context) { var $x = ["WEB",2,context]; $x.__enum__ = AudioContext; $x.toString = $estr; return $x; }
AudioContext.CUSTOM = function(data) { var $x = ["CUSTOM",4,data]; $x.__enum__ = AudioContext; $x.toString = $estr; return $x; }
AudioContext.HTML5 = function(context) { var $x = ["HTML5",1,context]; $x.__enum__ = AudioContext; $x.toString = $estr; return $x; }
exports.default = AudioContext;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 281 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.media.HTML5AudioContext
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_media_AudioBuffer() {return __webpack_require__(88);}
// Constructor
var HTML5AudioContext = function() {
	this.NETWORK_NO_SOURCE = 3;
	this.NETWORK_LOADING = 2;
	this.NETWORK_IDLE = 1;
	this.NETWORK_EMPTY = 0;
	this.HAVE_NOTHING = 0;
	this.HAVE_METADATA = 1;
	this.HAVE_FUTURE_DATA = 3;
	this.HAVE_ENOUGH_DATA = 4;
	this.HAVE_CURRENT_DATA = 2;
}
// Meta
HTML5AudioContext.__name__ = ["lime","media","HTML5AudioContext"];
HTML5AudioContext.prototype = {
	canPlayType: function(buffer,type) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.canPlayType(type);
		}
		return null;
	},
	createBuffer: function(urlString) {
		var buffer = new (lime_media_AudioBuffer().default)();
		buffer.__srcAudio = new Audio();
		buffer.__srcAudio.src = urlString;
		return buffer;
	},
	getAutoplay: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.autoplay;
		}
		return false;
	},
	getBuffered: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.buffered;
		}
		return null;
	},
	getCurrentSrc: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.currentSrc;
		}
		return null;
	},
	getCurrentTime: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.currentTime;
		}
		return 0;
	},
	getDefaultPlaybackRate: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.defaultPlaybackRate;
		}
		return 1;
	},
	getDuration: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.duration;
		}
		return 0;
	},
	getEnded: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.ended;
		}
		return false;
	},
	getError: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.error;
		}
		return null;
	},
	getLoop: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.loop;
		}
		return false;
	},
	getMuted: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.muted;
		}
		return false;
	},
	getNetworkState: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.networkState;
		}
		return 0;
	},
	getPaused: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.paused;
		}
		return false;
	},
	getPlaybackRate: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.playbackRate;
		}
		return 1;
	},
	getPlayed: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.played;
		}
		return null;
	},
	getPreload: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.preload;
		}
		return null;
	},
	getReadyState: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.readyState;
		}
		return 0;
	},
	getSeekable: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.seekable;
		}
		return null;
	},
	getSeeking: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.seeking;
		}
		return false;
	},
	getSrc: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.src;
		}
		return null;
	},
	getStartTime: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.playbackRate;
		}
		return 0;
	},
	getVolume: function(buffer) {
		if(buffer.__srcAudio != null) {
			return buffer.__srcAudio.volume;
		}
		return 1;
	},
	load: function(buffer) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.load();
			return;
		}
	},
	pause: function(buffer) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.pause();
			return;
		}
	},
	play: function(buffer) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.play();
			return;
		}
	},
	setAutoplay: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.autoplay = value;
		}
	},
	setCurrentTime: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.currentTime = value;
		}
	},
	setDefaultPlaybackRate: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.defaultPlaybackRate = value;
		}
	},
	setLoop: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.loop = value;
		}
	},
	setMuted: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.muted = value;
		}
	},
	setPlaybackRate: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.playbackRate = value;
		}
	},
	setPreload: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.preload = value;
		}
	},
	setSrc: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.src = value;
		}
	},
	setVolume: function(buffer,value) {
		if(buffer.__srcAudio != null) {
			buffer.__srcAudio.volume = value;
		}
	}
};
HTML5AudioContext.prototype.__class__ = $hxClasses["lime.media.HTML5AudioContext"] = HTML5AudioContext;
// Init
// Statics
// Export
exports.default = HTML5AudioContext;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 282 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.crypto.Base64
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_io_Bytes() {return __webpack_require__(16);}
function haxe_crypto_BaseCode() {return __webpack_require__(156);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var Base64 = function(){}
// Meta
Base64.__name__ = ["haxe","crypto","Base64"];
Base64.prototype = {
	
};
Base64.prototype.__class__ = $hxClasses["haxe.crypto.Base64"] = Base64;
// Init
// Statics
Base64.encode = function(bytes,complement) {
	if(complement == null) {
		complement = true;
	}
	var str = new (haxe_crypto_BaseCode().default)(Base64.BYTES).encodeBytes(bytes).toString();
	if(complement) {
		var _g = bytes.get_length() % 3;
		switch(_g) {
		case 1:
			str += "==";
			break;
		case 2:
			str += "=";
			break;
		default:
		}
	}
	return str;
}
Base64.decode = function(str,complement) {
	if(complement == null) {
		complement = true;
	}
	if(complement) {
		while((HxOverrides().default).cca(str,str.length - 1) == 61) str = (HxOverrides().default).substr(str,0,-1);
	}
	return new (haxe_crypto_BaseCode().default)(Base64.BYTES).decodeBytes((haxe_io_Bytes().default).ofString(str));
}
Base64.CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Base64.BYTES = (haxe_io_Bytes().default).ofString(Base64.CHARS)
// Export
exports.default = Base64;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 283 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_283__;
/***/ }),
/* 284 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.ClipboardFormats = module.exports.default = {
	HTML_FORMAT: "air:html",
	RICH_TEXT_FORMAT: "air:rtf",
	TEXT_FORMAT: "air:text"
};
/***/ }),
/* 285 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.ClipboardTransferMode = module.exports.default = {
	CLONE_ONLY: "cloneOnly",
	CLONE_PREFERRED: "clonePreferred",
	ORIGINAL_ONLY: "originalOnly",
	ORIGINAL_PREFERRED: "originalPreferred"
};
/***/ }),
/* 286 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	// Application: require("./Application").default,
	Bitmap: __webpack_require__(287).default,
	BitmapData: __webpack_require__(317).default,
	BitmapDataChannel: __webpack_require__(318).default,
	BlendMode: __webpack_require__(319).default,
	CapsStyle: __webpack_require__(320).default,
	DisplayObject: __webpack_require__(321).default,
	DisplayObjectContainer: __webpack_require__(322).default,
	DOMSprite: __webpack_require__(323).default,
	FPS: __webpack_require__(325).default,
	FrameLabel: __webpack_require__(345).default,
	GradientType: __webpack_require__(346).default,
	Graphics: __webpack_require__(347).default,
	GraphicsBitmapFill: __webpack_require__(348).default,
	GraphicsEndFill: __webpack_require__(349).default,
	GraphicsGradientFill: __webpack_require__(350).default,
	GraphicsPath: __webpack_require__(351).default,
	GraphicsPathCommand: __webpack_require__(352).default,
	GraphicsPathWinding: __webpack_require__(353).default,
	GraphicsSolidFill: __webpack_require__(354).default,
	GraphicsStroke: __webpack_require__(355).default,
	IBitmapDrawable: __webpack_require__(356).default,
	IGraphicsData: __webpack_require__(357).default,
	IGraphicsFill: __webpack_require__(358).default,
	IGraphicsPath: __webpack_require__(359).default,
	IGraphicsStroke: __webpack_require__(360).default,
	InteractiveObject: __webpack_require__(361).default,
	InterpolationMethod: __webpack_require__(362).default,
	JointStyle: __webpack_require__(363).default,
	JPEGEncoderOptions: __webpack_require__(364).default,
	LineScaleMode: __webpack_require__(365).default,
	Loader: __webpack_require__(366).default,
	LoaderInfo: __webpack_require__(372).default,
	MovieClip: __webpack_require__(373).default,
	PixelSnapping: __webpack_require__(374).default,
	PNGEncoderOptions: __webpack_require__(375).default,
	Preloader: __webpack_require__(376).default,
	Shader: __webpack_require__(379).default,
	ShaderData: __webpack_require__(380).default,
	ShaderInput: __webpack_require__(381).default,
	ShaderJob: __webpack_require__(382).default,
	ShaderParameter: __webpack_require__(384).default,
	ShaderParameterType: __webpack_require__(385).default,
	ShaderPrecision: __webpack_require__(386).default,
	Shape: __webpack_require__(387).default,
	SimpleButton: __webpack_require__(389).default,
	SpreadMethod: __webpack_require__(391).default,
	Sprite: __webpack_require__(392).default,
	Stage: __webpack_require__(393).default,
	Stage3D: __webpack_require__(419).default,
	StageAlign: __webpack_require__(420).default,
	StageDisplayState: __webpack_require__(421).default,
	StageQuality: __webpack_require__(422).default,
	StageScaleMode: __webpack_require__(423).default,
	Tile: __webpack_require__(424).default,
	TileArray: __webpack_require__(425).default,
	Tilemap: __webpack_require__(427).default,
	Tileset: __webpack_require__(432).default,
	TriangleCulling: __webpack_require__(435).default,
	// Window: require("./Window").default
}
/***/ }),
/* 287 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(89);
/***/ }),
/* 288 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events._EventDispatcher.Listener
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var Listener = function(callback,useCapture,priority) {
	this.callback = callback;
	this.useCapture = useCapture;
	this.priority = priority;
}
// Meta
Listener.__name__ = ["openfl","events","_EventDispatcher","Listener"];
Listener.prototype = {
	match: function(callback,useCapture) {
		if((Reflect().default).compareMethods(this.callback,callback)) {
			return this.useCapture == useCapture;
		} else {
			return false;
		}
	}
};
Listener.prototype.__class__ = $hxClasses["openfl.events._EventDispatcher.Listener"] = Listener;
// Init
// Statics
// Export
exports.default = Listener;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 289 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events._EventDispatcher.DispatchIterator
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var DispatchIterator = function(list) {
	this.list = list;
	this.index = list.length;
}
// Meta
DispatchIterator.__name__ = ["openfl","events","_EventDispatcher","DispatchIterator"];
DispatchIterator.prototype = {
	copy: function() {
		if(!this.isCopy) {
			this.list = this.list.slice();
			this.isCopy = true;
		}
	},
	hasNext: function() {
		if(this.index < this.list.length) {
			return true;
		} else {
			this.active = false;
			return false;
		}
	},
	next: function() {
		return this.list[this.index++];
	},
	remove: function(listener,listIndex) {
		if(this.active) {
			if(!this.isCopy) {
				if(listIndex < this.index) {
					this.index--;
				}
			} else {
				var _g1 = this.index;
				var _g = this.list.length;
				while(_g1 < _g) {
					var i = _g1++;
					if(this.list[i] == listener) {
						this.list.splice(i,1);
						break;
					}
				}
			}
		}
	},
	reset: function(list) {
		this.list = list;
		this.active = true;
		this.isCopy = false;
		this.index = 0;
	}
};
DispatchIterator.prototype.__class__ = $hxClasses["openfl.events._EventDispatcher.DispatchIterator"] = DispatchIterator;
// Init
// Statics
// Export
exports.default = DispatchIterator;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 290 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.math.Matrix3
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function lime_math_Vector2() {return __webpack_require__(42);}
function Std() {return __webpack_require__(4);}
// Constructor
var Matrix3 = function(a,b,c,d,tx,ty) {
	if(ty == null) {
		ty = 0;
	}
	if(tx == null) {
		tx = 0;
	}
	if(d == null) {
		d = 1;
	}
	if(c == null) {
		c = 0;
	}
	if(b == null) {
		b = 0;
	}
	if(a == null) {
		a = 1;
	}
	this.a = a;
	this.b = b;
	this.c = c;
	this.d = d;
	this.tx = tx;
	this.ty = ty;
}
// Meta
Matrix3.__name__ = ["lime","math","Matrix3"];
Matrix3.prototype = {
	clone: function() {
		return new Matrix3(this.a,this.b,this.c,this.d,this.tx,this.ty);
	},
	concat: function(m) {
		var a1 = this.a * m.a + this.b * m.c;
		this.b = this.a * m.b + this.b * m.d;
		this.a = a1;
		var c1 = this.c * m.a + this.d * m.c;
		this.d = this.c * m.b + this.d * m.d;
		this.c = c1;
		var tx1 = this.tx * m.a + this.ty * m.c + m.tx;
		this.ty = this.tx * m.b + this.ty * m.d + m.ty;
		this.tx = tx1;
	},
	copyColumnFrom: function(column,vector4) {
		if(column > 2) {
			throw new (js__$Boot_HaxeError().default)("Column " + column + " out of bounds (2)");
		} else if(column == 0) {
			this.a = vector4.x;
			this.c = vector4.y;
		} else if(column == 1) {
			this.b = vector4.x;
			this.d = vector4.y;
		} else {
			this.tx = vector4.x;
			this.ty = vector4.y;
		}
	},
	copyColumnTo: function(column,vector4) {
		if(column > 2) {
			throw new (js__$Boot_HaxeError().default)("Column " + column + " out of bounds (2)");
		} else if(column == 0) {
			vector4.x = this.a;
			vector4.y = this.c;
			vector4.z = 0;
		} else if(column == 1) {
			vector4.x = this.b;
			vector4.y = this.d;
			vector4.z = 0;
		} else {
			vector4.x = this.tx;
			vector4.y = this.ty;
			vector4.z = 1;
		}
	},
	copyFrom: function(sourceMatrix3) {
		this.a = sourceMatrix3.a;
		this.b = sourceMatrix3.b;
		this.c = sourceMatrix3.c;
		this.d = sourceMatrix3.d;
		this.tx = sourceMatrix3.tx;
		this.ty = sourceMatrix3.ty;
	},
	copyRowFrom: function(row,vector4) {
		if(row > 2) {
			throw new (js__$Boot_HaxeError().default)("Row " + row + " out of bounds (2)");
		} else if(row == 0) {
			this.a = vector4.x;
			this.c = vector4.y;
		} else if(row == 1) {
			this.b = vector4.x;
			this.d = vector4.y;
		} else {
			this.tx = vector4.x;
			this.ty = vector4.y;
		}
	},
	copyRowTo: function(row,vector4) {
		if(row > 2) {
			throw new (js__$Boot_HaxeError().default)("Row " + row + " out of bounds (2)");
		} else if(row == 0) {
			vector4.x = this.a;
			vector4.y = this.b;
			vector4.z = this.tx;
		} else if(row == 1) {
			vector4.x = this.c;
			vector4.y = this.d;
			vector4.z = this.ty;
		} else {
			vector4.setTo(0,0,1);
		}
	},
	createBox: function(scaleX,scaleY,rotation,tx,ty) {
		if(ty == null) {
			ty = 0;
		}
		if(tx == null) {
			tx = 0;
		}
		if(rotation == null) {
			rotation = 0;
		}
		this.a = scaleX;
		this.d = scaleY;
		this.b = rotation;
		this.tx = tx;
		this.ty = ty;
	},
	createGradientBox: function(width,height,rotation,tx,ty) {
		if(ty == null) {
			ty = 0;
		}
		if(tx == null) {
			tx = 0;
		}
		if(rotation == null) {
			rotation = 0;
		}
		this.a = width / 1638.4;
		this.d = height / 1638.4;
		if(rotation != 0) {
			var cos = Math.cos(rotation);
			var sin = Math.sin(rotation);
			this.b = sin * this.d;
			this.c = -sin * this.a;
			this.a *= cos;
			this.d *= cos;
		} else {
			this.b = 0;
			this.c = 0;
		}
		this.tx = tx + width / 2;
		this.ty = ty + height / 2;
	},
	equals: function(Matrix3) {
		if(Matrix3 != null && this.tx == Matrix3.tx && this.ty == Matrix3.ty && this.a == Matrix3.a && this.b == Matrix3.b && this.c == Matrix3.c) {
			return this.d == Matrix3.d;
		} else {
			return false;
		}
	},
	deltaTransformVector2: function(Vector2) {
		return new (lime_math_Vector2().default)(Vector2.x * this.a + Vector2.y * this.c,Vector2.x * this.b + Vector2.y * this.d);
	},
	identity: function() {
		this.a = 1;
		this.b = 0;
		this.c = 0;
		this.d = 1;
		this.tx = 0;
		this.ty = 0;
	},
	invert: function() {
		var norm = this.a * this.d - this.b * this.c;
		if(norm == 0) {
			this.a = this.b = this.c = this.d = 0;
			this.tx = -this.tx;
			this.ty = -this.ty;
		} else {
			norm = 1.0 / norm;
			var a1 = this.d * norm;
			this.d = this.a * norm;
			this.a = a1;
			this.b *= -norm;
			this.c *= -norm;
			var tx1 = -this.a * this.tx - this.c * this.ty;
			this.ty = -this.b * this.tx - this.d * this.ty;
			this.tx = tx1;
		}
		return this;
	},
	mult: function(m) {
		var result = this.clone();
		result.concat(m);
		return result;
	},
	rotate: function(theta) {
		var cos = Math.cos(theta);
		var sin = Math.sin(theta);
		var a1 = this.a * cos - this.b * sin;
		this.b = this.a * sin + this.b * cos;
		this.a = a1;
		var c1 = this.c * cos - this.d * sin;
		this.d = this.c * sin + this.d * cos;
		this.c = c1;
		var tx1 = this.tx * cos - this.ty * sin;
		this.ty = this.tx * sin + this.ty * cos;
		this.tx = tx1;
	},
	scale: function(sx,sy) {
		this.a *= sx;
		this.b *= sy;
		this.c *= sx;
		this.d *= sy;
		this.tx *= sx;
		this.ty *= sy;
	},
	setRotation: function(theta,scale) {
		if(scale == null) {
			scale = 1;
		}
		this.a = Math.cos(theta) * scale;
		this.c = Math.sin(theta) * scale;
		this.b = -this.c;
		this.d = this.a;
	},
	setTo: function(a,b,c,d,tx,ty) {
		this.a = a;
		this.b = b;
		this.c = c;
		this.d = d;
		this.tx = tx;
		this.ty = ty;
	},
	to3DString: function(roundPixels) {
		if(roundPixels == null) {
			roundPixels = false;
		}
		if(roundPixels) {
			return "Matrix33d(" + this.a + ", " + this.b + ", " + "0, 0, " + this.c + ", " + this.d + ", " + "0, 0, 0, 0, 1, 0, " + (Std().default)["int"](this.tx) + ", " + (Std().default)["int"](this.ty) + ", 0, 1)";
		} else {
			return "Matrix33d(" + this.a + ", " + this.b + ", " + "0, 0, " + this.c + ", " + this.d + ", " + "0, 0, 0, 0, 1, 0, " + this.tx + ", " + this.ty + ", 0, 1)";
		}
	},
	toMozString: function() {
		return "Matrix3(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + "px, " + this.ty + "px)";
	},
	toString: function() {
		return "Matrix3(" + this.a + ", " + this.b + ", " + this.c + ", " + this.d + ", " + this.tx + ", " + this.ty + ")";
	},
	transformVector2: function(pos) {
		return new (lime_math_Vector2().default)(this.__transformX(pos),this.__transformY(pos));
	},
	translate: function(dx,dy) {
		this.tx += dx;
		this.ty += dy;
	},
	__cleanValues: function() {
		this.a = Math.round(this.a * 1000) / 1000;
		this.b = Math.round(this.b * 1000) / 1000;
		this.c = Math.round(this.c * 1000) / 1000;
		this.d = Math.round(this.d * 1000) / 1000;
		this.tx = Math.round(this.tx * 10) / 10;
		this.ty = Math.round(this.ty * 10) / 10;
	},
	__transformX: function(pos) {
		return pos.x * this.a + pos.y * this.c + this.tx;
	},
	__transformY: function(pos) {
		return pos.x * this.b + pos.y * this.d + this.ty;
	},
	__translateTransformed: function(pos) {
		this.tx = this.__transformX(pos);
		this.ty = this.__transformY(pos);
	}
};
Matrix3.prototype.__class__ = $hxClasses["lime.math.Matrix3"] = Matrix3;
// Init
// Statics
Matrix3.__identity = new Matrix3()
// Export
exports.default = Matrix3;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 291 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasShape
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_renderer_canvas_CanvasGraphics() {return __webpack_require__(58);}
function Std() {return __webpack_require__(4);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function openfl__$internal_renderer_canvas_CanvasRenderer() {return __webpack_require__(68);}
// Constructor
var CanvasShape = function(){}
// Meta
CanvasShape.__name__ = ["openfl","_internal","renderer","canvas","CanvasShape"];
CanvasShape.prototype = {
	
};
CanvasShape.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasShape"] = CanvasShape;
// Init
// Statics
CanvasShape.render = function(shape,renderSession) {
	if(!shape.__renderable || shape.__worldAlpha <= 0) {
		return;
	}
	var graphics = shape.__graphics;
	if(graphics != null) {
		(openfl__$internal_renderer_canvas_CanvasGraphics().default).render(graphics,renderSession,shape.__renderTransform);
		var bounds = graphics.__bounds;
		var width = graphics.__width;
		var height = graphics.__height;
		if(graphics.__canvas != null) {
			var context = renderSession.context;
			var scrollRect = shape.__scrollRect;
			if(width > 0 && height > 0 && (scrollRect == null || scrollRect.width > 0 && scrollRect.height > 0)) {
				renderSession.blendModeManager.setBlendMode(shape.__worldBlendMode);
				renderSession.maskManager.pushObject(shape);
				context.globalAlpha = shape.__worldAlpha;
				var transform = graphics.__worldTransform;
				if(renderSession.roundPixels) {
					context.setTransform(transform.a,transform.b,transform.c,transform.d,(Std().default)["int"](transform.tx),(Std().default)["int"](transform.ty));
				} else {
					context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
				}
				if(renderSession.renderType == (lime_graphics_RendererType().default).DOM) {
					var reverseScale = 1 / (openfl__$internal_renderer_canvas_CanvasRenderer().default).scale;
					context.scale(reverseScale,reverseScale);
				}
				context.drawImage(graphics.__canvas,0,0);
				renderSession.maskManager.popObject(shape);
			}
		}
	}
}
// Export
exports.default = CanvasShape;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 292 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._Vector.VectorIterator
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var VectorIterator = function(vector) {
	this.vector = vector;
	this.index = -1;
}
// Meta
VectorIterator.__name__ = ["openfl","_Vector","VectorIterator"];
VectorIterator.prototype = {
	hasNext: function() {
		return this.index < this.vector.get_length() - 1;
	},
	next: function() {
		this.index++;
		return this.vector.get(this.index);
	}
};
VectorIterator.prototype.__class__ = $hxClasses["openfl._Vector.VectorIterator"] = VectorIterator;
// Init
// Statics
// Export
exports.default = VectorIterator;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 293 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.math._Matrix4.Matrix4_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils_Log() {return __webpack_require__(23);}
function js_Boot() {return __webpack_require__(20);}
function lime_math_Vector4() {return __webpack_require__(163);}
// Constructor
var Matrix4_Impl_ = function(){}
// Meta
Matrix4_Impl_.__name__ = ["lime","math","_Matrix4","Matrix4_Impl_"];
Matrix4_Impl_.prototype = {
	
};
Matrix4_Impl_.prototype.__class__ = $hxClasses["lime.math._Matrix4.Matrix4_Impl_"] = Matrix4_Impl_;
// Init
// Statics
Matrix4_Impl_._new = function(data) {
	var this1;
	if(data != null && data.length == 16) {
		this1 = data;
	} else {
		var array = Matrix4_Impl_.__identity;
		var this2;
		if(array != null) {
			this2 = new Float32Array(array);
		} else {
			this2 = null;
		}
		this1 = this2;
	}
	return this1;
}
Matrix4_Impl_.append = function(this1,lhs) {
	var m111 = this1[0];
	var m121 = this1[4];
	var m131 = this1[8];
	var m141 = this1[12];
	var m112 = this1[1];
	var m122 = this1[5];
	var m132 = this1[9];
	var m142 = this1[13];
	var m113 = this1[2];
	var m123 = this1[6];
	var m133 = this1[10];
	var m143 = this1[14];
	var m114 = this1[3];
	var m124 = this1[7];
	var m134 = this1[11];
	var m144 = this1[15];
	var m211 = Matrix4_Impl_.get(lhs,0);
	var m221 = Matrix4_Impl_.get(lhs,4);
	var m231 = Matrix4_Impl_.get(lhs,8);
	var m241 = Matrix4_Impl_.get(lhs,12);
	var m212 = Matrix4_Impl_.get(lhs,1);
	var m222 = Matrix4_Impl_.get(lhs,5);
	var m232 = Matrix4_Impl_.get(lhs,9);
	var m242 = Matrix4_Impl_.get(lhs,13);
	var m213 = Matrix4_Impl_.get(lhs,2);
	var m223 = Matrix4_Impl_.get(lhs,6);
	var m233 = Matrix4_Impl_.get(lhs,10);
	var m243 = Matrix4_Impl_.get(lhs,14);
	var m214 = Matrix4_Impl_.get(lhs,3);
	var m224 = Matrix4_Impl_.get(lhs,7);
	var m234 = Matrix4_Impl_.get(lhs,11);
	var m244 = Matrix4_Impl_.get(lhs,15);
	this1[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241;
	this1[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242;
	this1[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243;
	this1[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244;
	this1[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241;
	this1[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242;
	this1[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243;
	this1[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244;
	this1[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241;
	this1[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242;
	this1[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243;
	this1[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244;
	this1[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241;
	this1[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242;
	this1[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243;
	this1[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244;
}
Matrix4_Impl_.appendRotation = function(this1,degrees,axis,pivotPoint) {
	var m = Matrix4_Impl_.__getAxisRotation(this1,axis.x,axis.y,axis.z,degrees);
	if(pivotPoint != null) {
		var p = pivotPoint;
		Matrix4_Impl_.appendTranslation(m,p.x,p.y,p.z);
	}
	Matrix4_Impl_.append(this1,m);
}
Matrix4_Impl_.appendScale = function(this1,xScale,yScale,zScale) {
	var array = [xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0];
	var this2;
	if(array != null) {
		this2 = new Float32Array(array);
	} else {
		this2 = null;
	}
	Matrix4_Impl_.append(this1,Matrix4_Impl_._new(this2));
}
Matrix4_Impl_.appendTranslation = function(this1,x,y,z) {
	this1[12] += x;
	this1[13] += y;
	this1[14] += z;
}
Matrix4_Impl_.clone = function(this1) {
	var this2;
	if(this1 != null) {
		this2 = new Float32Array(this1);
	} else {
		this2 = null;
	}
	return Matrix4_Impl_._new(this2);
}
Matrix4_Impl_.copyColumnFrom = function(this1,column,vector) {
	switch(column) {
	case 0:
		this1[0] = vector.x;
		this1[1] = vector.y;
		this1[2] = vector.z;
		this1[3] = vector.w;
		break;
	case 1:
		this1[4] = vector.x;
		this1[5] = vector.y;
		this1[6] = vector.z;
		this1[7] = vector.w;
		break;
	case 2:
		this1[8] = vector.x;
		this1[9] = vector.y;
		this1[10] = vector.z;
		this1[11] = vector.w;
		break;
	case 3:
		this1[12] = vector.x;
		this1[13] = vector.y;
		this1[14] = vector.z;
		this1[15] = vector.w;
		break;
	default:
		(lime_utils_Log().default).error("Column " + column + " out of bounds [0, ..., 3]",{ fileName : "Matrix4.hx", lineNumber : 139, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyColumnFrom"});
	}
}
Matrix4_Impl_.copyColumnTo = function(this1,column,vector) {
	switch(column) {
	case 0:
		vector.x = this1[0];
		vector.y = this1[1];
		vector.z = this1[2];
		vector.w = this1[3];
		break;
	case 1:
		vector.x = this1[4];
		vector.y = this1[5];
		vector.z = this1[6];
		vector.w = this1[7];
		break;
	case 2:
		vector.x = this1[8];
		vector.y = this1[9];
		vector.z = this1[10];
		vector.w = this1[11];
		break;
	case 3:
		vector.x = this1[12];
		vector.y = this1[13];
		vector.z = this1[14];
		vector.w = this1[15];
		break;
	default:
		(lime_utils_Log().default).error("Column " + column + " out of bounds [0, ..., 3]",{ fileName : "Matrix4.hx", lineNumber : 180, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyColumnTo"});
	}
}
Matrix4_Impl_.copyFrom = function(this1,other) {
	this1.set(other);
}
Matrix4_Impl_.copythisFrom = function(this1,array,index,transposeValues) {
	if(transposeValues == null) {
		transposeValues = false;
	}
	if(index == null) {
		index = 0;
	}
	if(transposeValues) {
		Matrix4_Impl_.transpose(this1);
	}
	var l = array.length - index;
	var _g1 = 0;
	var _g = l;
	while(_g1 < _g) {
		var c = _g1++;
		this1[c] = array[c + index];
	}
	if(transposeValues) {
		Matrix4_Impl_.transpose(this1);
	}
}
Matrix4_Impl_.copythisTo = function(this1,array,index,transposeValues) {
	if(transposeValues == null) {
		transposeValues = false;
	}
	if(index == null) {
		index = 0;
	}
	if(transposeValues) {
		Matrix4_Impl_.transpose(this1);
	}
	var l = this1.length;
	var _g1 = 0;
	var _g = l;
	while(_g1 < _g) {
		var c = _g1++;
		array[c + index] = this1[c];
	}
	if(transposeValues) {
		Matrix4_Impl_.transpose(this1);
	}
}
Matrix4_Impl_.copyRowFrom = function(this1,row,vector) {
	switch(row) {
	case 0:
		this1[0] = vector.x;
		this1[4] = vector.y;
		this1[8] = vector.z;
		this1[12] = vector.w;
		break;
	case 1:
		this1[1] = vector.x;
		this1[5] = vector.y;
		this1[9] = vector.z;
		this1[13] = vector.w;
		break;
	case 2:
		this1[2] = vector.x;
		this1[6] = vector.y;
		this1[10] = vector.z;
		this1[14] = vector.w;
		break;
	case 3:
		this1[3] = vector.x;
		this1[7] = vector.y;
		this1[11] = vector.z;
		this1[15] = vector.w;
		break;
	default:
		(lime_utils_Log().default).error("Row " + row + " out of bounds [0, ..., 3]",{ fileName : "Matrix4.hx", lineNumber : 258, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyRowFrom"});
	}
}
Matrix4_Impl_.create2D = function(x,y,scale,rotation) {
	if(rotation == null) {
		rotation = 0;
	}
	if(scale == null) {
		scale = 1;
	}
	var theta = rotation * Math.PI / 180.0;
	var c = Math.cos(theta);
	var s = Math.sin(theta);
	var array = [c * scale,-s * scale,0,0,s * scale,c * scale,0,0,0,0,1,0,x,y,0,1];
	var this1;
	if(array != null) {
		this1 = new Float32Array(array);
	} else {
		this1 = null;
	}
	return Matrix4_Impl_._new(this1);
}
Matrix4_Impl_.createABCD = function(a,b,c,d,tx,ty,matrix) {
	if(matrix == null) {
		matrix = Matrix4_Impl_._new();
	}
	Matrix4_Impl_.set(matrix,0,a);
	Matrix4_Impl_.set(matrix,1,b);
	Matrix4_Impl_.set(matrix,2,0);
	Matrix4_Impl_.set(matrix,3,0);
	Matrix4_Impl_.set(matrix,4,c);
	Matrix4_Impl_.set(matrix,5,d);
	Matrix4_Impl_.set(matrix,6,0);
	Matrix4_Impl_.set(matrix,7,0);
	Matrix4_Impl_.set(matrix,8,0);
	Matrix4_Impl_.set(matrix,9,0);
	Matrix4_Impl_.set(matrix,10,1);
	Matrix4_Impl_.set(matrix,11,0);
	Matrix4_Impl_.set(matrix,12,tx);
	Matrix4_Impl_.set(matrix,13,ty);
	Matrix4_Impl_.set(matrix,14,0);
	Matrix4_Impl_.set(matrix,15,1);
	return matrix;
}
Matrix4_Impl_.createOrtho = function(x0,x1,y0,y1,zNear,zFar) {
	var sx = 1.0 / (x1 - x0);
	var sy = 1.0 / (y1 - y0);
	var sz = 1.0 / (zFar - zNear);
	var array = [2.0 * sx,0,0,0,0,2.0 * sy,0,0,0,0,-2.0 * sz,0,-(x0 + x1) * sx,-(y0 + y1) * sy,-(zNear + zFar) * sz,1];
	var this1;
	if(array != null) {
		this1 = new Float32Array(array);
	} else {
		this1 = null;
	}
	return Matrix4_Impl_._new(this1);
}
Matrix4_Impl_.copyRowTo = function(this1,row,vector) {
	switch(row) {
	case 0:
		vector.x = this1[0];
		vector.y = this1[4];
		vector.z = this1[8];
		vector.w = this1[12];
		break;
	case 1:
		vector.x = this1[1];
		vector.y = this1[5];
		vector.z = this1[9];
		vector.w = this1[13];
		break;
	case 2:
		vector.x = this1[2];
		vector.y = this1[6];
		vector.z = this1[10];
		vector.w = this1[14];
		break;
	case 3:
		vector.x = this1[3];
		vector.y = this1[7];
		vector.z = this1[11];
		vector.w = this1[15];
		break;
	default:
		(lime_utils_Log().default).error("Row " + row + " out of bounds [0, ..., 3]",{ fileName : "Matrix4.hx", lineNumber : 360, className : "lime.math._Matrix4.Matrix4_Impl_", methodName : "copyRowTo"});
	}
}
Matrix4_Impl_.copyToMatrix4 = function(this1,other) {
	((js_Boot().default).__cast(other , Float32Array)).set(this1);
}
Matrix4_Impl_.deltaTransformVector = function(this1,v) {
	var x = v.x;
	var y = v.y;
	var z = v.z;
	return new (lime_math_Vector4().default)(x * this1[0] + y * this1[4] + z * this1[8] + this1[3],x * this1[1] + y * this1[5] + z * this1[9] + this1[7],x * this1[2] + y * this1[6] + z * this1[10] + this1[11],0);
}
Matrix4_Impl_.identity = function(this1) {
	this1[0] = 1;
	this1[1] = 0;
	this1[2] = 0;
	this1[3] = 0;
	this1[4] = 0;
	this1[5] = 1;
	this1[6] = 0;
	this1[7] = 0;
	this1[8] = 0;
	this1[9] = 0;
	this1[10] = 1;
	this1[11] = 0;
	this1[12] = 0;
	this1[13] = 0;
	this1[14] = 0;
	this1[15] = 1;
}
Matrix4_Impl_.interpolate = function(thisMat,toMat,percent) {
	var m = Matrix4_Impl_._new();
	var _g = 0;
	while(_g < 16) {
		var i = _g++;
		Matrix4_Impl_.set(m,i,Matrix4_Impl_.get(thisMat,i) + (Matrix4_Impl_.get(toMat,i) - Matrix4_Impl_.get(thisMat,i)) * percent);
	}
	return m;
}
Matrix4_Impl_.interpolateTo = function(this1,toMat,percent) {
	var _g = 0;
	while(_g < 16) {
		var i = _g++;
		this1[i] += (Matrix4_Impl_.get(toMat,i) - this1[i]) * percent;
	}
}
Matrix4_Impl_.invert = function(this1) {
	var d = Matrix4_Impl_.get_determinant(this1);
	var invertable = Math.abs(d) > 0.00000000001;
	if(invertable) {
		d = 1 / d;
		var m11 = this1[0];
		var m21 = this1[4];
		var m31 = this1[8];
		var m41 = this1[12];
		var m12 = this1[1];
		var m22 = this1[5];
		var m32 = this1[9];
		var m42 = this1[13];
		var m13 = this1[2];
		var m23 = this1[6];
		var m33 = this1[10];
		var m43 = this1[14];
		var m14 = this1[3];
		var m24 = this1[7];
		var m34 = this1[11];
		var m44 = this1[15];
		this1[0] = d * (m22 * (m33 * m44 - m43 * m34) - m32 * (m23 * m44 - m43 * m24) + m42 * (m23 * m34 - m33 * m24));
		this1[1] = -d * (m12 * (m33 * m44 - m43 * m34) - m32 * (m13 * m44 - m43 * m14) + m42 * (m13 * m34 - m33 * m14));
		this1[2] = d * (m12 * (m23 * m44 - m43 * m24) - m22 * (m13 * m44 - m43 * m14) + m42 * (m13 * m24 - m23 * m14));
		this1[3] = -d * (m12 * (m23 * m34 - m33 * m24) - m22 * (m13 * m34 - m33 * m14) + m32 * (m13 * m24 - m23 * m14));
		this1[4] = -d * (m21 * (m33 * m44 - m43 * m34) - m31 * (m23 * m44 - m43 * m24) + m41 * (m23 * m34 - m33 * m24));
		this1[5] = d * (m11 * (m33 * m44 - m43 * m34) - m31 * (m13 * m44 - m43 * m14) + m41 * (m13 * m34 - m33 * m14));
		this1[6] = -d * (m11 * (m23 * m44 - m43 * m24) - m21 * (m13 * m44 - m43 * m14) + m41 * (m13 * m24 - m23 * m14));
		this1[7] = d * (m11 * (m23 * m34 - m33 * m24) - m21 * (m13 * m34 - m33 * m14) + m31 * (m13 * m24 - m23 * m14));
		this1[8] = d * (m21 * (m32 * m44 - m42 * m34) - m31 * (m22 * m44 - m42 * m24) + m41 * (m22 * m34 - m32 * m24));
		this1[9] = -d * (m11 * (m32 * m44 - m42 * m34) - m31 * (m12 * m44 - m42 * m14) + m41 * (m12 * m34 - m32 * m14));
		this1[10] = d * (m11 * (m22 * m44 - m42 * m24) - m21 * (m12 * m44 - m42 * m14) + m41 * (m12 * m24 - m22 * m14));
		this1[11] = -d * (m11 * (m22 * m34 - m32 * m24) - m21 * (m12 * m34 - m32 * m14) + m31 * (m12 * m24 - m22 * m14));
		this1[12] = -d * (m21 * (m32 * m43 - m42 * m33) - m31 * (m22 * m43 - m42 * m23) + m41 * (m22 * m33 - m32 * m23));
		this1[13] = d * (m11 * (m32 * m43 - m42 * m33) - m31 * (m12 * m43 - m42 * m13) + m41 * (m12 * m33 - m32 * m13));
		this1[14] = -d * (m11 * (m22 * m43 - m42 * m23) - m21 * (m12 * m43 - m42 * m13) + m41 * (m12 * m23 - m22 * m13));
		this1[15] = d * (m11 * (m22 * m33 - m32 * m23) - m21 * (m12 * m33 - m32 * m13) + m31 * (m12 * m23 - m22 * m13));
	}
	return invertable;
}
Matrix4_Impl_.pointAt = function(this1,pos,at,up) {
	if(at == null) {
		at = new (lime_math_Vector4().default)(0,0,-1);
	}
	if(up == null) {
		up = new (lime_math_Vector4().default)(0,-1,0);
	}
	var dir = at.subtract(pos);
	var vup = up.clone();
	var right;
	dir.normalize();
	vup.normalize();
	var dir2 = dir.clone();
	dir2.scaleBy(vup.dotProduct(dir));
	vup = vup.subtract(dir2);
	if(vup.get_length() > 0) {
		vup.normalize();
	} else if(dir.x != 0) {
		vup = new (lime_math_Vector4().default)(-dir.y,dir.x,0);
	} else {
		vup = new (lime_math_Vector4().default)(1,0,0);
	}
	right = vup.crossProduct(dir);
	right.normalize();
	this1[0] = right.x;
	this1[4] = right.y;
	this1[8] = right.z;
	this1[12] = 0.0;
	this1[1] = vup.x;
	this1[5] = vup.y;
	this1[9] = vup.z;
	this1[13] = 0.0;
	this1[2] = dir.x;
	this1[6] = dir.y;
	this1[10] = dir.z;
	this1[14] = 0.0;
	this1[3] = pos.x;
	this1[7] = pos.y;
	this1[11] = pos.z;
	this1[15] = 1.0;
}
Matrix4_Impl_.prepend = function(this1,rhs) {
	var m111 = Matrix4_Impl_.get(rhs,0);
	var m121 = Matrix4_Impl_.get(rhs,4);
	var m131 = Matrix4_Impl_.get(rhs,8);
	var m141 = Matrix4_Impl_.get(rhs,12);
	var m112 = Matrix4_Impl_.get(rhs,1);
	var m122 = Matrix4_Impl_.get(rhs,5);
	var m132 = Matrix4_Impl_.get(rhs,9);
	var m142 = Matrix4_Impl_.get(rhs,13);
	var m113 = Matrix4_Impl_.get(rhs,2);
	var m123 = Matrix4_Impl_.get(rhs,6);
	var m133 = Matrix4_Impl_.get(rhs,10);
	var m143 = Matrix4_Impl_.get(rhs,14);
	var m114 = Matrix4_Impl_.get(rhs,3);
	var m124 = Matrix4_Impl_.get(rhs,7);
	var m134 = Matrix4_Impl_.get(rhs,11);
	var m144 = Matrix4_Impl_.get(rhs,15);
	var m211 = this1[0];
	var m221 = this1[4];
	var m231 = this1[8];
	var m241 = this1[12];
	var m212 = this1[1];
	var m222 = this1[5];
	var m232 = this1[9];
	var m242 = this1[13];
	var m213 = this1[2];
	var m223 = this1[6];
	var m233 = this1[10];
	var m243 = this1[14];
	var m214 = this1[3];
	var m224 = this1[7];
	var m234 = this1[11];
	var m244 = this1[15];
	this1[0] = m111 * m211 + m112 * m221 + m113 * m231 + m114 * m241;
	this1[1] = m111 * m212 + m112 * m222 + m113 * m232 + m114 * m242;
	this1[2] = m111 * m213 + m112 * m223 + m113 * m233 + m114 * m243;
	this1[3] = m111 * m214 + m112 * m224 + m113 * m234 + m114 * m244;
	this1[4] = m121 * m211 + m122 * m221 + m123 * m231 + m124 * m241;
	this1[5] = m121 * m212 + m122 * m222 + m123 * m232 + m124 * m242;
	this1[6] = m121 * m213 + m122 * m223 + m123 * m233 + m124 * m243;
	this1[7] = m121 * m214 + m122 * m224 + m123 * m234 + m124 * m244;
	this1[8] = m131 * m211 + m132 * m221 + m133 * m231 + m134 * m241;
	this1[9] = m131 * m212 + m132 * m222 + m133 * m232 + m134 * m242;
	this1[10] = m131 * m213 + m132 * m223 + m133 * m233 + m134 * m243;
	this1[11] = m131 * m214 + m132 * m224 + m133 * m234 + m134 * m244;
	this1[12] = m141 * m211 + m142 * m221 + m143 * m231 + m144 * m241;
	this1[13] = m141 * m212 + m142 * m222 + m143 * m232 + m144 * m242;
	this1[14] = m141 * m213 + m142 * m223 + m143 * m233 + m144 * m243;
	this1[15] = m141 * m214 + m142 * m224 + m143 * m234 + m144 * m244;
}
Matrix4_Impl_.prependRotation = function(this1,degrees,axis,pivotPoint) {
	var m = Matrix4_Impl_.__getAxisRotation(this1,axis.x,axis.y,axis.z,degrees);
	if(pivotPoint != null) {
		var p = pivotPoint;
		Matrix4_Impl_.appendTranslation(m,p.x,p.y,p.z);
	}
	Matrix4_Impl_.prepend(this1,m);
}
Matrix4_Impl_.prependScale = function(this1,xScale,yScale,zScale) {
	var array = [xScale,0.0,0.0,0.0,0.0,yScale,0.0,0.0,0.0,0.0,zScale,0.0,0.0,0.0,0.0,1.0];
	var this2;
	if(array != null) {
		this2 = new Float32Array(array);
	} else {
		this2 = null;
	}
	Matrix4_Impl_.prepend(this1,Matrix4_Impl_._new(this2));
}
Matrix4_Impl_.prependTranslation = function(this1,x,y,z) {
	var m = Matrix4_Impl_._new();
	Matrix4_Impl_.set_position(m,new (lime_math_Vector4().default)(x,y,z));
	Matrix4_Impl_.prepend(this1,m);
}
Matrix4_Impl_.transformVector = function(this1,v) {
	var x = v.x;
	var y = v.y;
	var z = v.z;
	return new (lime_math_Vector4().default)(x * this1[0] + y * this1[4] + z * this1[8] + this1[12],x * this1[1] + y * this1[5] + z * this1[9] + this1[13],x * this1[2] + y * this1[6] + z * this1[10] + this1[14],x * this1[3] + y * this1[7] + z * this1[11] + this1[15]);
}
Matrix4_Impl_.transformVectors = function(this1,ain,aout) {
	var i = 0;
	var x;
	var y;
	var z;
	while(i + 3 <= ain.length) {
		x = ain[i];
		y = ain[i + 1];
		z = ain[i + 2];
		aout[i] = x * this1[0] + y * this1[4] + z * this1[8] + this1[12];
		aout[i + 1] = x * this1[1] + y * this1[5] + z * this1[9] + this1[13];
		aout[i + 2] = x * this1[2] + y * this1[6] + z * this1[10] + this1[14];
		i += 3;
	}
}
Matrix4_Impl_.transpose = function(this1) {
	var temp = this1[1];
	this1[1] = this1[4];
	this1[4] = temp;
	var temp1 = this1[2];
	this1[2] = this1[8];
	this1[8] = temp1;
	var temp2 = this1[3];
	this1[3] = this1[12];
	this1[12] = temp2;
	var temp3 = this1[6];
	this1[6] = this1[9];
	this1[9] = temp3;
	var temp4 = this1[7];
	this1[7] = this1[13];
	this1[13] = temp4;
	var temp5 = this1[11];
	this1[11] = this1[14];
	this1[14] = temp5;
}
Matrix4_Impl_.__getAxisRotation = function(this1,x,y,z,degrees) {
	var m = Matrix4_Impl_._new();
	var a1 = new (lime_math_Vector4().default)(x,y,z);
	var rad = -degrees * (Math.PI / 180);
	var c = Math.cos(rad);
	var s = Math.sin(rad);
	var t = 1.0 - c;
	Matrix4_Impl_.set(m,0,c + a1.x * a1.x * t);
	Matrix4_Impl_.set(m,5,c + a1.y * a1.y * t);
	Matrix4_Impl_.set(m,10,c + a1.z * a1.z * t);
	var tmp1 = a1.x * a1.y * t;
	var tmp2 = a1.z * s;
	Matrix4_Impl_.set(m,4,tmp1 + tmp2);
	Matrix4_Impl_.set(m,1,tmp1 - tmp2);
	tmp1 = a1.x * a1.z * t;
	tmp2 = a1.y * s;
	Matrix4_Impl_.set(m,8,tmp1 - tmp2);
	Matrix4_Impl_.set(m,2,tmp1 + tmp2);
	tmp1 = a1.y * a1.z * t;
	tmp2 = a1.x * s;
	Matrix4_Impl_.set(m,9,tmp1 + tmp2);
	Matrix4_Impl_.set(m,6,tmp1 - tmp2);
	return m;
}
Matrix4_Impl_.__swap = function(this1,a,b) {
	var temp = this1[a];
	this1[a] = this1[b];
	this1[b] = temp;
}
Matrix4_Impl_.get_determinant = function(this1) {
	return (this1[0] * this1[5] - this1[4] * this1[1]) * (this1[10] * this1[15] - this1[14] * this1[11]) - (this1[0] * this1[9] - this1[8] * this1[1]) * (this1[6] * this1[15] - this1[14] * this1[7]) + (this1[0] * this1[13] - this1[12] * this1[1]) * (this1[6] * this1[11] - this1[10] * this1[7]) + (this1[4] * this1[9] - this1[8] * this1[5]) * (this1[2] * this1[15] - this1[14] * this1[3]) - (this1[4] * this1[13] - this1[12] * this1[5]) * (this1[2] * this1[11] - this1[10] * this1[3]) + (this1[8] * this1[13] - this1[12] * this1[9]) * (this1[2] * this1[7] - this1[6] * this1[3]);
}
Matrix4_Impl_.get_position = function(this1) {
	return new (lime_math_Vector4().default)(this1[12],this1[13],this1[14]);
}
Matrix4_Impl_.set_position = function(this1,val) {
	this1[12] = val.x;
	this1[13] = val.y;
	this1[14] = val.z;
	return val;
}
Matrix4_Impl_.get = function(this1,index) {
	return this1[index];
}
Matrix4_Impl_.set = function(this1,index,value) {
	this1[index] = value;
	return value;
}
Matrix4_Impl_.__identity = [1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0]
// Export
exports.default = Matrix4_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 294 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: haxe.StackItem
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var StackItem = $hxClasses["haxe.StackItem"] = { __ename__: ["haxe","StackItem"], __constructs__: ["CFunction","Module","FilePos","Method","LocalFunction"] }
StackItem.Module = function(m) { var $x = ["Module",1,m]; $x.__enum__ = StackItem; $x.toString = $estr; return $x; }
StackItem.Method = function(classname,method) { var $x = ["Method",3,classname,method]; $x.__enum__ = StackItem; $x.toString = $estr; return $x; }
StackItem.LocalFunction = function(v) { var $x = ["LocalFunction",4,v]; $x.__enum__ = StackItem; $x.toString = $estr; return $x; }
StackItem.FilePos = function(s,file,line) { var $x = ["FilePos",2,s,file,line]; $x.__enum__ = StackItem; $x.toString = $estr; return $x; }
StackItem.CFunction = ["CFunction",0];
StackItem.CFunction.toString = $estr;
StackItem.CFunction.__enum__ = StackItem;
exports.default = StackItem;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 295 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLBlendModeManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractBlendModeManager() {return __webpack_require__(119);}
// Constructor
var GLBlendModeManager = function(gl) {
	(openfl__$internal_renderer_AbstractBlendModeManager().default).call(this);
	this.gl = gl;
	this.setBlendMode("normal");
	gl.enable(gl.BLEND);
}
// Meta
GLBlendModeManager.__name__ = ["openfl","_internal","renderer","opengl","GLBlendModeManager"];
GLBlendModeManager.__super__ = (openfl__$internal_renderer_AbstractBlendModeManager().default);
GLBlendModeManager.prototype = $extend((openfl__$internal_renderer_AbstractBlendModeManager().default).prototype, {
	setBlendMode: function(blendMode) {
		if(this.currentBlendMode == blendMode) {
			return;
		}
		this.currentBlendMode = blendMode;
		switch(blendMode) {
		case "add":
			this.gl.blendEquation(this.gl.FUNC_ADD);
			this.gl.blendFunc(this.gl.ONE,this.gl.ONE);
			break;
		case "multiply":
			this.gl.blendEquation(this.gl.FUNC_ADD);
			this.gl.blendFunc(this.gl.DST_COLOR,this.gl.ONE_MINUS_SRC_ALPHA);
			break;
		case "screen":
			this.gl.blendEquation(this.gl.FUNC_ADD);
			this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_COLOR);
			break;
		case "subtract":
			this.gl.blendEquation(this.gl.FUNC_REVERSE_SUBTRACT);
			this.gl.blendFunc(this.gl.ONE,this.gl.ONE);
			break;
		default:
			this.gl.blendEquation(this.gl.FUNC_ADD);
			this.gl.blendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA);
		}
	}
});
GLBlendModeManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLBlendModeManager"] = GLBlendModeManager;
// Init
// Statics
// Export
exports.default = GLBlendModeManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 296 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLFilterManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractFilterManager() {return __webpack_require__(297);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
// Constructor
var GLFilterManager = function(renderer,renderSession) {
	(openfl__$internal_renderer_AbstractFilterManager().default).call(this,renderSession);
	this.renderer = renderer;
	this.gl = renderSession.gl;
	this.filterDepth = 0;
	this.matrix = new (openfl_geom_Matrix().default)();
}
// Meta
GLFilterManager.__name__ = ["openfl","_internal","renderer","opengl","GLFilterManager"];
GLFilterManager.__super__ = (openfl__$internal_renderer_AbstractFilterManager().default);
GLFilterManager.prototype = $extend((openfl__$internal_renderer_AbstractFilterManager().default).prototype, {
	pushObject: function(object) {
		return this.renderSession.shaderManager.defaultShader;
	},
	popObject: function(object) {
		return;
	},
	renderPass: function(target,shader) {
		if(target == null || shader == null) {
			return;
		}
		shader.get_data().uImage0.input = target;
		var tmp = this.renderSession.allowSmoothing && this.renderSession.upscaled;
		shader.get_data().uImage0.smoothing = tmp;
		shader.get_data().uMatrix.value = this.renderer.getMatrix(this.matrix);
		if(shader.get_data().uColorTransform != null) {
			if(shader.get_data().uColorTransform.value == null) {
				shader.get_data().uColorTransform.value = [];
			}
			shader.get_data().uColorTransform.value[0] = false;
		}
		this.renderSession.shaderManager.setShader(shader);
		this.gl.bindBuffer(this.gl.ARRAY_BUFFER,target.getBuffer(this.gl,1,null));
		this.gl.vertexAttribPointer(shader.get_data().aPosition.index,3,this.gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
		this.gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,this.gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
		this.gl.vertexAttribPointer(shader.get_data().aAlpha.index,1,this.gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(20));
		this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4);
	}
});
GLFilterManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLFilterManager"] = GLFilterManager;
// Init
// Statics
// Export
exports.default = GLFilterManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 297 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.AbstractFilterManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var AbstractFilterManager = function(renderSession) {
	this.renderSession = renderSession;
}
// Meta
AbstractFilterManager.__name__ = ["openfl","_internal","renderer","AbstractFilterManager"];
AbstractFilterManager.prototype = {
	pushObject: function(object) {
		return null;
	},
	popObject: function(object) {
	}
};
AbstractFilterManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.AbstractFilterManager"] = AbstractFilterManager;
// Init
// Statics
// Export
exports.default = AbstractFilterManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 298 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLShaderManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractShaderManager() {return __webpack_require__(299);}
function openfl_display_Shader() {return __webpack_require__(122);}
// Constructor
var GLShaderManager = function(gl) {
	(openfl__$internal_renderer_AbstractShaderManager().default).call(this);
	this.gl = gl;
	this.defaultShader = new (openfl_display_Shader().default)();
	this.initShader(this.defaultShader);
}
// Meta
GLShaderManager.__name__ = ["openfl","_internal","renderer","opengl","GLShaderManager"];
GLShaderManager.__super__ = (openfl__$internal_renderer_AbstractShaderManager().default);
GLShaderManager.prototype = $extend((openfl__$internal_renderer_AbstractShaderManager().default).prototype, {
	initShader: function(shader) {
		if(shader != null) {
			if(shader.gl == null) {
				shader.gl = this.gl;
				shader.__init();
			}
			return shader;
		}
		return this.defaultShader;
	},
	setShader: function(shader) {
		if(this.currentShader == shader) {
			return;
		}
		if(this.currentShader != null) {
			this.currentShader.__disable();
		}
		if(shader == null) {
			this.currentShader = null;
			this.gl.useProgram(null);
			return;
		} else {
			this.currentShader = shader;
			this.initShader(shader);
			this.gl.useProgram(shader.glProgram);
			this.currentShader.__enable();
		}
	},
	updateShader: function(shader) {
		if(this.currentShader != null) {
			this.currentShader.__update();
		}
	}
});
GLShaderManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLShaderManager"] = GLShaderManager;
// Init
// Statics
// Export
exports.default = GLShaderManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 299 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.AbstractShaderManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var AbstractShaderManager = function() {
}
// Meta
AbstractShaderManager.__name__ = ["openfl","_internal","renderer","AbstractShaderManager"];
AbstractShaderManager.prototype = {
	initShader: function(shader) {
		return shader;
	},
	setShader: function(shader) {
	},
	updateShader: function(shader) {
	}
};
AbstractShaderManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.AbstractShaderManager"] = AbstractShaderManager;
// Init
// Statics
// Export
exports.default = AbstractShaderManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 300 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.GLUtils
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_graphics_opengl_GL() {return __webpack_require__(49);}
function lime_utils_Log() {return __webpack_require__(23);}
// Constructor
var GLUtils = function(){}
// Meta
GLUtils.__name__ = ["lime","utils","GLUtils"];
GLUtils.prototype = {
	
};
GLUtils.prototype.__class__ = $hxClasses["lime.utils.GLUtils"] = GLUtils;
// Init
// Statics
GLUtils.compileShader = function(source,type) {
	var shader = (lime_graphics_opengl_GL().default).createShader(type);
	(lime_graphics_opengl_GL().default).shaderSource(shader,source);
	(lime_graphics_opengl_GL().default).compileShader(shader);
	if((lime_graphics_opengl_GL().default).getShaderParameter(shader,35713) == 0) {
		var message;
		switch(type) {
		case 35632:
			message = "Error compiling fragment shader";
			break;
		case 35633:
			message = "Error compiling vertex shader";
			break;
		default:
			message = "Error compiling unknown shader type";
		}
		message += "\n" + (lime_graphics_opengl_GL().default).getShaderInfoLog(shader);
		(lime_utils_Log().default).error(message,{ fileName : "GLUtils.hx", lineNumber : 35, className : "lime.utils.GLUtils", methodName : "compileShader"});
	}
	return shader;
}
GLUtils.createProgram = function(vertexSource,fragmentSource) {
	var vertexShader = GLUtils.compileShader(vertexSource,35633);
	var fragmentShader = GLUtils.compileShader(fragmentSource,35632);
	var program = (lime_graphics_opengl_GL().default).createProgram();
	(lime_graphics_opengl_GL().default).attachShader(program,vertexShader);
	(lime_graphics_opengl_GL().default).attachShader(program,fragmentShader);
	(lime_graphics_opengl_GL().default).linkProgram(program);
	if((lime_graphics_opengl_GL().default).getProgramParameter(program,35714) == 0) {
		var message = "Unable to initialize the shader program";
		message += "\n" + (lime_graphics_opengl_GL().default).getProgramInfoLog(program);
		(lime_utils_Log().default).error(message,{ fileName : "GLUtils.hx", lineNumber : 58, className : "lime.utils.GLUtils", methodName : "createProgram"});
	}
	return program;
}
// Export
exports.default = GLUtils;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 301 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLMaskShader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_Shader() {return __webpack_require__(122);}
// Constructor
var GLMaskShader = function(code) {
	if(this.__glFragmentSource == null) {
		this.__glFragmentSource = "varying vec2 vTexCoord;\n\t\t\n\t\tuniform sampler2D uImage0;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tvec4 color = texture2D (uImage0, vTexCoord);\n\t\t\t\n\t\t\tif (color.a == 0.0) {\n\t\t\t\t\n\t\t\t\tdiscard;\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tgl_FragColor = color;\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}";
	}
	if(this.__glVertexSource == null) {
		this.__glVertexSource = "attribute vec4 aPosition;\n\t\tattribute vec2 aTexCoord;\n\t\tvarying vec2 vTexCoord;\n\t\t\n\t\tuniform mat4 uMatrix;\n\t\t\n\t\tvoid main(void) {\n\t\t\t\n\t\t\tvTexCoord = aTexCoord;\n\t\t\t\n\t\t\tgl_Position = uMatrix * aPosition;\n\t\t\t\n\t\t}";
	}
	(openfl_display_Shader().default).call(this,code);
}
// Meta
GLMaskShader.__name__ = ["openfl","_internal","renderer","opengl","GLMaskShader"];
GLMaskShader.__super__ = (openfl_display_Shader().default);
GLMaskShader.prototype = $extend((openfl_display_Shader().default).prototype, {
	
});
GLMaskShader.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLMaskShader"] = GLMaskShader;
// Init
// Statics
// Export
exports.default = GLMaskShader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 302 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.compress.Deflate
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_io_Bytes() {return __webpack_require__(16);}
// Constructor
var Deflate = function(){}
// Meta
Deflate.__name__ = ["lime","utils","compress","Deflate"];
Deflate.prototype = {
	
};
Deflate.prototype.__class__ = $hxClasses["lime.utils.compress.Deflate"] = Deflate;
// Init
// Statics
Deflate.compress = function(bytes) {
	var data = __webpack_require__ (93).deflateRaw(bytes.getData());
	return (haxe_io_Bytes().default).ofData(data);
}
Deflate.decompress = function(bytes) {
	var data = __webpack_require__ (93).inflateRaw(bytes.getData());
	return (haxe_io_Bytes().default).ofData(data);
}
// Export
exports.default = Deflate;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 303 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.compress.LZMA
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var LZMA = function(){}
// Meta
LZMA.__name__ = ["lime","utils","compress","LZMA"];
LZMA.prototype = {
	
};
LZMA.prototype.__class__ = $hxClasses["lime.utils.compress.LZMA"] = LZMA;
// Init
// Statics
LZMA.compress = function(bytes) {
	return null;
}
LZMA.decompress = function(bytes) {
	return null;
}
// Export
exports.default = LZMA;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 304 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.compress.Zlib
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_io_Bytes() {return __webpack_require__(16);}
// Constructor
var Zlib = function(){}
// Meta
Zlib.__name__ = ["lime","utils","compress","Zlib"];
Zlib.prototype = {
	
};
Zlib.prototype.__class__ = $hxClasses["lime.utils.compress.Zlib"] = Zlib;
// Init
// Statics
Zlib.compress = function(bytes) {
	var data = __webpack_require__ (93).deflate(bytes.getData());
	return (haxe_io_Bytes().default).ofData(data);
}
Zlib.decompress = function(bytes) {
	var data = __webpack_require__ (93).inflate(bytes.getData());
	return (haxe_io_Bytes().default).ofData(data);
}
// Export
exports.default = Zlib;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 305 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.io.FPHelper
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe__$Int64__$_$_$Int64() {return __webpack_require__(54);}
function Std() {return __webpack_require__(4);}
// Constructor
var FPHelper = function(){}
// Meta
FPHelper.__name__ = ["haxe","io","FPHelper"];
FPHelper.prototype = {
	
};
FPHelper.prototype.__class__ = $hxClasses["haxe.io.FPHelper"] = FPHelper;
// Init
// Statics
FPHelper.i32ToFloat = function(i) {
	var sign = 1 - (i >>> 31 << 1);
	var exp = i >>> 23 & 255;
	var sig = i & 8388607;
	if(sig == 0 && exp == 0) {
		return 0.0;
	}
	return sign * (1 + Math.pow(2,-23) * sig) * Math.pow(2,exp - 127);
}
FPHelper.floatToI32 = function(f) {
	if(f == 0) {
		return 0;
	}
	var af = f < 0 ? -f : f;
	var exp = Math.floor(Math.log(af) / 0.6931471805599453);
	if(exp < -127) {
		exp = -127;
	} else if(exp > 128) {
		exp = 128;
	}
	var sig = Math.round((af / Math.pow(2,exp) - 1) * 8388608);
	if(sig == 8388608 && exp < 128) {
		sig = 0;
		++exp;
	}
	return (f < 0 ? -2147483648 : 0) | exp + 127 << 23 | sig;
}
FPHelper.i64ToDouble = function(low,high) {
	var sign = 1 - (high >>> 31 << 1);
	var exp = (high >> 20 & 2047) - 1023;
	var sig = (high & 1048575) * 4294967296. + (low >>> 31) * 2147483648. + (low & 2147483647);
	if(sig == 0 && exp == -1023) {
		return 0.0;
	}
	return sign * (1.0 + Math.pow(2,-52) * sig) * Math.pow(2,exp);
}
FPHelper.doubleToI64 = function(v) {
	var i64 = FPHelper.i64tmp;
	if(v == 0) {
		i64.low = 0;
		i64.high = 0;
	} else if(!isFinite(v)) {
		if(v > 0) {
			i64.low = 0;
			i64.high = 2146435072;
		} else {
			i64.low = 0;
			i64.high = -1048576;
		}
	} else {
		var av = v < 0 ? -v : v;
		var exp = Math.floor(Math.log(av) / 0.6931471805599453);
		var sig = Math.round((av / Math.pow(2,exp) - 1) * 4503599627370496.);
		var sig_l = (Std().default)["int"](sig);
		var sig_h = (Std().default)["int"](sig / 4294967296.0);
		i64.low = sig_l;
		i64.high = (v < 0 ? -2147483648 : 0) | exp + 1023 << 20 | sig_h;
	}
	return i64;
}
FPHelper.i64tmp = (function($this) {
	var $r;
	var this1 = new (haxe__$Int64__$_$_$Int64().default)(0,0);
	$r = this1;
	return $r;
}(this))
FPHelper.LN2 = 0.6931471805599453
// Export
exports.default = FPHelper;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 306 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.net._HTTPRequest_lime_utils_Bytes
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_net__$HTTPRequest_$Bytes() {return __webpack_require__(125);}
function lime_utils__$Bytes_Bytes_$Impl_$() {return __webpack_require__(74);}
// Constructor
var _HTTPRequest_lime_utils_Bytes = function(uri) {
	(lime_net__$HTTPRequest_$Bytes().default).call(this,uri);
}
// Meta
_HTTPRequest_lime_utils_Bytes.__name__ = ["lime","net","_HTTPRequest_lime_utils_Bytes"];
_HTTPRequest_lime_utils_Bytes.__super__ = (lime_net__$HTTPRequest_$Bytes().default);
_HTTPRequest_lime_utils_Bytes.prototype = $extend((lime_net__$HTTPRequest_$Bytes().default).prototype, {
	fromBytes: function(bytes) {
		return (lime_utils__$Bytes_Bytes_$Impl_$().default).fromBytes(bytes);
	}
});
_HTTPRequest_lime_utils_Bytes.prototype.__class__ = $hxClasses["lime.net._HTTPRequest_lime_utils_Bytes"] = _HTTPRequest_lime_utils_Bytes;
// Init
// Statics
// Export
exports.default = _HTTPRequest_lime_utils_Bytes;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 307 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.net._IHTTPRequest
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var _IHTTPRequest = function() {}
// Meta
_IHTTPRequest.__name__ = ["lime","net","_IHTTPRequest"];
_IHTTPRequest.prototype = {
	
};
_IHTTPRequest.prototype.__class__ = $hxClasses["lime.net._IHTTPRequest"] = _IHTTPRequest;
// Init
// Statics
// Export
exports.default = _IHTTPRequest;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 308 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils._BytePointer.BytePointer_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils_BytePointerData() {return __webpack_require__(73);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function lime_utils__$Bytes_Bytes_$Impl_$() {return __webpack_require__(74);}
function Std() {return __webpack_require__(4);}
// Constructor
var BytePointer_Impl_ = function(){}
// Meta
BytePointer_Impl_.__name__ = ["lime","utils","_BytePointer","BytePointer_Impl_"];
BytePointer_Impl_.prototype = {
	
};
BytePointer_Impl_.prototype.__class__ = $hxClasses["lime.utils._BytePointer.BytePointer_Impl_"] = BytePointer_Impl_;
// Init
// Statics
BytePointer_Impl_._new = function(bytes,offset) {
	if(offset == null) {
		offset = 0;
	}
	var this1 = new (lime_utils_BytePointerData().default)(bytes,offset);
	return this1;
}
BytePointer_Impl_.set = function(this1,bytes,bufferView,buffer,offset) {
	if(buffer != null) {
		bytes = (haxe_io_Bytes().default).ofData(buffer);
	}
	if(bytes != null || bufferView == null) {
		this1.bytes = bytes;
		this1.offset = offset != null ? offset : 0;
	} else {
		this1.bytes = (haxe_io_Bytes().default).ofData(bufferView.buffer);
		this1.offset = offset != null ? bufferView.byteOffset + offset : bufferView.byteOffset;
	}
}
BytePointer_Impl_.__arrayGet = function(this1,index) {
	if(this1.bytes != null) {
		return this1.bytes.get(index + this1.offset);
	} else {
		return 0;
	}
}
BytePointer_Impl_.__arraySet = function(this1,index,value) {
	if(this1.bytes == null) {
		this1.bytes.set(index + this1.offset,value);
	}
	return value;
}
BytePointer_Impl_.fromArrayBufferView = function(arrayBufferView) {
	if(arrayBufferView == null) {
		return null;
	}
	return new (lime_utils_BytePointerData().default)((haxe_io_Bytes().default).ofData(arrayBufferView.buffer),arrayBufferView.byteOffset);
}
BytePointer_Impl_.fromArrayBuffer = function(buffer) {
	if(buffer == null) {
		return null;
	}
	return new (lime_utils_BytePointerData().default)((haxe_io_Bytes().default).ofData(buffer),0);
}
BytePointer_Impl_.fromBytes = function(bytes) {
	return new (lime_utils_BytePointerData().default)(bytes,0);
}
BytePointer_Impl_.fromBytesData = function(bytesData) {
	if(bytesData == null) {
		return new (lime_utils_BytePointerData().default)(null,0);
	} else {
		return new (lime_utils_BytePointerData().default)((haxe_io_Bytes().default).ofData(bytesData),0);
	}
}
BytePointer_Impl_.fromFile = function(path) {
	return new (lime_utils_BytePointerData().default)((lime_utils__$Bytes_Bytes_$Impl_$().default).fromFile(path),0);
}
BytePointer_Impl_.fromLimeBytes = function(bytes) {
	return new (lime_utils_BytePointerData().default)(bytes,0);
}
BytePointer_Impl_.toUInt8Array = function(bytePointer) {
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 8);
	var this1;
	if(buffer != null) {
		this1 = new Uint8Array(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
BytePointer_Impl_.toUInt8ClampedArray = function(bytePointer) {
	if(bytePointer == null || bytePointer.bytes == null) {
		return null;
	}
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 8);
	var this1;
	if(buffer != null) {
		this1 = new Uint8ClampedArray(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
BytePointer_Impl_.toInt8Array = function(bytePointer) {
	if(bytePointer == null || bytePointer.bytes == null) {
		return null;
	}
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 8);
	var this1;
	if(buffer != null) {
		this1 = new Int8Array(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
BytePointer_Impl_.toUInt16Array = function(bytePointer) {
	if(bytePointer == null || bytePointer.bytes == null) {
		return null;
	}
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 16);
	var this1;
	if(buffer != null) {
		this1 = new Uint16Array(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
BytePointer_Impl_.toInt16Array = function(bytePointer) {
	if(bytePointer == null || bytePointer.bytes == null) {
		return null;
	}
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 16);
	var this1;
	if(buffer != null) {
		this1 = new Int16Array(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
BytePointer_Impl_.toUInt32Array = function(bytePointer) {
	if(bytePointer == null || bytePointer.bytes == null) {
		return null;
	}
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 32);
	var this1;
	if(buffer != null) {
		this1 = new Uint32Array(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
BytePointer_Impl_.toInt32Array = function(bytePointer) {
	if(bytePointer == null || bytePointer.bytes == null) {
		return null;
	}
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 32);
	var this1;
	if(buffer != null) {
		this1 = new Int32Array(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
BytePointer_Impl_.toFloat32Array = function(bytePointer) {
	if(bytePointer == null || bytePointer.bytes == null) {
		return null;
	}
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 32);
	var this1;
	if(buffer != null) {
		this1 = new Float32Array(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
BytePointer_Impl_.toFloat64Array = function(bytePointer) {
	if(bytePointer == null || bytePointer.bytes == null) {
		return null;
	}
	var buffer = bytePointer.bytes.getData();
	var byteoffset = (Std().default)["int"](bytePointer.offset / 64);
	var this1;
	if(buffer != null) {
		this1 = new Float64Array(buffer,byteoffset);
	} else {
		this1 = null;
	}
	return this1;
}
// Export
exports.default = BytePointer_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 309 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.cairo._CairoImageSurface.CairoImageSurface_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
// Constructor
var CairoImageSurface_Impl_ = function(){}
// Meta
CairoImageSurface_Impl_.__name__ = ["lime","graphics","cairo","_CairoImageSurface","CairoImageSurface_Impl_"];
CairoImageSurface_Impl_.prototype = {
	
};
CairoImageSurface_Impl_.prototype.__class__ = $hxClasses["lime.graphics.cairo._CairoImageSurface.CairoImageSurface_Impl_"] = CairoImageSurface_Impl_;
// Init
// Statics
CairoImageSurface_Impl_._new = function(format,width,height) {
	var this1 = 0;
	return this1;
}
CairoImageSurface_Impl_.create = function(data,format,width,height,stride) {
	return 0;
}
CairoImageSurface_Impl_.fromImage = function(image) {
	return null;
}
CairoImageSurface_Impl_.get_data = function(this1) {
	return (lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0);
}
CairoImageSurface_Impl_.get_format = function(this1) {
	return 0;
}
CairoImageSurface_Impl_.get_height = function(this1) {
	return 0;
}
CairoImageSurface_Impl_.get_stride = function(this1) {
	return 0;
}
CairoImageSurface_Impl_.get_width = function(this1) {
	return 0;
}
// Export
exports.default = CairoImageSurface_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 310 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.graphics.cairo._CairoSurface.CairoSurface_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var CairoSurface_Impl_ = function(){}
// Meta
CairoSurface_Impl_.__name__ = ["lime","graphics","cairo","_CairoSurface","CairoSurface_Impl_"];
CairoSurface_Impl_.prototype = {
	
};
CairoSurface_Impl_.prototype.__class__ = $hxClasses["lime.graphics.cairo._CairoSurface.CairoSurface_Impl_"] = CairoSurface_Impl_;
// Init
// Statics
CairoSurface_Impl_.flush = function(this1) {
}
// Export
exports.default = CairoSurface_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 311 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.utils.PerlinNoise
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
// Constructor
var PerlinNoise = function(seed,octaves,falloff) {
	if(seed == null) {
		seed = 123;
	}
	if(falloff == null) {
		falloff = .5;
	}
	this.octaves = octaves == null ? 4 : octaves;
	this.baseFactor = 0.015625;
	this.seedOffset(seed);
	this.octFreqPers(falloff);
}
// Meta
PerlinNoise.__name__ = ["openfl","_internal","utils","PerlinNoise"];
PerlinNoise.prototype = {
	fill: function(bitmap,_x,_y,_z,_) {
		var baseX = _x * this.baseFactor + this.iXoffset;
		_y = _y * this.baseFactor + this.iYoffset;
		_z = _z * this.baseFactor + this.iZoffset;
		var width = bitmap.width;
		var height = bitmap.height;
		var p = PerlinNoise.P;
		var octaves = this.octaves;
		var aOctFreq = this.aOctFreq;
		var aOctPers = this.aOctPers;
		var _g1 = 0;
		var _g = height;
		while(_g1 < _g) {
			var py = _g1++;
			_x = baseX;
			var _g3 = 0;
			var _g2 = width;
			while(_g3 < _g2) {
				var px = _g3++;
				var s = 0.;
				var _g5 = 0;
				var _g4 = octaves;
				while(_g5 < _g4) {
					var i = _g5++;
					var fFreq = aOctFreq[i];
					var fPers = aOctPers[i];
					var x = _x * fFreq;
					var y = _y * fFreq;
					var z = _z * fFreq;
					var xf = x - x % 1;
					var yf = y - y % 1;
					var zf = z - z % 1;
					var X = (Std().default)["int"](xf) & 255;
					var Y = (Std().default)["int"](yf) & 255;
					var Z = (Std().default)["int"](zf) & 255;
					x -= xf;
					y -= yf;
					z -= zf;
					var u = x * x * x * (x * (x * 6 - 15) + 10);
					var v = y * y * y * (y * (y * 6 - 15) + 10);
					var w = z * z * z * (z * (z * 6 - 15) + 10);
					var A = p[X] + Y;
					var AA = p[A] + Z;
					var AB = p[A + 1] + Z;
					var B = p[X + 1] + Y;
					var BA = p[B] + Z;
					var BB = p[B + 1] + Z;
					var x1 = x - 1;
					var y1 = y - 1;
					var z1 = z - 1;
					var hash = p[BB + 1] & 15;
					var g1 = ((hash & 1) == 0 ? hash < 8 ? x1 : y1 : hash < 8 ? -x1 : -y1) + ((hash & 2) == 0 ? hash < 4 ? y1 : hash == 12 ? x1 : z1 : hash < 4 ? -y1 : hash == 14 ? -x1 : -z1);
					hash = p[AB + 1] & 15;
					var g2 = ((hash & 1) == 0 ? hash < 8 ? x : y1 : hash < 8 ? -x : -y1) + ((hash & 2) == 0 ? hash < 4 ? y1 : hash == 12 ? x : z1 : hash < 4 ? -y1 : hash == 14 ? -x : -z1);
					hash = p[BA + 1] & 15;
					var g3 = ((hash & 1) == 0 ? hash < 8 ? x1 : y : hash < 8 ? -x1 : -y) + ((hash & 2) == 0 ? hash < 4 ? y : hash == 12 ? x1 : z1 : hash < 4 ? -y : hash == 14 ? -x1 : -z1);
					hash = p[AA + 1] & 15;
					var g4 = ((hash & 1) == 0 ? hash < 8 ? x : y : hash < 8 ? -x : -y) + ((hash & 2) == 0 ? hash < 4 ? y : hash == 12 ? x : z1 : hash < 4 ? -y : hash == 14 ? -x : -z1);
					hash = p[BB] & 15;
					var g5 = ((hash & 1) == 0 ? hash < 8 ? x1 : y1 : hash < 8 ? -x1 : -y1) + ((hash & 2) == 0 ? hash < 4 ? y1 : hash == 12 ? x1 : z : hash < 4 ? -y1 : hash == 14 ? -x1 : -z);
					hash = p[AB] & 15;
					var g6 = ((hash & 1) == 0 ? hash < 8 ? x : y1 : hash < 8 ? -x : -y1) + ((hash & 2) == 0 ? hash < 4 ? y1 : hash == 12 ? x : z : hash < 4 ? -y1 : hash == 14 ? -x : -z);
					hash = p[BA] & 15;
					var g7 = ((hash & 1) == 0 ? hash < 8 ? x1 : y : hash < 8 ? -x1 : -y) + ((hash & 2) == 0 ? hash < 4 ? y : hash == 12 ? x1 : z : hash < 4 ? -y : hash == 14 ? -x1 : -z);
					hash = p[AA] & 15;
					var g8 = ((hash & 1) == 0 ? hash < 8 ? x : y : hash < 8 ? -x : -y) + ((hash & 2) == 0 ? hash < 4 ? y : hash == 12 ? x : z : hash < 4 ? -y : hash == 14 ? -x : -z);
					g2 += u * (g1 - g2);
					g4 += u * (g3 - g4);
					g6 += u * (g5 - g6);
					g8 += u * (g7 - g8);
					g4 += v * (g2 - g4);
					g8 += v * (g6 - g8);
					s += (g8 + w * (g4 - g8)) * fPers;
				}
				var color = (Std().default)["int"]((s * this.fPersMax + 1) * 128);
				bitmap.setPixel32(px,py,-16777216 | color << 16 | color << 8 | color);
				_x += this.baseFactor;
			}
			_y += this.baseFactor;
		}
	},
	octFreqPers: function(fPersistence) {
		var fFreq;
		var fPers;
		this.aOctFreq = [];
		this.aOctPers = [];
		this.fPersMax = 0;
		var _g1 = 0;
		var _g = this.octaves;
		while(_g1 < _g) {
			var i = _g1++;
			fFreq = Math.pow(2,i);
			fPers = Math.pow(fPersistence,i);
			this.fPersMax += fPers;
			this.aOctFreq.push(fFreq);
			this.aOctPers.push(fPers);
		}
		this.fPersMax = 1 / this.fPersMax;
	},
	seedOffset: function(iSeed) {
		iSeed = (Std().default)["int"](iSeed * 16807. % 2147483647);
		this.iXoffset = iSeed;
		iSeed = (Std().default)["int"](iSeed * 16807. % 2147483647);
		this.iYoffset = iSeed;
		iSeed = (Std().default)["int"](iSeed * 16807. % 2147483647);
		this.iZoffset = iSeed;
	}
};
PerlinNoise.prototype.__class__ = $hxClasses["openfl._internal.utils.PerlinNoise"] = PerlinNoise;
// Init
// Statics
PerlinNoise.P = [151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180,151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180]
// Export
exports.default = PerlinNoise;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 312 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils._Endian.Endian_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Type() {return __webpack_require__(10);}
function lime_system_Endian() {return __webpack_require__(64);}
// Constructor
var Endian_Impl_ = function(){}
// Meta
Endian_Impl_.__name__ = ["openfl","utils","_Endian","Endian_Impl_"];
Endian_Impl_.prototype = {
	
};
Endian_Impl_.prototype.__class__ = $hxClasses["openfl.utils._Endian.Endian_Impl_"] = Endian_Impl_;
// Init
// Statics
Endian_Impl_.fromLimeEndian = function(value) {
	switch((Type().default).enumIndex(value)) {
	case 0:
		return "littleEndian";
	case 1:
		return "bigEndian";
	}
}
Endian_Impl_.toLimeEndian = function(value) {
	switch(value) {
	case "bigEndian":
		return (lime_system_Endian().default).BIG_ENDIAN;
	case "littleEndian":
		return (lime_system_Endian().default).LITTLE_ENDIAN;
	default:
		return null;
	}
}
Endian_Impl_.BIG_ENDIAN = "bigEndian"
Endian_Impl_.LITTLE_ENDIAN = "littleEndian"
// Export
exports.default = Endian_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 313 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMMaskManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractMaskManager() {return __webpack_require__(120);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
// Constructor
var DOMMaskManager = function(renderSession) {
	(openfl__$internal_renderer_AbstractMaskManager().default).call(this,renderSession);
	this.clipRects = [];
	this.numClipRects = 0;
}
// Meta
DOMMaskManager.__name__ = ["openfl","_internal","renderer","dom","DOMMaskManager"];
DOMMaskManager.__super__ = (openfl__$internal_renderer_AbstractMaskManager().default);
DOMMaskManager.prototype = $extend((openfl__$internal_renderer_AbstractMaskManager().default).prototype, {
	pushMask: function(mask) {
		this.pushRect(mask.getBounds(mask),mask.__getRenderTransform());
	},
	pushObject: function(object,handleScrollRect) {
		if(handleScrollRect == null) {
			handleScrollRect = true;
		}
		if(handleScrollRect && object.__scrollRect != null) {
			this.pushRect(object.__scrollRect,object.__renderTransform);
		}
		if(object.__mask != null) {
			this.pushMask(object.__mask);
		}
	},
	pushRect: function(rect,transform) {
		if(this.numClipRects == this.clipRects.length) {
			this.clipRects[this.numClipRects] = new (openfl_geom_Rectangle().default)();
		}
		var clipRect = this.clipRects[this.numClipRects];
		rect.__transform(clipRect,transform);
		if(this.numClipRects > 0) {
			var parentClipRect = this.clipRects[this.numClipRects - 1];
			clipRect.__contract(parentClipRect.x,parentClipRect.y,parentClipRect.width,parentClipRect.height);
		}
		if(clipRect.height < 0) {
			clipRect.height = 0;
		}
		if(clipRect.width < 0) {
			clipRect.width = 0;
		}
		this.currentClipRect = clipRect;
		this.numClipRects++;
	},
	popMask: function() {
		this.popRect();
	},
	popObject: function(object,handleScrollRect) {
		if(handleScrollRect == null) {
			handleScrollRect = true;
		}
		if(object.__mask != null) {
			this.popMask();
		}
		if(handleScrollRect && object.__scrollRect != null) {
			this.popRect();
		}
	},
	popRect: function() {
		if(this.numClipRects > 0) {
			this.numClipRects--;
			if(this.numClipRects > 0) {
				this.currentClipRect = this.clipRects[this.numClipRects - 1];
			} else {
				this.currentClipRect = null;
			}
		}
	},
	updateClip: function(displayObject) {
		if(this.currentClipRect == null) {
			displayObject.__worldClipChanged = displayObject.__worldClip != null;
			displayObject.__worldClip = null;
		} else {
			if(displayObject.__worldClip == null) {
				displayObject.__worldClip = new (openfl_geom_Rectangle().default)();
			}
			var clip = (openfl_geom_Rectangle().default).__pool.get();
			var matrix = (openfl_geom_Matrix().default).__pool.get();
			matrix.copyFrom(displayObject.__renderTransform);
			matrix.invert();
			this.currentClipRect.__transform(clip,matrix);
			if(clip.equals(displayObject.__worldClip)) {
				displayObject.__worldClipChanged = false;
			} else {
				displayObject.__worldClip.copyFrom(clip);
				displayObject.__worldClipChanged = true;
			}
			(openfl_geom_Rectangle().default).__pool.release(clip);
			(openfl_geom_Matrix().default).__pool.release(matrix);
		}
	}
});
DOMMaskManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMMaskManager"] = DOMMaskManager;
// Init
// Statics
// Export
exports.default = DOMMaskManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 314 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMBlendModeManager
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl__$internal_renderer_AbstractBlendModeManager() {return __webpack_require__(119);}
// Constructor
var DOMBlendModeManager = function(renderSession) {
	(openfl__$internal_renderer_AbstractBlendModeManager().default).call(this);
	this.renderSession = renderSession;
}
// Meta
DOMBlendModeManager.__name__ = ["openfl","_internal","renderer","dom","DOMBlendModeManager"];
DOMBlendModeManager.__super__ = (openfl__$internal_renderer_AbstractBlendModeManager().default);
DOMBlendModeManager.prototype = $extend((openfl__$internal_renderer_AbstractBlendModeManager().default).prototype, {
	setBlendMode: function(blendMode) {
		if(this.currentBlendMode == blendMode) {
			return;
		}
		this.currentBlendMode = blendMode;
		if(this.renderSession.context != null) {
			switch(blendMode) {
			case "add":
				this.renderSession.context.globalCompositeOperation = "lighter";
				break;
			case "alpha":
				this.renderSession.context.globalCompositeOperation = "destination-in";
				break;
			case "darken":
				this.renderSession.context.globalCompositeOperation = "darken";
				break;
			case "difference":
				this.renderSession.context.globalCompositeOperation = "difference";
				break;
			case "erase":
				this.renderSession.context.globalCompositeOperation = "destination-out";
				break;
			case "hardlight":
				this.renderSession.context.globalCompositeOperation = "hard-light";
				break;
			case "layer":
				this.renderSession.context.globalCompositeOperation = "source-over";
				break;
			case "lighten":
				this.renderSession.context.globalCompositeOperation = "lighten";
				break;
			case "multiply":
				this.renderSession.context.globalCompositeOperation = "multiply";
				break;
			case "overlay":
				this.renderSession.context.globalCompositeOperation = "overlay";
				break;
			case "screen":
				this.renderSession.context.globalCompositeOperation = "screen";
				break;
			default:
				this.renderSession.context.globalCompositeOperation = "source-over";
			}
		}
	}
});
DOMBlendModeManager.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMBlendModeManager"] = DOMBlendModeManager;
// Init
// Statics
// Export
exports.default = DOMBlendModeManager;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 315 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMShape
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_renderer_canvas_CanvasGraphics() {return __webpack_require__(58);}
function openfl__$internal_renderer_dom_DOMRenderer() {return __webpack_require__(52);}
// Constructor
var DOMShape = function(){}
// Meta
DOMShape.__name__ = ["openfl","_internal","renderer","dom","DOMShape"];
DOMShape.prototype = {
	
};
DOMShape.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMShape"] = DOMShape;
// Init
// Statics
DOMShape.clear = function(shape,renderSession) {
	if(shape.__canvas != null) {
		renderSession.element.removeChild(shape.__canvas);
		shape.__canvas = null;
		shape.__style = null;
	}
}
DOMShape.render = function(shape,renderSession) {
	var graphics = shape.__graphics;
	if(shape.stage != null && shape.__worldVisible && shape.__renderable && graphics != null) {
		(openfl__$internal_renderer_canvas_CanvasGraphics().default).render(graphics,renderSession,shape.__renderTransform);
		if(graphics.__dirty || shape.__worldAlphaChanged || shape.__canvas != graphics.__canvas) {
			if(graphics.__canvas != null) {
				if(shape.__canvas != graphics.__canvas) {
					if(shape.__canvas != null) {
						renderSession.element.removeChild(shape.__canvas);
					}
					shape.__canvas = graphics.__canvas;
					shape.__context = graphics.__context;
					(openfl__$internal_renderer_dom_DOMRenderer().default).initializeElement(shape,shape.__canvas,renderSession);
				}
			} else {
				DOMShape.clear(shape,renderSession);
			}
		}
		if(shape.__canvas != null) {
			renderSession.maskManager.pushObject(shape);
			var cacheTransform = shape.__renderTransform;
			shape.__renderTransform = graphics.__worldTransform;
			if(graphics.__transformDirty) {
				graphics.__transformDirty = false;
				shape.__renderTransformChanged = true;
			}
			(openfl__$internal_renderer_dom_DOMRenderer().default).updateClip(shape,renderSession);
			(openfl__$internal_renderer_dom_DOMRenderer().default).applyStyle(shape,renderSession,true,true,true);
			shape.__renderTransform = cacheTransform;
			renderSession.maskManager.popObject(shape);
		}
	} else {
		DOMShape.clear(shape,renderSession);
	}
}
// Export
exports.default = DOMShape;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 316 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLShape
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_renderer_canvas_CanvasGraphics() {return __webpack_require__(58);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl__$internal_renderer_opengl_GLMaskManager() {return __webpack_require__(59);}
// Constructor
var GLShape = function(){}
// Meta
GLShape.__name__ = ["openfl","_internal","renderer","opengl","GLShape"];
GLShape.prototype = {
	
};
GLShape.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLShape"] = GLShape;
// Init
// Statics
GLShape.render = function(shape,renderSession) {
	if(!shape.__renderable || shape.__worldAlpha <= 0) {
		return;
	}
	var graphics = shape.__graphics;
	if(graphics != null) {
		(openfl__$internal_renderer_canvas_CanvasGraphics().default).render(graphics,renderSession,shape.__renderTransform);
		var bounds = graphics.__bounds;
		if(graphics.__bitmap != null && graphics.__visible) {
			var renderer = renderSession.renderer;
			var gl = renderSession.gl;
			renderSession.blendModeManager.setBlendMode(shape.__worldBlendMode);
			renderSession.maskManager.pushObject(shape);
			var shader = renderSession.filterManager.pushObject(shape);
			renderSession.shaderManager.setShader(shader);
			shader.get_data().uImage0.input = graphics.__bitmap;
			shader.get_data().uImage0.smoothing = renderSession.allowSmoothing;
			shader.get_data().uMatrix.value = renderer.getMatrix(graphics.__worldTransform);
			var useColorTransform = !shape.__worldColorTransform.__isDefault();
			if(shader.get_data().uColorTransform.value == null) {
				shader.get_data().uColorTransform.value = [];
			}
			shader.get_data().uColorTransform.value[0] = useColorTransform;
			renderSession.shaderManager.updateShader(shader);
			gl.bindBuffer(gl.ARRAY_BUFFER,graphics.__bitmap.getBuffer(gl,shape.__worldAlpha,shape.__worldColorTransform));
			gl.vertexAttribPointer(shader.get_data().aPosition.index,3,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
			gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
			gl.vertexAttribPointer(shader.get_data().aAlpha.index,1,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(20));
			gl.vertexAttribPointer(shader.get_data().aColorMultipliers0.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(24));
			gl.vertexAttribPointer(shader.get_data().aColorMultipliers1.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(40));
			gl.vertexAttribPointer(shader.get_data().aColorMultipliers2.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(56));
			gl.vertexAttribPointer(shader.get_data().aColorMultipliers3.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(72));
			gl.vertexAttribPointer(shader.get_data().aColorOffsets.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(88));
			gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
			renderSession.filterManager.popObject(shape);
			renderSession.maskManager.popObject(shape);
		}
	}
}
GLShape.renderMask = function(shape,renderSession) {
	var graphics = shape.__graphics;
	if(graphics != null) {
		(openfl__$internal_renderer_canvas_CanvasGraphics().default).render(graphics,renderSession,shape.__renderTransform);
		var bounds = graphics.__bounds;
		if(graphics.__bitmap != null) {
			var renderer = renderSession.renderer;
			var gl = renderSession.gl;
			var shader = (openfl__$internal_renderer_opengl_GLMaskManager().default).maskShader;
			renderSession.shaderManager.setShader(shader);
			shader.get_data().uImage0.input = graphics.__bitmap;
			shader.get_data().uImage0.smoothing = renderSession.allowSmoothing;
			shader.get_data().uMatrix.value = renderer.getMatrix(graphics.__worldTransform);
			renderSession.shaderManager.updateShader(shader);
			gl.bindBuffer(gl.ARRAY_BUFFER,graphics.__bitmap.getBuffer(gl,shape.__worldAlpha,shape.__worldColorTransform));
			gl.vertexAttribPointer(shader.get_data().aPosition.index,3,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
			gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
			gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
		}
	}
}
// Export
exports.default = GLShape;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 317 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(44);
/***/ }),
/* 318 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true }),
module.exports.BitmapDataChannel = module.exports.default = {
	ALPHA: 8,
	BLUE: 4,
	GREEN: 2,
	RED: 1
};
/***/ }),
/* 319 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true }),
module.exports.BlendMode = module.exports.default = {
	ADD: "add",
	ALPHA: "alpha",
	DARKEN: "darken",
	DIFFERENCE: "difference",
	ERASE: "erase",
	HARDLIGHT: "hardlight",
	INVERT: "invert",
	LAYER: "layer",
	LIGHTEN: "lighten",
	MULTIPLY: "multiply",
	NORMAL: "normal",
	OVERLAY: "overlay",
	SCREEN: "screen",
	SHADER: "shader",
	SUBTRACT: "subtract"
};
/***/ }),
/* 320 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.CapsStyle = module.exports.default = {
	NONE: "none",
	ROUND: "round",
	SQUARE: "square"
};
/***/ }),
/* 321 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(36);
/***/ }),
/* 322 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(96);
/***/ }),
/* 323 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(324);
/***/ }),
/* 324 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.DOMSprite
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_Sprite() {return __webpack_require__(97);}
function openfl__$internal_renderer_dom_DOMRenderer() {return __webpack_require__(52);}
// Constructor
var DOMSprite = function(element) {
	(openfl_display_Sprite().default).call(this);
	this.__element = element;
}
// Meta
DOMSprite.__name__ = ["openfl","display","DOMSprite"];
DOMSprite.__super__ = (openfl_display_Sprite().default);
DOMSprite.prototype = $extend((openfl_display_Sprite().default).prototype, {
	__renderDOM: function(renderSession) {
		if(this.stage != null && this.__worldVisible && this.__renderable) {
			if(!this.__active) {
				(openfl__$internal_renderer_dom_DOMRenderer().default).initializeElement(this,this.__element,renderSession);
				this.__active = true;
			}
			(openfl__$internal_renderer_dom_DOMRenderer().default).updateClip(this,renderSession);
			(openfl__$internal_renderer_dom_DOMRenderer().default).applyStyle(this,renderSession,true,true,true);
		} else if(this.__active) {
			renderSession.element.removeChild(this.__element);
			this.__active = false;
		}
		(openfl_display_Sprite().default).prototype.__renderDOM.call(this,renderSession);
	}
});
DOMSprite.prototype.__class__ = $hxClasses["openfl.display.DOMSprite"] = DOMSprite;
// Init
// Statics
// Export
exports.default = DOMSprite;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 325 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(326);
/***/ }),
/* 326 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.FPS
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_text_TextField() {return __webpack_require__(130);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl_text_TextFormat() {return __webpack_require__(135);}
// Constructor
var FPS = function(x,y,color) {
	if(color == null) {
		color = 0;
	}
	if(y == null) {
		y = 10;
	}
	if(x == null) {
		x = 10;
	}
	(openfl_text_TextField().default).call(this);
	this.set_x(x);
	this.set_y(y);
	this.currentFPS = 0;
	this.set_selectable(false);
	this.mouseEnabled = false;
	this.set_defaultTextFormat(new (openfl_text_TextFormat().default)("_sans",12,color));
	this.set_text("FPS: ");
	this.cacheCount = 0;
	this.times = [];
	this.addEventListener("enterFrame",$bind(this,this.this_onEnterFrame));
}
// Meta
FPS.__name__ = ["openfl","display","FPS"];
FPS.__super__ = (openfl_text_TextField().default);
FPS.prototype = $extend((openfl_text_TextField().default).prototype, {
	this_onEnterFrame: function(event) {
		var currentTime = (haxe_Timer().default).stamp();
		this.times.push(currentTime);
		while(this.times[0] < currentTime - 1) this.times.shift();
		var currentCount = this.times.length;
		this.currentFPS = Math.round((currentCount + this.cacheCount) / 2);
		if(currentCount != this.cacheCount) {
			this.set_text("FPS: " + this.currentFPS);
		}
		this.cacheCount = currentCount;
	}
});
FPS.prototype.__class__ = $hxClasses["openfl.display.FPS"] = FPS;
// Init
// Statics
// Export
exports.default = FPS;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 327 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill.Unifill
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_text_unifill_InternalEncoding() {return __webpack_require__(98);}
function lime_text_unifill_InternalEncodingIter() {return __webpack_require__(329);}
function lime_text_unifill_CodePointIter() {return __webpack_require__(330);}
function lime_text_unifill__$Utf16_Utf16Impl() {return __webpack_require__(133);}
// Constructor
var Unifill = function(){}
// Meta
Unifill.__name__ = ["lime","text","unifill","Unifill"];
Unifill.prototype = {
	
};
Unifill.prototype.__class__ = $hxClasses["lime.text.unifill.Unifill"] = Unifill;
// Init
// Statics
Unifill.uLength = function(s) {
	return (lime_text_unifill_InternalEncoding().default).codePointCount(s,0,s.length);
}
Unifill.uCharAt = function(s,index) {
	var i = (lime_text_unifill_InternalEncoding().default).offsetByCodePoints(s,0,index);
	return (lime_text_unifill_InternalEncoding().default).charAt(s,i);
}
Unifill.uCharCodeAt = function(s,index) {
	var i = (lime_text_unifill_InternalEncoding().default).offsetByCodePoints(s,0,index);
	return (lime_text_unifill_InternalEncoding().default).codePointAt(s,i);
}
Unifill.uCodePointAt = function(s,index) {
	return Unifill.uCharCodeAt(s,index);
}
Unifill.uIndexOf = function(s,value,startIndex) {
	if(startIndex == null) {
		startIndex = 0;
	}
	var index = s.indexOf(value,(lime_text_unifill_InternalEncoding().default).offsetByCodePoints(s,0,startIndex));
	if(index >= 0) {
		return (lime_text_unifill_InternalEncoding().default).codePointCount(s,0,index);
	} else {
		return -1;
	}
}
Unifill.uLastIndexOf = function(s,value,startIndex) {
	if(startIndex == null) {
		startIndex = s.length - 1;
	}
	var index = s.lastIndexOf(value,(lime_text_unifill_InternalEncoding().default).offsetByCodePoints(s,0,startIndex));
	if(index >= 0) {
		return (lime_text_unifill_InternalEncoding().default).codePointCount(s,0,index);
	} else {
		return -1;
	}
}
Unifill.uSplit = function(s,delimiter) {
	if(delimiter.length == 0) {
		var _g = [];
		var i = new (lime_text_unifill_InternalEncodingIter().default)(s,0,s.length);
		while(i.hasNext()) {
			var i1 = i.next();
			_g.push((lime_text_unifill_InternalEncoding().default).charAt(s,i1));
		}
		return _g;
	} else {
		return s.split(delimiter);
	}
}
Unifill.uSubstr = function(s,startIndex,length) {
	var si = (lime_text_unifill_InternalEncoding().default).offsetByCodePoints(s,startIndex >= 0 ? 0 : s.length,startIndex);
	var ei = length == null ? s.length : length < 0 ? si : (lime_text_unifill_InternalEncoding().default).offsetByCodePoints(s,si,length);
	return s.substring(si,ei);
}
Unifill.uSubstring = function(s,startIndex,endIndex) {
	var si = startIndex < 0 ? 0 : (lime_text_unifill_InternalEncoding().default).offsetByCodePoints(s,0,startIndex);
	var ei = endIndex == null ? s.length : endIndex < 0 ? 0 : (lime_text_unifill_InternalEncoding().default).offsetByCodePoints(s,0,endIndex);
	return s.substring(si,ei);
}
Unifill.uIterator = function(s) {
	return new (lime_text_unifill_CodePointIter().default)(s);
}
Unifill.uCompare = function(a,b) {
	var aiter = new (lime_text_unifill_InternalEncodingIter().default)(a,0,a.length);
	var biter = new (lime_text_unifill_InternalEncodingIter().default)(b,0,b.length);
	while(aiter.hasNext() && biter.hasNext()) {
		var acode = (lime_text_unifill_InternalEncoding().default).codePointAt(a,aiter.next());
		var bcode = (lime_text_unifill_InternalEncoding().default).codePointAt(b,biter.next());
		if(acode < bcode) {
			return -1;
		}
		if(acode > bcode) {
			return 1;
		}
	}
	if(biter.hasNext()) {
		return -1;
	}
	if(aiter.hasNext()) {
		return 1;
	}
	return 0;
}
Unifill.uToString = function(codePoints) {
	return (lime_text_unifill_InternalEncoding().default).fromCodePoints(codePoints);
}
Unifill.uAddChar = function(sb,c) {
	(lime_text_unifill__$Utf16_Utf16Impl().default).encode_code_point(function(c1) {
		sb.addChar(c1);
	},c);
}
// Export
exports.default = Unifill;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 328 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill._Utf16.Utf16_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $iterator = __webpack_require__(132).default;
function lime_text_unifill_Unicode() {return __webpack_require__(99);}
function StringBuf() {return __webpack_require__(31);}
function lime_text_unifill__$Utf16_Utf16Impl() {return __webpack_require__(133);}
function StringTools() {return __webpack_require__(12);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var Utf16_Impl_ = function(){}
// Meta
Utf16_Impl_.__name__ = ["lime","text","unifill","_Utf16","Utf16_Impl_"];
Utf16_Impl_.prototype = {
	
};
Utf16_Impl_.prototype.__class__ = $hxClasses["lime.text.unifill._Utf16.Utf16_Impl_"] = Utf16_Impl_;
// Init
// Statics
Utf16_Impl_.fromCodePoint = function(codePoint) {
	if(codePoint <= 65535) {
		var this1 = String.fromCharCode(codePoint);
		var this2 = this1;
		return this2;
	} else {
		var u0 = (lime_text_unifill_Unicode().default).encodeHighSurrogate(codePoint);
		var u1 = (lime_text_unifill_Unicode().default).encodeLowSurrogate(codePoint);
		var this3 = String.fromCharCode(u0) + String.fromCharCode(u1);
		var this4 = this3;
		return this4;
	}
}
Utf16_Impl_.fromCodePoints = function(codePoints) {
	var this1 = new (StringBuf().default)();
	var buf = this1;
	var c = $iterator(codePoints)();
	while(c.hasNext()) {
		var c1 = c.next();
		(lime_text_unifill__$Utf16_Utf16Impl().default).encode_code_point(function(x) {
			buf.addChar(x);
		},c1);
	}
	var this2 = buf.toString();
	var this3 = this2;
	return this3;
}
Utf16_Impl_.fromString = function(s) {
	var this1 = s;
	var this2 = this1;
	return this2;
}
Utf16_Impl_.fromArray = function(a) {
	var buf = new (StringBuf().default)();
	var _g = 0;
	while(_g < a.length) {
		var x = a[_g];
		++_g;
		buf.addChar(x);
	}
	var this1 = buf.toString();
	var this2 = this1;
	return this2;
}
Utf16_Impl_.encodeWith = function(f,c) {
	(lime_text_unifill__$Utf16_Utf16Impl().default).encode_code_point(f,c);
}
Utf16_Impl_.codeUnitAt = function(this1,index) {
	return (StringTools().default).fastCodeAt(this1,index);
}
Utf16_Impl_.codePointAt = function(this1,index) {
	return (lime_text_unifill__$Utf16_Utf16Impl().default).decode_code_point(this1.length,function(i) {
		return (StringTools().default).fastCodeAt(this1,i);
	},index);
}
Utf16_Impl_.charAt = function(this1,index) {
	var c = (StringTools().default).fastCodeAt(this1,index);
	var this2 = (HxOverrides().default).substr(this1,index,(lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c));
	var this3 = this2;
	return this3;
}
Utf16_Impl_.codePointCount = function(this1,beginIndex,endIndex) {
	var index = beginIndex;
	var i = 0;
	while(index < endIndex) {
		var c = (StringTools().default).fastCodeAt(this1,index);
		index += (lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c);
		++i;
	}
	return i;
}
Utf16_Impl_.codePointWidthAt = function(this1,index) {
	var c = (StringTools().default).fastCodeAt(this1,index);
	return (lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c);
}
Utf16_Impl_.codePointWidthBefore = function(this1,index) {
	return (lime_text_unifill__$Utf16_Utf16Impl().default).find_prev_code_point(function(i) {
		return (StringTools().default).fastCodeAt(this1,i);
	},index);
}
Utf16_Impl_.offsetByCodePoints = function(this1,index,codePointOffset) {
	if(codePointOffset >= 0) {
		var index1 = index;
		var len = this1.length;
		var i = 0;
		while(i < codePointOffset && index1 < len) {
			var c = (StringTools().default).fastCodeAt(this1,index1);
			index1 += (lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c);
			++i;
		}
		return index1;
	} else {
		var index2 = index;
		var count = 0;
		while(count < -codePointOffset && 0 < index2) {
			index2 -= (lime_text_unifill__$Utf16_Utf16Impl().default).find_prev_code_point((function(this2) {
				return function(i1) {
					return (StringTools().default).fastCodeAt(this2[0],i1);
				};
			})([this1]),index2);
			++count;
		}
		return index2;
	}
}
Utf16_Impl_.substr = function(this1,index,len) {
	var this2 = (HxOverrides().default).substr(this1,index,len);
	var this3 = this2;
	return this3;
}
Utf16_Impl_.validate = function(this1) {
	var len = this1.length;
	var accessor = function(i) {
		return (StringTools().default).fastCodeAt(this1,i);
	};
	var i1 = 0;
	while(i1 < len) {
		(lime_text_unifill__$Utf16_Utf16Impl().default).decode_code_point(len,accessor,i1);
		var c = (StringTools().default).fastCodeAt(this1,i1);
		i1 += (lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c);
	}
}
Utf16_Impl_.toString = function(this1) {
	return this1;
}
Utf16_Impl_.toArray = function(this1) {
	var i = 0;
	var len = this1.length;
	var _g = [];
	while(i < len) _g.push((StringTools().default).fastCodeAt(this1,i++));
	return _g;
}
Utf16_Impl_._new = function(s) {
	var this1 = s;
	return this1;
}
Utf16_Impl_.get_length = function(this1) {
	return this1.length;
}
Utf16_Impl_.forward_offset_by_code_points = function(this1,index,codePointOffset) {
	var len = this1.length;
	var i = 0;
	while(i < codePointOffset && index < len) {
		var c = (StringTools().default).fastCodeAt(this1,index);
		index += (lime_text_unifill__$Utf16_Utf16Impl().default).code_point_width(c);
		++i;
	}
	return index;
}
Utf16_Impl_.backward_offset_by_code_points = function(this1,index,codePointOffset) {
	var count = 0;
	while(count < codePointOffset && 0 < index) {
		index -= (lime_text_unifill__$Utf16_Utf16Impl().default).find_prev_code_point((function(this2) {
			return function(i) {
				return (StringTools().default).fastCodeAt(this2[0],i);
			};
		})([this1]),index);
		++count;
	}
	return index;
}
// Export
exports.default = Utf16_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 329 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill.InternalEncodingIter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_text_unifill_InternalEncoding() {return __webpack_require__(98);}
// Constructor
var InternalEncodingIter = function(s,beginIndex,endIndex) {
	this.i = 0;
	this.string = s;
	this.index = beginIndex;
	this.endIndex = endIndex;
}
// Meta
InternalEncodingIter.__name__ = ["lime","text","unifill","InternalEncodingIter"];
InternalEncodingIter.prototype = {
	hasNext: function() {
		return this.index < this.endIndex;
	},
	next: function() {
		this.i = this.index;
		this.index += (lime_text_unifill_InternalEncoding().default).codePointWidthAt(this.string,this.index);
		return this.i;
	}
};
InternalEncodingIter.prototype.__class__ = $hxClasses["lime.text.unifill.InternalEncodingIter"] = InternalEncodingIter;
// Init
// Statics
// Export
exports.default = InternalEncodingIter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 330 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill.CodePointIter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_text_unifill_InternalEncoding() {return __webpack_require__(98);}
// Constructor
var CodePointIter = function(s) {
	this.i = 0;
	this.string = s;
	this.index = 0;
	this.endIndex = s.length;
}
// Meta
CodePointIter.__name__ = ["lime","text","unifill","CodePointIter"];
CodePointIter.prototype = {
	hasNext: function() {
		return this.index < this.endIndex;
	},
	next: function() {
		this.i = this.index;
		this.index += (lime_text_unifill_InternalEncoding().default).codePointWidthAt(this.string,this.index);
		return (lime_text_unifill_InternalEncoding().default).codePointAt(this.string,this.i);
	}
};
CodePointIter.prototype.__class__ = $hxClasses["lime.text.unifill.CodePointIter"] = CodePointIter;
// Init
// Statics
// Export
exports.default = CodePointIter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 331 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.text.unifill.InvalidCodePoint
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_text_unifill_Exception() {return __webpack_require__(184);}
// Constructor
var InvalidCodePoint = function(code) {
	(lime_text_unifill_Exception().default).call(this);
	this.code = code;
}
// Meta
InvalidCodePoint.__name__ = ["lime","text","unifill","InvalidCodePoint"];
InvalidCodePoint.__super__ = (lime_text_unifill_Exception().default);
InvalidCodePoint.prototype = $extend((lime_text_unifill_Exception().default).prototype, {
	toString: function() {
		return "InvalidCodePoint(code: " + this.code + ")";
	}
});
InvalidCodePoint.prototype.__class__ = $hxClasses["lime.text.unifill.InvalidCodePoint"] = InvalidCodePoint;
// Init
// Statics
// Export
exports.default = InvalidCodePoint;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 332 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe.Utf8
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var Utf8 = function(){}
// Meta
Utf8.__name__ = ["haxe","Utf8"];
Utf8.prototype = {
	
};
Utf8.prototype.__class__ = $hxClasses["haxe.Utf8"] = Utf8;
// Init
// Statics
Utf8.sub = function(s,pos,len) {
	return (HxOverrides().default).substr(s,pos,len);
}
// Export
exports.default = Utf8;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 333 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: openfl._internal.timeline.FrameObjectType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var FrameObjectType = $hxClasses["openfl._internal.timeline.FrameObjectType"] = { __ename__: ["openfl","_internal","timeline","FrameObjectType"], __constructs__: ["CREATE","UPDATE","DESTROY"] }
FrameObjectType.DESTROY = ["DESTROY",2];
FrameObjectType.DESTROY.toString = $estr;
FrameObjectType.DESTROY.__enum__ = FrameObjectType;
FrameObjectType.CREATE = ["CREATE",0];
FrameObjectType.CREATE.toString = $estr;
FrameObjectType.CREATE.__enum__ = FrameObjectType;
FrameObjectType.UPDATE = ["UPDATE",1];
FrameObjectType.UPDATE.toString = $estr;
FrameObjectType.UPDATE.__enum__ = FrameObjectType;
exports.default = FrameObjectType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 334 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display._MovieClip.FrameSymbolInstance
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var FrameSymbolInstance = function(initFrame,initFrameObjectID,characterID,depth,displayObject,clipDepth) {
	this.initFrame = initFrame;
	this.initFrameObjectID = initFrameObjectID;
	this.characterID = characterID;
	this.depth = depth;
	this.displayObject = displayObject;
	this.clipDepth = clipDepth;
}
// Meta
FrameSymbolInstance.__name__ = ["openfl","display","_MovieClip","FrameSymbolInstance"];
FrameSymbolInstance.prototype = {
	
};
FrameSymbolInstance.prototype.__class__ = $hxClasses["openfl.display._MovieClip.FrameSymbolInstance"] = FrameSymbolInstance;
// Init
// Statics
// Export
exports.default = FrameSymbolInstance;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 335 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.net._HTTPRequest_openfl_utils_ByteArray
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_net__$HTTPRequest_$Bytes() {return __webpack_require__(125);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
// Constructor
var _HTTPRequest_openfl_utils_ByteArray = function(uri) {
	(lime_net__$HTTPRequest_$Bytes().default).call(this,uri);
}
// Meta
_HTTPRequest_openfl_utils_ByteArray.__name__ = ["lime","net","_HTTPRequest_openfl_utils_ByteArray"];
_HTTPRequest_openfl_utils_ByteArray.__super__ = (lime_net__$HTTPRequest_$Bytes().default);
_HTTPRequest_openfl_utils_ByteArray.prototype = $extend((lime_net__$HTTPRequest_$Bytes().default).prototype, {
	fromBytes: function(bytes) {
		return (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(bytes);
	}
});
_HTTPRequest_openfl_utils_ByteArray.prototype.__class__ = $hxClasses["lime.net._HTTPRequest_openfl_utils_ByteArray"] = _HTTPRequest_openfl_utils_ByteArray;
// Init
// Statics
// Export
exports.default = _HTTPRequest_openfl_utils_ByteArray;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 336 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.net._HTTPRequest_lime_text_Font
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_net__$HTTPRequest_$Bytes() {return __webpack_require__(125);}
function lime_text_Font() {return __webpack_require__(136);}
// Constructor
var _HTTPRequest_lime_text_Font = function(uri) {
	(lime_net__$HTTPRequest_$Bytes().default).call(this,uri);
}
// Meta
_HTTPRequest_lime_text_Font.__name__ = ["lime","net","_HTTPRequest_lime_text_Font"];
_HTTPRequest_lime_text_Font.__super__ = (lime_net__$HTTPRequest_$Bytes().default);
_HTTPRequest_lime_text_Font.prototype = $extend((lime_net__$HTTPRequest_$Bytes().default).prototype, {
	fromBytes: function(bytes) {
		return (lime_text_Font().default).fromBytes(bytes);
	}
});
_HTTPRequest_lime_text_Font.prototype.__class__ = $hxClasses["lime.net._HTTPRequest_lime_text_Font"] = _HTTPRequest_lime_text_Font;
// Init
// Statics
// Export
exports.default = _HTTPRequest_lime_text_Font;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 337 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils.AssetCache
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
function lime_graphics_Image() {return __webpack_require__(56);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function lime_media_AudioBuffer() {return __webpack_require__(88);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function StringTools() {return __webpack_require__(12);}
// Constructor
var AssetCache = function() {
	this.enabled = true;
	this.audio = new (haxe_ds_StringMap().default)();
	this.font = new (haxe_ds_StringMap().default)();
	this.image = new (haxe_ds_StringMap().default)();
	this.version = 0;
}
// Meta
AssetCache.__name__ = ["lime","utils","AssetCache"];
AssetCache.prototype = {
	exists: function(id,type) {
		if(type == "IMAGE" || type == null) {
			if(this.image.exists(id)) {
				return true;
			}
		}
		if(type == "FONT" || type == null) {
			if(this.font.exists(id)) {
				return true;
			}
		}
		if(type == "SOUND" || type == "MUSIC" || type == null) {
			if(this.audio.exists(id)) {
				return true;
			}
		}
		return false;
	},
	set: function(id,type,asset) {
		switch(type) {
		case "FONT":
			this.font.set(id,asset);
			break;
		case "IMAGE":
			if(!(Std().default)["is"](asset,(lime_graphics_Image().default))) {
				throw new (js__$Boot_HaxeError().default)("Cannot cache non-Image asset: " + (Std().default).string(asset) + " as Image");
			}
			this.image.set(id,asset);
			break;
		case "MUSIC":case "SOUND":
			if(!(Std().default)["is"](asset,(lime_media_AudioBuffer().default))) {
				throw new (js__$Boot_HaxeError().default)("Cannot cache non-AudioBuffer asset: " + (Std().default).string(asset) + " as AudioBuffer");
			}
			this.audio.set(id,asset);
			break;
		default:
			throw new (js__$Boot_HaxeError().default)(type + " assets are not cachable");
		}
	},
	clear: function(prefix) {
		if(prefix == null) {
			this.audio = new (haxe_ds_StringMap().default)();
			this.font = new (haxe_ds_StringMap().default)();
			this.image = new (haxe_ds_StringMap().default)();
		} else {
			var keys = this.audio.keys();
			var key = keys;
			while(key.hasNext()) {
				var key1 = key.next();
				if((StringTools().default).startsWith(key1,prefix)) {
					this.audio.remove(key1);
				}
			}
			var keys1 = this.font.keys();
			var key2 = keys1;
			while(key2.hasNext()) {
				var key3 = key2.next();
				if((StringTools().default).startsWith(key3,prefix)) {
					this.font.remove(key3);
				}
			}
			var keys2 = this.image.keys();
			var key4 = keys2;
			while(key4.hasNext()) {
				var key5 = key4.next();
				if((StringTools().default).startsWith(key5,prefix)) {
					this.image.remove(key5);
				}
			}
		}
	}
};
AssetCache.prototype.__class__ = $hxClasses["lime.utils.AssetCache"] = AssetCache;
// Init
// Statics
// Export
exports.default = AssetCache;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 338 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.utils._Assets.LibrarySymbol
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils_Assets() {return __webpack_require__(61);}
// Constructor
var LibrarySymbol = function(id) {
	var colonIndex = id.indexOf(":");
	this.libraryName = id.substring(0,colonIndex);
	this.symbolName = id.substring(colonIndex + 1);
	this.library = (lime_utils_Assets().default).getLibrary(this.libraryName);
}
// Meta
LibrarySymbol.__name__ = ["lime","utils","_Assets","LibrarySymbol"];
LibrarySymbol.prototype = {
	isLocal: function(type) {
		return this.library.isLocal(this.symbolName,type);
	},
	exists: function(type) {
		return this.library.exists(this.symbolName,type);
	}
};
LibrarySymbol.prototype.__class__ = $hxClasses["lime.utils._Assets.LibrarySymbol"] = LibrarySymbol;
// Init
// Statics
// Export
exports.default = LibrarySymbol;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 339 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe._Unserializer.NullResolver
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var NullResolver = function() {
}
// Meta
NullResolver.__name__ = ["haxe","_Unserializer","NullResolver"];
NullResolver.prototype = {
	resolveClass: function(name) {
		return null;
	},
	resolveEnum: function(name) {
		return null;
	}
};
NullResolver.prototype.__class__ = $hxClasses["haxe._Unserializer.NullResolver"] = NullResolver;
// Init
// Statics
NullResolver.get_instance = function() {
	if(NullResolver.instance == null) {
		NullResolver.instance = new NullResolver();
	}
	return NullResolver.instance;
}
// Export
exports.default = NullResolver;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 340 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: haxe._Unserializer.DefaultResolver
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Type() {return __webpack_require__(10);}
// Constructor
var DefaultResolver = function() {
}
// Meta
DefaultResolver.__name__ = ["haxe","_Unserializer","DefaultResolver"];
DefaultResolver.prototype = {
	resolveClass: function(name) {
		return (Type().default).resolveClass(name);
	},
	resolveEnum: function(name) {
		return (Type().default).resolveEnum(name);
	}
};
DefaultResolver.prototype.__class__ = $hxClasses["haxe._Unserializer.DefaultResolver"] = DefaultResolver;
// Init
// Statics
// Export
exports.default = DefaultResolver;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 341 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.text.HTMLParser
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function EReg() {return __webpack_require__(27);}
function HxOverrides() {return __webpack_require__(7);}
function openfl__$internal_text_TextFormatRange() {return __webpack_require__(186);}
function Std() {return __webpack_require__(4);}
// Constructor
var HTMLParser = function(){}
// Meta
HTMLParser.__name__ = ["openfl","_internal","text","HTMLParser"];
HTMLParser.prototype = {
	
};
HTMLParser.prototype.__class__ = $hxClasses["openfl._internal.text.HTMLParser"] = HTMLParser;
// Init
// Statics
HTMLParser.parse = function(value,textFormat,textFormatRanges) {
	value = HTMLParser.__regexBreakTag.replace(value,"\n");
	value = HTMLParser.__regexEntities[0].replace(value,"\"");
	value = HTMLParser.__regexEntities[1].replace(value,"'");
	value = HTMLParser.__regexEntities[2].replace(value,"&");
	value = HTMLParser.__regexEntities[5].replace(value," ");
	var segments = value.split("<");
	if(segments.length == 1) {
		value = HTMLParser.__regexHTMLTag.replace(value,"");
		if(textFormatRanges.get_length() > 1) {
			textFormatRanges.splice(1,textFormatRanges.get_length() - 1);
		}
		value = HTMLParser.__regexEntities[3].replace(value,"<");
		value = HTMLParser.__regexEntities[4].replace(value,">");
		var range = textFormatRanges.get(0);
		range.format = textFormat;
		range.start = 0;
		range.end = value.length;
		return value;
	} else {
		textFormatRanges.splice(0,textFormatRanges.get_length());
		value = "";
		var segment;
		var _g1 = 0;
		var _g = segments.length;
		while(_g1 < _g) {
			var i = _g1++;
			segment = segments[i];
			segment = HTMLParser.__regexEntities[3].replace(segment,"<");
			segment = HTMLParser.__regexEntities[4].replace(segment,">");
			segments[i] = segment;
		}
		var formatStack = [textFormat.clone()];
		var sub;
		var noLineBreak = false;
		var _g2 = 0;
		while(_g2 < segments.length) {
			var segment1 = segments[_g2];
			++_g2;
			if(segment1 == "") {
				continue;
			}
			var isClosingTag = (HxOverrides().default).substr(segment1,0,1) == "/";
			var tagEndIndex = segment1.indexOf(">");
			var start = tagEndIndex + 1;
			var spaceIndex = segment1.indexOf(" ");
			var tagName = segment1.substring(isClosingTag ? 1 : 0,spaceIndex > -1 && spaceIndex < tagEndIndex ? spaceIndex : tagEndIndex);
			var format;
			if(isClosingTag) {
				formatStack.pop();
				format = formatStack[formatStack.length - 1].clone();
				if(tagName.toLowerCase() == "p" && textFormatRanges.get_length() > 0) {
					value += "\n";
					noLineBreak = true;
				}
				if(start < segment1.length) {
					sub = (HxOverrides().default).substr(segment1,start,null);
					textFormatRanges.push(new (openfl__$internal_text_TextFormatRange().default)(format,value.length,value.length + sub.length));
					value += sub;
					noLineBreak = false;
				}
			} else {
				format = formatStack[formatStack.length - 1].clone();
				if(tagEndIndex > -1) {
					var _g11 = tagName.toLowerCase();
					switch(_g11) {
					case "a":
						if(HTMLParser.__regexHref.match(segment1)) {
							format.url = HTMLParser.__getAttributeMatch(HTMLParser.__regexHref);
						}
						break;
					case "b":
						format.bold = true;
						break;
					case "em":case "i":
						format.italic = true;
						break;
					case "font":
						if(HTMLParser.__regexFace.match(segment1)) {
							format.font = HTMLParser.__getAttributeMatch(HTMLParser.__regexFace);
						}
						if(HTMLParser.__regexColor.match(segment1)) {
							format.color = (Std().default).parseInt("0x" + HTMLParser.__getAttributeMatch(HTMLParser.__regexColor));
						}
						if(HTMLParser.__regexSize.match(segment1)) {
							var sizeAttr = HTMLParser.__getAttributeMatch(HTMLParser.__regexSize);
							var firstChar = (HxOverrides().default).cca(sizeAttr,0);
							if(firstChar == 43 || firstChar == 45) {
								var parentFormat = formatStack.length >= 2 ? formatStack[formatStack.length - 2] : textFormat;
								format.size = parentFormat.size + (Std().default).parseInt(sizeAttr);
							} else {
								format.size = (Std().default).parseInt(sizeAttr);
							}
						}
						break;
					case "p":
						if(textFormatRanges.get_length() > 0 && !noLineBreak) {
							value += "\n";
						}
						if(HTMLParser.__regexAlign.match(segment1)) {
							format.align = HTMLParser.__getAttributeMatch(HTMLParser.__regexAlign).toLowerCase();
						}
						break;
					case "textformat":
						if(HTMLParser.__regexBlockIndent.match(segment1)) {
							format.blockIndent = (Std().default).parseInt(HTMLParser.__getAttributeMatch(HTMLParser.__regexBlockIndent));
						}
						if(HTMLParser.__regexIndent.match(segment1)) {
							format.indent = (Std().default).parseInt(HTMLParser.__getAttributeMatch(HTMLParser.__regexIndent));
						}
						if(HTMLParser.__regexLeading.match(segment1)) {
							format.leading = (Std().default).parseInt(HTMLParser.__getAttributeMatch(HTMLParser.__regexLeading));
						}
						if(HTMLParser.__regexLeftMargin.match(segment1)) {
							format.leftMargin = (Std().default).parseInt(HTMLParser.__getAttributeMatch(HTMLParser.__regexLeftMargin));
						}
						if(HTMLParser.__regexRightMargin.match(segment1)) {
							format.rightMargin = (Std().default).parseInt(HTMLParser.__getAttributeMatch(HTMLParser.__regexRightMargin));
						}
						if(HTMLParser.__regexTabStops.match(segment1)) {
							var values = HTMLParser.__getAttributeMatch(HTMLParser.__regexTabStops).split(" ");
							var tabStops = [];
							var _g12 = 0;
							while(_g12 < values.length) {
								var stop = values[_g12];
								++_g12;
								tabStops.push((Std().default).parseInt(stop));
							}
							format.tabStops = tabStops;
						}
						break;
					case "u":
						format.underline = true;
						break;
					}
					formatStack.push(format);
					if(start < segment1.length) {
						sub = segment1.substring(start);
						textFormatRanges.push(new (openfl__$internal_text_TextFormatRange().default)(format,value.length,value.length + sub.length));
						value += sub;
						noLineBreak = false;
					}
				} else {
					textFormatRanges.push(new (openfl__$internal_text_TextFormatRange().default)(format,value.length,value.length + segment1.length));
					value += segment1;
					noLineBreak = false;
				}
			}
		}
		if(textFormatRanges.get_length() == 0) {
			textFormatRanges.push(new (openfl__$internal_text_TextFormatRange().default)(formatStack[0],0,0));
		}
	}
	return value;
}
HTMLParser.__getAttributeMatch = function(regex) {
	if(regex.matched(2) != null) {
		return regex.matched(2);
	} else {
		return regex.matched(3);
	}
}
HTMLParser.__regexAlign = new (EReg().default)("align=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexBreakTag = new (EReg().default)("
","gi")
HTMLParser.__regexBlockIndent = new (EReg().default)("blockindent=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexColor = new (EReg().default)("color=(\"#([^\"]+)\"|'#([^']+)')","i")
HTMLParser.__regexEntities = [new (EReg().default)(""","g"),new (EReg().default)("'","g"),new (EReg().default)("&","g"),new (EReg().default)("<","g"),new (EReg().default)(">","g"),new (EReg().default)(" ","g")]
HTMLParser.__regexFace = new (EReg().default)("face=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexHTMLTag = new (EReg().default)("<.*?>","g")
HTMLParser.__regexHref = new (EReg().default)("href=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexIndent = new (EReg().default)(" indent=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexLeading = new (EReg().default)("leading=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexLeftMargin = new (EReg().default)("leftmargin=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexRightMargin = new (EReg().default)("rightmargin=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexSize = new (EReg().default)("size=(\"([^\"]+)\"|'([^']+)')","i")
HTMLParser.__regexTabStops = new (EReg().default)("tabstops=(\"([^\"]+)\"|'([^']+)')","i")
// Export
exports.default = HTMLParser;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 342 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasTextField
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function lime_text__$UTF8String_UTF8String_$Impl_$() {return __webpack_require__(131);}
function js_Browser() {return __webpack_require__(11);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function openfl__$internal_renderer_canvas_CanvasRenderer() {return __webpack_require__(68);}
function Std() {return __webpack_require__(4);}
function StringTools() {return __webpack_require__(12);}
function EReg() {return __webpack_require__(27);}
function openfl__$internal_text_TextEngine() {return __webpack_require__(138);}
function openfl_filters_GlowFilter() {return __webpack_require__(100);}
function openfl_display_BitmapData() {return __webpack_require__(44);}
// Constructor
var CanvasTextField = function(){}
// Meta
CanvasTextField.__name__ = ["openfl","_internal","renderer","canvas","CanvasTextField"];
CanvasTextField.prototype = {
	
};
CanvasTextField.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasTextField"] = CanvasTextField;
// Init
// Statics
CanvasTextField.render = function(textField,renderSession,transform) {
	var textEngine = textField.__textEngine;
	var bounds = textEngine.bounds;
	var graphics = textField.__graphics;
	if(textField.__dirty) {
		textField.__updateLayout();
		if(graphics.__bounds == null) {
			graphics.__bounds = new (openfl_geom_Rectangle().default)();
		}
		graphics.__bounds.copyFrom(bounds);
	}
	graphics.__update();
	if(textField.__dirty || graphics.__dirty) {
		var width = graphics.__width;
		var height = graphics.__height;
		if((textEngine.text == null || (lime_text__$UTF8String_UTF8String_$Impl_$().default).equals(textEngine.text,"")) && !textEngine.background && !textEngine.border && !textEngine.__hasFocus && (textEngine.type != "input" || !textEngine.selectable) || (textEngine.width <= 0 || textEngine.height <= 0) && textEngine.autoSize != "none") {
			textField.__graphics.__canvas = null;
			textField.__graphics.__context = null;
			textField.__graphics.__bitmap = null;
			textField.__graphics.set___dirty(false);
			textField.__dirty = false;
		} else {
			if(textField.__graphics.__canvas == null) {
				textField.__graphics.__canvas = (js_Browser().default).get_document().createElement("canvas");
				textField.__graphics.__context = textField.__graphics.__canvas.getContext("2d");
			}
			CanvasTextField.context = graphics.__context;
			var transform1 = graphics.__renderTransform;
			if(renderSession.renderType == (lime_graphics_RendererType().default).DOM) {
				var scale = (openfl__$internal_renderer_canvas_CanvasRenderer().default).scale;
				graphics.__canvas.width = (Std().default)["int"](width * scale);
				graphics.__canvas.height = (Std().default)["int"](height * scale);
				graphics.__canvas.style.width = width + "px";
				graphics.__canvas.style.height = height + "px";
				CanvasTextField.context.setTransform(transform1.a * scale,transform1.b * scale,transform1.c * scale,transform1.d * scale,transform1.tx * scale,transform1.ty * scale);
			} else {
				graphics.__canvas.width = width;
				graphics.__canvas.height = height;
				CanvasTextField.context.setTransform(transform1.a,transform1.b,transform1.c,transform1.d,transform1.tx,transform1.ty);
			}
			if(CanvasTextField.clearRect == null) {
				CanvasTextField.clearRect = (typeof navigator !== 'undefined' && typeof navigator['isCocoonJS'] !== 'undefined');
			}
			if(CanvasTextField.clearRect) {
				CanvasTextField.context.clearRect(0,0,graphics.__canvas.width,graphics.__canvas.height);
			}
			if(textEngine.text != null && textEngine.text != "" || textEngine.__hasFocus) {
				var text = textEngine.text;
				if(!renderSession.allowSmoothing || textEngine.antiAliasType == "advanced" && textEngine.sharpness == 400) {
					graphics.__context.mozImageSmoothingEnabled = false;
					graphics.__context.msImageSmoothingEnabled = false;
					graphics.__context.imageSmoothingEnabled = false;
				} else {
					graphics.__context.mozImageSmoothingEnabled = true;
					graphics.__context.msImageSmoothingEnabled = true;
					graphics.__context.imageSmoothingEnabled = true;
				}
				if(textEngine.border || textEngine.background) {
					CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
					if(textEngine.background) {
						var tmp = (StringTools().default).hex(textEngine.backgroundColor & 16777215,6);
						CanvasTextField.context.fillStyle = "#" + tmp;
						CanvasTextField.context.fill();
					}
					if(textEngine.border) {
						CanvasTextField.context.lineWidth = 1;
						var tmp1 = (StringTools().default).hex(textEngine.borderColor & 16777215,6);
						CanvasTextField.context.strokeStyle = "#" + tmp1;
						CanvasTextField.context.stroke();
					}
				}
				CanvasTextField.context.textBaseline = "top";
				CanvasTextField.context.textAlign = "start";
				var scrollX = -textField.get_scrollH();
				var scrollY = 0.0;
				var _g1 = 0;
				var _g = textField.get_scrollV() - 1;
				while(_g1 < _g) {
					var i = _g1++;
					scrollY -= textEngine.lineHeights.get(i);
				}
				var advance;
				var offsetY = 0.0;
				var applyHack = new (EReg().default)("(iPad|iPhone|iPod|Firefox)","g").match((js_Browser().default).get_window().navigator.userAgent);
				var _g2 = 0;
				var _g11 = textEngine.layoutGroups;
				while(_g2 < _g11.get_length()) {
					var group = _g11.get(_g2);
					++_g2;
					if(group.lineIndex < textField.get_scrollV() - 1) {
						continue;
					}
					if(group.lineIndex > textField.get_scrollV() + textEngine.bottomScrollV - 2) {
						break;
					}
					if(group.format.underline) {
						CanvasTextField.context.beginPath();
						CanvasTextField.context.strokeStyle = "#000000";
						CanvasTextField.context.lineWidth = .5;
						var x = group.offsetX + scrollX;
						var y = group.offsetY + offsetY + scrollY + group.ascent;
						CanvasTextField.context.moveTo(x,y);
						CanvasTextField.context.lineTo(x + group.width,y);
						CanvasTextField.context.stroke();
					}
					CanvasTextField.context.font = (openfl__$internal_text_TextEngine().default).getFont(group.format);
					var tmp2 = (StringTools().default).hex(group.format.color & 16777215,6);
					CanvasTextField.context.fillStyle = "#" + tmp2;
					if(applyHack) {
						offsetY = group.format.size * 0.185;
					}
					if(textField.__filters != null && textField.__filters.length > 0) {
						if((Std().default)["is"](textField.__filters[0],(openfl_filters_GlowFilter().default))) {
							var glowFilter = textField.__filters[0];
							var cacheAlpha = CanvasTextField.context.globalAlpha;
							var tmp3 = glowFilter.get_alpha();
							CanvasTextField.context.globalAlpha = cacheAlpha * tmp3;
							var tmp4 = (StringTools().default).hex(glowFilter.get_color() & 16777215,6);
							CanvasTextField.context.strokeStyle = "#" + tmp4;
							var tmp5 = glowFilter.get_blurX();
							var tmp6 = glowFilter.get_blurY();
							CanvasTextField.context.lineWidth = Math.max(tmp5,tmp6);
							CanvasTextField.context.strokeText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text,group.startIndex,group.endIndex),group.offsetX + scrollX,group.offsetY + offsetY + scrollY);
							CanvasTextField.context.strokeStyle = null;
							CanvasTextField.context.globalAlpha = cacheAlpha;
						}
					}
					CanvasTextField.context.fillText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text,group.startIndex,group.endIndex),group.offsetX + scrollX,group.offsetY + offsetY + scrollY);
					if(textField.__caretIndex > -1 && textEngine.selectable) {
						if(textField.__selectionIndex == textField.__caretIndex) {
							if(textField.__showCursor && group.startIndex <= textField.__caretIndex && group.endIndex >= textField.__caretIndex) {
								advance = 0.0;
								var _g3 = 0;
								var _g21 = textField.__caretIndex - group.startIndex;
								while(_g3 < _g21) {
									var i1 = _g3++;
									if(group.positions.length <= i1) {
										break;
									}
									advance += group.getAdvance(i1);
								}
								var scrollY1 = 0.0;
								var _g31 = textField.get_scrollV();
								var _g22 = group.lineIndex + 1;
								while(_g31 < _g22) {
									var i2 = _g31++;
									scrollY1 += textEngine.lineHeights.get(i2 - 1);
								}
								CanvasTextField.context.beginPath();
								var tmp7 = (StringTools().default).hex(group.format.color & 16777215,6);
								CanvasTextField.context.strokeStyle = "#" + tmp7;
								CanvasTextField.context.moveTo(group.offsetX + advance - textField.get_scrollH(),scrollY1 + 2);
								CanvasTextField.context.lineWidth = 1;
								CanvasTextField.context.lineTo(group.offsetX + advance - textField.get_scrollH(),scrollY1 + (openfl__$internal_text_TextEngine().default).getFormatHeight(textField.get_defaultTextFormat()) - 1);
								CanvasTextField.context.stroke();
								CanvasTextField.context.closePath();
							}
						} else if(group.startIndex <= textField.__caretIndex && group.endIndex >= textField.__caretIndex || group.startIndex <= textField.__selectionIndex && group.endIndex >= textField.__selectionIndex || group.startIndex > textField.__caretIndex && group.endIndex < textField.__selectionIndex || group.startIndex > textField.__selectionIndex && group.endIndex < textField.__caretIndex) {
							var selectionStart = (Std().default)["int"](Math.min(textField.__selectionIndex,textField.__caretIndex));
							var selectionEnd = (Std().default)["int"](Math.max(textField.__selectionIndex,textField.__caretIndex));
							if(group.startIndex > selectionStart) {
								selectionStart = group.startIndex;
							}
							if(group.endIndex < selectionEnd) {
								selectionEnd = group.endIndex;
							}
							var start;
							var end;
							start = textField.getCharBoundaries(selectionStart);
							if(selectionEnd >= (lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(textEngine.text)) {
								end = textField.getCharBoundaries((lime_text__$UTF8String_UTF8String_$Impl_$().default).get_length(textEngine.text) - 1);
								end.x += end.width + 2;
							} else {
								end = textField.getCharBoundaries(selectionEnd);
							}
							if(start != null && end != null) {
								CanvasTextField.context.fillStyle = "#000000";
								CanvasTextField.context.fillRect(start.x + scrollX,start.y + scrollY,end.x - start.x,group.height);
								CanvasTextField.context.fillStyle = "#FFFFFF";
								CanvasTextField.context.fillText((lime_text__$UTF8String_UTF8String_$Impl_$().default).substring(text,selectionStart,selectionEnd),scrollX + start.x,group.offsetY + offsetY + scrollY);
							}
						}
					}
				}
			} else {
				if(textEngine.border || textEngine.background) {
					if(textEngine.border) {
						CanvasTextField.context.rect(0.5,0.5,bounds.width - 1,bounds.height - 1);
					} else {
						CanvasTextField.context.rect(0,0,bounds.width,bounds.height);
					}
					if(textEngine.background) {
						var tmp8 = (StringTools().default).hex(textEngine.backgroundColor & 16777215,6);
						CanvasTextField.context.fillStyle = "#" + tmp8;
						CanvasTextField.context.fill();
					}
					if(textEngine.border) {
						CanvasTextField.context.lineWidth = 1;
						CanvasTextField.context.lineCap = "square";
						var tmp9 = (StringTools().default).hex(textEngine.borderColor & 16777215,6);
						CanvasTextField.context.strokeStyle = "#" + tmp9;
						CanvasTextField.context.stroke();
					}
				}
				if(textField.__caretIndex > -1 && textEngine.selectable && textField.__showCursor) {
					var scrollX1 = -textField.get_scrollH();
					var scrollY2 = 0.0;
					var _g12 = 0;
					var _g4 = textField.get_scrollV() - 1;
					while(_g12 < _g4) {
						var i3 = _g12++;
						scrollY2 += textEngine.lineHeights.get(i3);
					}
					CanvasTextField.context.beginPath();
					var tmp10 = (StringTools().default).hex(textField.get_defaultTextFormat().color & 16777215,6);
					CanvasTextField.context.strokeStyle = "#" + tmp10;
					CanvasTextField.context.moveTo(scrollX1 + 2.5,scrollY2 + 2.5);
					CanvasTextField.context.lineWidth = 1;
					CanvasTextField.context.lineTo(scrollX1 + 2.5,scrollY2 + (openfl__$internal_text_TextEngine().default).getFormatHeight(textField.get_defaultTextFormat()) - 1);
					CanvasTextField.context.stroke();
					CanvasTextField.context.closePath();
				}
			}
			graphics.__bitmap = (openfl_display_BitmapData().default).fromCanvas(textField.__graphics.__canvas);
			graphics.__visible = true;
			textField.__dirty = false;
			graphics.set___dirty(false);
		}
	}
}
// Export
exports.default = CanvasTextField;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 343 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.text.TextLayoutGroup
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var TextLayoutGroup = function(format,startIndex,endIndex) {
	this.format = format;
	this.startIndex = startIndex;
	this.endIndex = endIndex;
}
// Meta
TextLayoutGroup.__name__ = ["openfl","_internal","text","TextLayoutGroup"];
TextLayoutGroup.prototype = {
	getAdvance: function(index) {
		return this.positions[index];
	}
};
TextLayoutGroup.prototype.__class__ = $hxClasses["openfl._internal.text.TextLayoutGroup"] = TextLayoutGroup;
// Init
// Statics
// Export
exports.default = TextLayoutGroup;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 344 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMTextField
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function EReg() {return __webpack_require__(27);}
function js_Browser() {return __webpack_require__(11);}
function openfl__$internal_text_TextEngine() {return __webpack_require__(138);}
function Std() {return __webpack_require__(4);}
function openfl__$internal_renderer_dom_DOMRenderer() {return __webpack_require__(52);}
function StringTools() {return __webpack_require__(12);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var DOMTextField = function(){}
// Meta
DOMTextField.__name__ = ["openfl","_internal","renderer","dom","DOMTextField"];
DOMTextField.prototype = {
	
};
DOMTextField.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMTextField"] = DOMTextField;
// Init
// Statics
DOMTextField.clear = function(textField,renderSession) {
	if(textField.__div != null) {
		renderSession.element.removeChild(textField.__div);
		textField.__div = null;
		textField.__style = null;
	}
}
DOMTextField.measureText = function(textField) {
	var textEngine = textField.__textEngine;
	var div = textField.__div;
	if(div == null) {
		div = (js_Browser().default).get_document().createElement("div");
		div.innerHTML = new (EReg().default)("\n","g").replace(textEngine.text,"
");
		div.style.setProperty("font",(openfl__$internal_text_TextEngine().default).getFont(textField.__textFormat),null);
		div.style.setProperty("pointer-events","none",null);
		div.style.position = "absolute";
		div.style.top = "110%";
		(js_Browser().default).get_document().body.appendChild(div);
	}
	textEngine.__measuredWidth = div.clientWidth;
	if(textField.__div == null) {
		div.style.width = (Std().default).string(textEngine.width - 4) + "px";
	}
	textEngine.__measuredHeight = div.clientHeight;
	if(textField.__div == null) {
		(js_Browser().default).get_document().body.removeChild(div);
	}
}
DOMTextField.render = function(textField,renderSession) {
	var textEngine = textField.__textEngine;
	if(textField.stage != null && textField.__worldVisible && textField.__renderable) {
		if(textField.__dirty || textField.__renderTransformChanged || textField.__div == null) {
			if(textEngine.text != "" || textEngine.background || textEngine.border || textEngine.type == "input") {
				if(textField.__div == null) {
					textField.__div = (js_Browser().default).get_document().createElement("div");
					(openfl__$internal_renderer_dom_DOMRenderer().default).initializeElement(textField,textField.__div,renderSession);
					textField.__style.setProperty("outline","none",null);
					textField.__div.addEventListener("input",function(event) {
						event.preventDefault();
						if(textField.get_htmlText() != textField.__div.innerHTML) {
							textField.set_htmlText(textField.__div.innerHTML);
							var textField1 = textField.__displayAsPassword;
							textField.__dirty = false;
						}
					},true);
				}
				if(!textEngine.wordWrap) {
					textField.__style.setProperty("white-space","nowrap",null);
				} else {
					textField.__style.setProperty("word-wrap","break-word",null);
				}
				textField.__style.setProperty("overflow","hidden",null);
				if(textEngine.selectable) {
					textField.__style.setProperty("cursor","text",null);
					textField.__style.setProperty("-webkit-user-select","text",null);
					textField.__style.setProperty("-moz-user-select","text",null);
					textField.__style.setProperty("-ms-user-select","text",null);
					textField.__style.setProperty("-o-user-select","text",null);
				} else {
					textField.__style.setProperty("cursor","inherit",null);
				}
				textField.__div.contentEditable = textEngine.type == "input";
				var style = textField.__style;
				if(textEngine.background) {
					style.setProperty("background-color","#" + (StringTools().default).hex(textEngine.backgroundColor & 16777215,6),null);
				} else {
					style.removeProperty("background-color");
				}
				var w = textEngine.width;
				var h = textEngine.height;
				var scale = 1;
				var unscaledSize = textField.__textFormat.size;
				var scaledSize = unscaledSize;
				var t = textField.__renderTransform;
				if(t.a != 1.0 || t.d != 1.0) {
					if(t.a == t.d) {
						scale = t.a;
						t.a = t.d = 1.0;
					} else if(t.a > t.d) {
						scale = t.a;
						t.d /= t.a;
						t.a = 1.0;
					} else {
						scale = t.d;
						t.a /= t.d;
						t.d = 1.0;
					}
					scaledSize *= scale;
					w = Math.ceil(w * scale);
					h = Math.ceil(h * scale);
				}
				textField.__textFormat.size = scaledSize;
				var text = textEngine.text;
				var adjustment = 0;
				if(!textField.__isHTML) {
					text = (StringTools().default).htmlEscape(text);
				} else {
					var matchText = text;
					while(DOMTextField.__regexFont.match(matchText)) {
						var fontText = DOMTextField.__regexFont.matched(0);
						var style1 = "";
						if(DOMTextField.__regexFace.match(fontText)) {
							style1 += "font-family:'" + DOMTextField.__getAttributeMatch(DOMTextField.__regexFace) + "';";
						}
						if(DOMTextField.__regexColor.match(fontText)) {
							style1 += "color:#" + DOMTextField.__getAttributeMatch(DOMTextField.__regexColor) + ";";
						}
						if(DOMTextField.__regexSize.match(fontText)) {
							var sizeAttr = DOMTextField.__getAttributeMatch(DOMTextField.__regexSize);
							var firstChar = (HxOverrides().default).cca(sizeAttr,0);
							var size;
							adjustment = (Std().default).parseFloat(sizeAttr) * scale;
							if(firstChar == 43 || firstChar == 45) {
								size = scaledSize + adjustment;
							} else {
								size = adjustment;
							}
							style1 += "font-size:" + size + "px;";
						}
						text = (StringTools().default).replace(text,fontText,"");
						matchText = DOMTextField.__regexFont.matchedRight();
					}
					text = DOMTextField.__regexCloseFont.replace(text,"");
				}
				text = (StringTools().default).replace(text,"");
				textField.__div.innerHTML = new (EReg().default)("\n","g").replace(textField.__div.innerHTML,"
");
				textField.__div.innerHTML = new (EReg().default)("\r","g").replace(textField.__div.innerHTML,"
");
				style.setProperty("font",(openfl__$internal_text_TextEngine().default).getFont(textField.__textFormat),null);
				textField.__textFormat.size = unscaledSize;
				textField.__textFormat.leading = unscaledLeading;
				style.setProperty("top","3px",null);
				if(textEngine.border) {
					style.setProperty("border","solid 1px #" + (StringTools().default).hex(textEngine.borderColor & 16777215,6),null);
					textField.__renderTransform.translate(-1,-1);
					textField.__renderTransformChanged = true;
					textField.__transformDirty = true;
				} else if(style.border != "") {
					style.removeProperty("border");
					textField.__renderTransformChanged = true;
				}
				style.setProperty("color","#" + (StringTools().default).hex(textField.__textFormat.color & 16777215,6),null);
				style.setProperty("width",w + "px",null);
				style.setProperty("height",h + "px",null);
				var _g = textField.__textFormat.align;
				switch(_g) {
				case "center":
					style.setProperty("text-align","center",null);
					break;
				case "right":
					style.setProperty("text-align","right",null);
					break;
				default:
					style.setProperty("text-align","left",null);
				}
				textField.__dirty = false;
			} else if(textField.__div != null) {
				renderSession.element.removeChild(textField.__div);
				textField.__div = null;
			}
		}
		if(textField.__div != null) {
			var old = renderSession.roundPixels;
			renderSession.roundPixels = true;
			(openfl__$internal_renderer_dom_DOMRenderer().default).updateClip(textField,renderSession);
			(openfl__$internal_renderer_dom_DOMRenderer().default).applyStyle(textField,renderSession,true,true,true);
			renderSession.roundPixels = old;
		}
	} else {
		DOMTextField.clear(textField,renderSession);
	}
}
DOMTextField.__getAttributeMatch = function(regex) {
	if(regex.matched(2) != null) {
		return regex.matched(2);
	} else {
		return regex.matched(3);
	}
}
DOMTextField.__regexColor = new (EReg().default)("color=(\"#([^\"]+)\"|'#([^']+)')","i")
DOMTextField.__regexFace = new (EReg().default)("face=(\"([^\"]+)\"|'([^']+)')","i")
DOMTextField.__regexFont = new (EReg().default)("]+)>","gi")
DOMTextField.__regexCloseFont = new (EReg().default)("","gi")
DOMTextField.__regexSize = new (EReg().default)("size=(\"([^\"]+)\"|'([^']+)')","i")
// Export
exports.default = DOMTextField;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 345 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(188);
/***/ }),
/* 346 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.GradientType = module.exports.default = {
	LINEAR: "linear",
	RADIAL: "radial"
};
/***/ }),
/* 347 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(69);
/***/ }),
/* 348 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(166);
/***/ }),
/* 349 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(169);
/***/ }),
/* 350 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(168);
/***/ }),
/* 351 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(164);
/***/ }),
/* 352 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.GraphicsPathCommand = module.exports.default = {
	CUBIC_CURVE_TO: 6,
	CURVE_TO: 3,
	LINE_TO: 2,
	MOVE_TO: 1,
	NO_OP: 0,
	WIDE_LINE_TO: 5,
	WIDE_MOVE_TO: 4
};
/***/ }),
/* 353 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.GraphicsPathWinding = module.exports.default = {
	EVEN_ODD: "evenOdd",
	NON_ZERO: "nonZero"
};
/***/ }),
/* 354 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(167);
/***/ }),
/* 355 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(170);
/***/ }),
/* 356 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(112);
/***/ }),
/* 357 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(51);
/***/ }),
/* 358 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(72);
/***/ }),
/* 359 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(165);
/***/ }),
/* 360 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(171);
/***/ }),
/* 361 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(75);
/***/ }),
/* 362 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.InterpolationMethod = module.exports.default = {
	LINEAR_RGB: "linearRGB",
	RGB: "rgb"
};
/***/ }),
/* 363 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.JointStyle = module.exports.default = {
	BEVEL: "bevel",
	MITER: "miter",
	ROUND: "round"
};
/***/ }),
/* 364 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(178);
/***/ }),
/* 365 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.LineScaleMode = module.exports.default = {
	HORIZONTAL: "horizontal",
	NONE: "none",
	NORMAL: "normal",
	VERTICAL: "vertical"
};
/***/ }),
/* 366 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(367);
/***/ }),
/* 367 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Loader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_display_DisplayObjectContainer() {return __webpack_require__(96);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
function openfl_Lib() {return __webpack_require__(25);}
function StringTools() {return __webpack_require__(12);}
function openfl_display_BitmapData() {return __webpack_require__(44);}
function openfl_net_URLLoader() {return __webpack_require__(79);}
function openfl_utils_Assets() {return __webpack_require__(201);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_events_IOErrorEvent() {return __webpack_require__(101);}
function Std() {return __webpack_require__(4);}
function openfl_display_Bitmap() {return __webpack_require__(89);}
function openfl_events_ProgressEvent() {return __webpack_require__(53);}
function lime_utils_AssetManifest() {return __webpack_require__(103);}
function haxe_io_Path() {return __webpack_require__(80);}
function lime_utils_AssetLibrary() {return __webpack_require__(137);}
function openfl_utils_AssetLibrary() {return __webpack_require__(202);}
function openfl_display_Sprite() {return __webpack_require__(97);}
function openfl_display_LoaderInfo() {return __webpack_require__(139);}
// Constructor
var Loader = function() {
	(openfl_display_DisplayObjectContainer().default).call(this);
	this.contentLoaderInfo = (openfl_display_LoaderInfo().default).create(this);
	this.uncaughtErrorEvents = this.contentLoaderInfo.uncaughtErrorEvents;
}
// Meta
Loader.__name__ = ["openfl","display","Loader"];
Loader.__super__ = (openfl_display_DisplayObjectContainer().default);
Loader.prototype = $extend((openfl_display_DisplayObjectContainer().default).prototype, {
	close: function() {
		(openfl__$internal_Lib().default).notImplemented({ fileName : "Loader.hx", lineNumber : 59, className : "openfl.display.Loader", methodName : "close"});
	},
	load: function(request,context) {
		this.contentLoaderInfo.loaderURL = (openfl_Lib().default).get_current().get_loaderInfo().url;
		this.contentLoaderInfo.url = request.url;
		this.__unloaded = false;
		if(request.contentType == null || request.contentType == "") {
			var extension = "";
			this.__path = request.url;
			var queryIndex = this.__path.indexOf("?");
			if(queryIndex > -1) {
				this.__path = this.__path.substring(0,queryIndex);
			}
			while((StringTools().default).endsWith(this.__path,"/")) this.__path = this.__path.substring(0,this.__path.length - 1);
			if((StringTools().default).endsWith(this.__path,".bundle")) {
				this.__path += "/library.json";
				if(queryIndex > -1) {
					request.url = this.__path + request.url.substring(queryIndex);
				} else {
					request.url = this.__path;
				}
			}
			var extIndex = this.__path.lastIndexOf(".");
			if(extIndex > -1) {
				extension = this.__path.substring(extIndex + 1);
			}
			var tmp;
			switch(extension) {
			case "gif":
				tmp = "image/gif";
				break;
			case "jpeg":case "jpg":
				tmp = "image/jpeg";
				break;
			case "js":
				tmp = "application/javascript";
				break;
			case "json":
				tmp = "application/json";
				break;
			case "png":
				tmp = "image/png";
				break;
			case "swf":
				tmp = "application/x-shockwave-flash";
				break;
			default:
				tmp = "application/x-www-form-urlencoded";
			}
			this.contentLoaderInfo.contentType = tmp;
		} else {
			this.contentLoaderInfo.contentType = request.contentType;
		}
		if(this.contentLoaderInfo.contentType.indexOf("image/") > -1 && request.method == "GET" && (request.requestHeaders == null || request.requestHeaders.length == 0) && request.userAgent == null) {
			(openfl_display_BitmapData().default).loadFromFile(request.url).onComplete($bind(this,this.BitmapData_onLoad)).onError($bind(this,this.BitmapData_onError)).onProgress($bind(this,this.BitmapData_onProgress));
			return;
		}
		var loader = new (openfl_net_URLLoader().default)();
		loader.dataFormat = "binary";
		if(this.contentLoaderInfo.contentType.indexOf("/json") > -1 || this.contentLoaderInfo.contentType.indexOf("/javascript") > -1 || this.contentLoaderInfo.contentType.indexOf("/ecmascript") > -1) {
			loader.dataFormat = "text";
		}
		loader.addEventListener("complete",$bind(this,this.loader_onComplete));
		loader.addEventListener("ioError",$bind(this,this.loader_onError));
		loader.addEventListener("progress",$bind(this,this.loader_onProgress));
		loader.load(request);
	},
	loadBytes: function(buffer,context) {
		(openfl_display_BitmapData().default).loadFromBytes(buffer).onComplete($bind(this,this.BitmapData_onLoad)).onError($bind(this,this.BitmapData_onError));
	},
	unload: function() {
		if(!this.__unloaded) {
			while(this.get_numChildren() > 0) this.removeChildAt(0);
			if(this.__library != null) {
				(openfl_utils_Assets().default).unloadLibrary(this.contentLoaderInfo.url);
				this.__library = null;
			}
			this.content = null;
			this.contentLoaderInfo.url = null;
			this.contentLoaderInfo.contentType = null;
			this.contentLoaderInfo.content = null;
			this.contentLoaderInfo.bytesLoaded = 0;
			this.contentLoaderInfo.bytesTotal = 0;
			this.contentLoaderInfo.width = 0;
			this.contentLoaderInfo.height = 0;
			this.__unloaded = true;
			this.contentLoaderInfo.dispatchEvent(new (openfl_events_Event().default)("unload"));
		}
	},
	unloadAndStop: function(gc) {
		if(gc == null) {
			gc = true;
		}
		if(this.content != null) {
			this.content.__stopAllMovieClips();
		}
		var _g1 = 0;
		var _g = this.get_numChildren();
		while(_g1 < _g) {
			var i = _g1++;
			this.getChildAt(i).__stopAllMovieClips();
		}
		this.unload();
		var gc1 = gc;
	},
	__dispatchError: function(text) {
		var event = new (openfl_events_IOErrorEvent().default)("ioError");
		event.text = text;
		this.contentLoaderInfo.dispatchEvent(event);
	},
	BitmapData_onError: function(error) {
		this.__dispatchError((Std().default).string(error));
	},
	BitmapData_onLoad: function(bitmapData) {
		this.content = new (openfl_display_Bitmap().default)(bitmapData);
		this.contentLoaderInfo.content = this.content;
		this.addChild(this.content);
		this.contentLoaderInfo.dispatchEvent(new (openfl_events_Event().default)("complete"));
	},
	BitmapData_onProgress: function(bytesLoaded,bytesTotal) {
		var event = new (openfl_events_ProgressEvent().default)("progress");
		event.bytesLoaded = bytesLoaded;
		event.bytesTotal = bytesTotal;
		this.contentLoaderInfo.dispatchEvent(event);
	},
	loader_onComplete: function(event) {
		var _gthis = this;
		var loader = event.target;
		if(this.contentLoaderInfo.contentType != null && this.contentLoaderInfo.contentType.indexOf("/json") > -1) {
			var manifest = (lime_utils_AssetManifest().default).parse(loader.data,(haxe_io_Path().default).directory(this.__path));
			if(manifest == null) {
				this.__dispatchError("Cannot parse asset manifest");
				return;
			}
			var library = (lime_utils_AssetLibrary().default).fromManifest(manifest);
			if(library == null) {
				this.__dispatchError("Cannot open library");
				return;
			}
			if((Std().default)["is"](library,(openfl_utils_AssetLibrary().default))) {
				library.load().onComplete(function(_) {
					_gthis.__library = library;
					(openfl_utils_Assets().default).registerLibrary(_gthis.contentLoaderInfo.url,_gthis.__library);
					if(manifest.name != null && !(openfl_utils_Assets().default).hasLibrary(manifest.name)) {
						(openfl_utils_Assets().default).registerLibrary(manifest.name,_gthis.__library);
					}
					_gthis.content = _gthis.__library.getMovieClip("");
					_gthis.contentLoaderInfo.content = _gthis.content;
					_gthis.addChild(_gthis.content);
					_gthis.contentLoaderInfo.dispatchEvent(new (openfl_events_Event().default)("complete"));
				}).onError(function(e) {
					_gthis.__dispatchError(e);
				});
			}
		} else if(this.contentLoaderInfo.contentType != null && (this.contentLoaderInfo.contentType.indexOf("/javascript") > -1 || this.contentLoaderInfo.contentType.indexOf("/ecmascript") > -1)) {
			this.content = new (openfl_display_Sprite().default)();
			this.contentLoaderInfo.content = this.content;
			this.addChild(this.content);
			eval("(function () {" + (Std().default).string(loader.data) + "})()");
			this.contentLoaderInfo.dispatchEvent(new (openfl_events_Event().default)("complete"));
		} else {
			(openfl_display_BitmapData().default).loadFromBytes(loader.data).onComplete($bind(this,this.BitmapData_onLoad)).onError($bind(this,this.BitmapData_onError));
		}
	},
	loader_onError: function(event) {
		event.target = this.contentLoaderInfo;
		this.contentLoaderInfo.dispatchEvent(event);
	},
	loader_onProgress: function(event) {
		event.target = this.contentLoaderInfo;
		this.contentLoaderInfo.dispatchEvent(event);
	}
});
Loader.prototype.__class__ = $hxClasses["openfl.display.Loader"] = Loader;
// Init
// Statics
// Export
exports.default = Loader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 368 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.AssetCache
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_utils_IAssetCache() {return __webpack_require__(369);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function StringTools() {return __webpack_require__(12);}
function lime_utils_Assets() {return __webpack_require__(61);}
// Constructor
var AssetCache = function() {
	this.__enabled = true;
	this.bitmapData = new (haxe_ds_StringMap().default)();
	this.font = new (haxe_ds_StringMap().default)();
	this.sound = new (haxe_ds_StringMap().default)();
}
// Meta
AssetCache.__name__ = ["openfl","utils","AssetCache"];
AssetCache.__interfaces__ = [(openfl_utils_IAssetCache().default)];
AssetCache.prototype = {
	clear: function(prefix) {
		if(prefix == null) {
			this.bitmapData = new (haxe_ds_StringMap().default)();
			this.font = new (haxe_ds_StringMap().default)();
			this.sound = new (haxe_ds_StringMap().default)();
		} else {
			var keys = this.bitmapData.keys();
			var key = keys;
			while(key.hasNext()) {
				var key1 = key.next();
				if((StringTools().default).startsWith(key1,prefix)) {
					this.removeBitmapData(key1);
				}
			}
			var keys1 = this.font.keys();
			var key2 = keys1;
			while(key2.hasNext()) {
				var key3 = key2.next();
				if((StringTools().default).startsWith(key3,prefix)) {
					this.removeFont(key3);
				}
			}
			var keys2 = this.sound.keys();
			var key4 = keys2;
			while(key4.hasNext()) {
				var key5 = key4.next();
				if((StringTools().default).startsWith(key5,prefix)) {
					this.removeSound(key5);
				}
			}
		}
	},
	getBitmapData: function(id) {
		return this.bitmapData.get(id);
	},
	getFont: function(id) {
		return this.font.get(id);
	},
	getSound: function(id) {
		return this.sound.get(id);
	},
	hasBitmapData: function(id) {
		return this.bitmapData.exists(id);
	},
	hasFont: function(id) {
		return this.font.exists(id);
	},
	hasSound: function(id) {
		return this.sound.exists(id);
	},
	removeBitmapData: function(id) {
		(lime_utils_Assets().default).cache.image.remove(id);
		return this.bitmapData.remove(id);
	},
	removeFont: function(id) {
		(lime_utils_Assets().default).cache.font.remove(id);
		return this.font.remove(id);
	},
	removeSound: function(id) {
		(lime_utils_Assets().default).cache.audio.remove(id);
		return this.sound.remove(id);
	},
	setBitmapData: function(id,bitmapData) {
		this.bitmapData.set(id,bitmapData);
	},
	setFont: function(id,font) {
		this.font.set(id,font);
	},
	setSound: function(id,sound) {
		this.sound.set(id,sound);
	},
	get_enabled: function() {
		return this.__enabled;
	},
	set_enabled: function(value) {
		return this.__enabled = value;
	}
};
AssetCache.prototype.__class__ = $hxClasses["openfl.utils.AssetCache"] = AssetCache;
// Init
{
	var tmp = AssetCache.prototype;
	var tmp1 = function () { return this.get_enabled (); }
	var tmp2 = function (v) { return this.set_enabled (v); }
	global.Object.defineProperty(tmp,"enabled",{ get : tmp1, set : tmp2});
};
// Statics
// Export
exports.default = AssetCache;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 369 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.IAssetCache
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var IAssetCache = function() {}
// Meta
IAssetCache.__name__ = ["openfl","utils","IAssetCache"];
IAssetCache.prototype = {
	
};
IAssetCache.prototype.__class__ = $hxClasses["openfl.utils.IAssetCache"] = IAssetCache;
// Init
// Statics
// Export
exports.default = IAssetCache;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 370 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.media.AudioSource
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
function lime__$backend_html5_HTML5AudioSource() {return __webpack_require__(371);}
// Constructor
var AudioSource = function(buffer,offset,length,loops) {
	if(loops == null) {
		loops = 0;
	}
	if(offset == null) {
		offset = 0;
	}
	this.onComplete = new (lime_app__$Event_$Void_$Void().default)();
	this.buffer = buffer;
	this.offset = offset;
	this.backend = new (lime__$backend_html5_HTML5AudioSource().default)(this);
	if(length != null && length != 0) {
		this.set_length(length);
	}
	this.set_loops(loops);
	if(buffer != null) {
		this.init();
	}
}
// Meta
AudioSource.__name__ = ["lime","media","AudioSource"];
AudioSource.prototype = {
	dispose: function() {
		this.backend.dispose();
	},
	init: function() {
		this.backend.init();
	},
	play: function() {
		this.backend.play();
	},
	pause: function() {
		this.backend.pause();
	},
	stop: function() {
		this.backend.stop();
	},
	get_currentTime: function() {
		return this.backend.getCurrentTime();
	},
	set_currentTime: function(value) {
		return this.backend.setCurrentTime(value);
	},
	get_gain: function() {
		return this.backend.getGain();
	},
	set_gain: function(value) {
		return this.backend.setGain(value);
	},
	get_length: function() {
		return this.backend.getLength();
	},
	set_length: function(value) {
		return this.backend.setLength(value);
	},
	get_loops: function() {
		return this.backend.getLoops();
	},
	set_loops: function(value) {
		return this.backend.setLoops(value);
	},
	get_position: function() {
		return this.backend.getPosition();
	},
	set_position: function(value) {
		return this.backend.setPosition(value);
	}
};
AudioSource.prototype.__class__ = $hxClasses["lime.media.AudioSource"] = AudioSource;
// Init
// Statics
// Export
exports.default = AudioSource;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 371 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime._backend.html5.HTML5AudioSource
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $bind = __webpack_require__(8).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
function lime_math_Vector4() {return __webpack_require__(163);}
// Constructor
var HTML5AudioSource = function(parent) {
	this.parent = parent;
	this.id = -1;
	this.gain = 1;
	this.position = new (lime_math_Vector4().default)();
}
// Meta
HTML5AudioSource.__name__ = ["lime","_backend","html5","HTML5AudioSource"];
HTML5AudioSource.prototype = {
	dispose: function() {
	},
	init: function() {
	},
	play: function() {
		if(this.playing || this.parent.buffer == null) {
			return;
		}
		this.playing = true;
		var time = this.getCurrentTime();
		this.completed = false;
		var cacheVolume = this.parent.buffer.__srcHowl._volume;
		this.parent.buffer.__srcHowl._volume = this.parent.get_gain();
		this.id = this.parent.buffer.__srcHowl.play();
		this.parent.buffer.__srcHowl._volume = cacheVolume;
		this.setPosition(this.parent.get_position());
		this.parent.buffer.__srcHowl.on("end",$bind(this,this.howl_onEnd),this.id);
		this.setCurrentTime(time);
	},
	pause: function() {
		this.playing = false;
		if(this.parent.buffer != null) {
			this.parent.buffer.__srcHowl.pause(this.id);
		}
	},
	stop: function() {
		this.playing = false;
		if(this.parent.buffer != null) {
			this.parent.buffer.__srcHowl.stop(this.id);
		}
	},
	howl_onEnd: function() {
		this.playing = false;
		if(this.loops > 0) {
			this.loops--;
			this.stop();
			this.play();
			return;
		} else {
			this.parent.buffer.__srcHowl.stop(this.id);
		}
		this.completed = true;
		this.parent.onComplete.dispatch();
	},
	getCurrentTime: function() {
		if(this.id == -1) {
			return 0;
		}
		if(this.completed) {
			return this.getLength();
		} else if(this.parent.buffer != null) {
			var time = (Std().default)["int"](this.parent.buffer.__srcHowl.seek(this.id) * 1000) - this.parent.offset;
			if(time < 0) {
				return 0;
			}
			return time;
		}
		return 0;
	},
	setCurrentTime: function(value) {
		if(this.parent.buffer != null) {
			var pos = (value + this.parent.offset) / 1000;
			if(pos < 0) {
				pos = 0;
			}
			this.parent.buffer.__srcHowl.seek(pos,this.id);
		}
		return value;
	},
	getGain: function() {
		return this.gain;
	},
	setGain: function(value) {
		if(this.parent.buffer != null && this.id != -1) {
			this.parent.buffer.__srcHowl.volume(value,this.id);
		}
		return this.gain = value;
	},
	getLength: function() {
		if(this.length != 0) {
			return this.length;
		}
		if(this.parent.buffer != null) {
			return (Std().default)["int"](this.parent.buffer.__srcHowl.duration() * 1000);
		}
		return 0;
	},
	setLength: function(value) {
		return this.length = value;
	},
	getLoops: function() {
		return this.loops;
	},
	setLoops: function(value) {
		return this.loops = value;
	},
	getPosition: function() {
		return this.position;
	},
	setPosition: function(value) {
		this.position.x = value.x;
		this.position.y = value.y;
		this.position.z = value.z;
		this.position.w = value.w;
		return this.position;
	}
};
HTML5AudioSource.prototype.__class__ = $hxClasses["lime._backend.html5.HTML5AudioSource"] = HTML5AudioSource;
// Init
// Statics
// Export
exports.default = HTML5AudioSource;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 372 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(139);
/***/ }),
/* 373 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(187);
/***/ }),
/* 374 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.PixelSnapping = module.exports.default = {
	ALWAYS: "always",
	AUTO: "auto",
	NEVER: "never"
};
/***/ }),
/* 375 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(177);
/***/ }),
/* 376 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(377);
/***/ }),
/* 377 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Preloader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function lime_app_Preloader() {return __webpack_require__(378);}
function openfl_Lib() {return __webpack_require__(25);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_events_ProgressEvent() {return __webpack_require__(53);}
// Constructor
var Preloader = function(display) {
	(lime_app_Preloader().default).call(this);
	this.display = display;
	if(display != null) {
		display.addEventListener("unload",$bind(this,this.display_onUnload));
		(openfl_Lib().default).get_current().addChild(display);
	}
}
// Meta
Preloader.__name__ = ["openfl","display","Preloader"];
Preloader.__super__ = (lime_app_Preloader().default);
Preloader.prototype = $extend((lime_app_Preloader().default).prototype, {
	start: function() {
		if(this.simulateProgress) {
			return;
		}
		this.ready = true;
		(openfl_Lib().default).get_current().get_loaderInfo().__complete();
		if(this.display != null) {
			var complete = new (openfl_events_Event().default)("complete",true,true);
			this.display.dispatchEvent(complete);
			if(!complete.isDefaultPrevented()) {
				this.display.dispatchEvent(new (openfl_events_Event().default)("unload"));
			}
		} else {
			(lime_app_Preloader().default).prototype.start.call(this);
		}
	},
	update: function(loaded,total) {
		(openfl_Lib().default).get_current().get_loaderInfo().__update(loaded,total);
		if(this.display != null) {
			this.display.dispatchEvent(new (openfl_events_ProgressEvent().default)("progress",true,true,loaded,total));
		}
	},
	display_onUnload: function(event) {
		if(this.display != null) {
			this.display.removeEventListener("unload",$bind(this,this.display_onUnload));
			if(this.display.parent == (openfl_Lib().default).get_current()) {
				(openfl_Lib().default).get_current().removeChild(this.display);
			}
			(openfl_Lib().default).get_current().stage.set_focus(null);
			this.display = null;
		}
		if(this.ready && !this.simulateProgress) {
			(lime_app_Preloader().default).prototype.start.call(this);
		}
	}
});
Preloader.prototype.__class__ = $hxClasses["openfl.display.Preloader"] = Preloader;
// Init
// Statics
// Export
exports.default = Preloader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 378 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app.Preloader
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
function lime_utils_Log() {return __webpack_require__(23);}
function lime_utils_Assets() {return __webpack_require__(61);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function haxe_ds_ObjectMap() {return __webpack_require__(57);}
function lime_app__$Event_$Int_$Int_$Void() {return __webpack_require__(149);}
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
// Constructor
var Preloader = function() {
	this.bytesTotalCache = new (haxe_ds_StringMap().default)();
	this.bytesLoadedCache2 = new (haxe_ds_StringMap().default)();
	this.bytesLoadedCache = new (haxe_ds_ObjectMap().default)();
	this.onProgress = new (lime_app__$Event_$Int_$Int_$Void().default)();
	this.onComplete = new (lime_app__$Event_$Void_$Void().default)();
	this.bytesLoaded = 0;
	this.bytesTotal = 0;
	this.libraries = [];
	this.libraryNames = [];
	this.onProgress.add($bind(this,this.update));
}
// Meta
Preloader.__name__ = ["lime","app","Preloader"];
Preloader.prototype = {
	addLibrary: function(library) {
		this.libraries.push(library);
	},
	addLibraryName: function(name) {
		if(this.libraryNames.indexOf(name) == -1) {
			this.libraryNames.push(name);
		}
	},
	create: function(config) {
	},
	load: function() {
		var _gthis = this;
		var _g = 0;
		var _g1 = this.libraries;
		while(_g < _g1.length) {
			var library = _g1[_g];
			++_g;
			this.bytesTotal += library.bytesTotal;
		}
		this.loadedLibraries = -1;
		this.preloadStarted = false;
		var _g2 = 0;
		var _g11 = this.libraries;
		while(_g2 < _g11.length) {
			var library1 = [_g11[_g2]];
			++_g2;
			(lime_utils_Log().default).verbose("Preloading asset library",{ fileName : "Preloader.hx", lineNumber : 153, className : "lime.app.Preloader", methodName : "load"});
			library1[0].load().onProgress((function(library2) {
				return function(loaded,total) {
					if(!_gthis.bytesLoadedCache.exists(library2[0])) {
						_gthis.bytesLoaded += loaded;
					} else {
						_gthis.bytesLoaded += loaded - _gthis.bytesLoadedCache.get(library2[0]);
					}
					_gthis.bytesLoadedCache.set(library2[0],loaded);
					if(!_gthis.simulateProgress) {
						_gthis.onProgress.dispatch(_gthis.bytesLoaded,_gthis.bytesTotal);
					}
				};
			})(library1)).onComplete((function(library3) {
				return function(_) {
					if(!_gthis.bytesLoadedCache.exists(library3[0])) {
						_gthis.bytesLoaded += library3[0].bytesTotal;
					} else {
						_gthis.bytesLoaded += library3[0].bytesTotal - _gthis.bytesLoadedCache.get(library3[0]);
					}
					_gthis.loadedAssetLibrary();
				};
			})(library1)).onError((function() {
				return function(e) {
					(lime_utils_Log().default).error(e,{ fileName : "Preloader.hx", lineNumber : 191, className : "lime.app.Preloader", methodName : "load"});
				};
			})());
		}
		var _g3 = 0;
		var _g12 = this.libraryNames;
		while(_g3 < _g12.length) {
			var name = _g12[_g3];
			++_g3;
			this.bytesTotal += 200;
		}
		this.loadedLibraries++;
		this.preloadStarted = true;
		this.updateProgress();
	},
	loadedAssetLibrary: function(name) {
		this.loadedLibraries++;
		var current = this.loadedLibraries;
		if(!this.preloadStarted) {
			++current;
		}
		var totalLibraries = this.libraries.length + this.libraryNames.length;
		if(name != null) {
			(lime_utils_Log().default).verbose("Loaded asset library: " + name + " [" + current + "/" + totalLibraries + "]",{ fileName : "Preloader.hx", lineNumber : 223, className : "lime.app.Preloader", methodName : "loadedAssetLibrary"});
		} else {
			(lime_utils_Log().default).verbose("Loaded asset library [" + current + "/" + totalLibraries + "]",{ fileName : "Preloader.hx", lineNumber : 227, className : "lime.app.Preloader", methodName : "loadedAssetLibrary"});
		}
		this.updateProgress();
	},
	start: function() {
		if(this.complete) {
			return;
		}
		this.complete = true;
		this.onComplete.dispatch();
	},
	update: function(loaded,total) {
	},
	updateProgress: function() {
		var _gthis = this;
		if(!this.simulateProgress) {
			this.onProgress.dispatch(this.bytesLoaded,this.bytesTotal);
		}
		if(this.loadedLibraries == this.libraries.length && !this.initLibraryNames) {
			this.initLibraryNames = true;
			var _g = 0;
			var _g1 = this.libraryNames;
			while(_g < _g1.length) {
				var name = [_g1[_g]];
				++_g;
				(lime_utils_Log().default).verbose("Preloading asset library: " + name[0],{ fileName : "Preloader.hx", lineNumber : 276, className : "lime.app.Preloader", methodName : "updateProgress"});
				(lime_utils_Assets().default).loadLibrary(name[0]).onProgress((function(name1) {
					return function(loaded,total) {
						if(total > 0) {
							if(!_gthis.bytesTotalCache.exists(name1[0])) {
								_gthis.bytesTotalCache.set(name1[0],total);
								_gthis.bytesTotal += total - 200;
							}
							if(loaded > total) {
								loaded = total;
							}
							if(!_gthis.bytesLoadedCache2.exists(name1[0])) {
								_gthis.bytesLoaded += loaded;
							} else {
								_gthis.bytesLoaded += loaded - _gthis.bytesLoadedCache2.get(name1[0]);
							}
							_gthis.bytesLoadedCache2.set(name1[0],loaded);
							if(!_gthis.simulateProgress) {
								_gthis.onProgress.dispatch(_gthis.bytesLoaded,_gthis.bytesTotal);
							}
						}
					};
				})(name)).onComplete((function(name2) {
					return function(library) {
						var total1 = 200;
						if(_gthis.bytesTotalCache.exists(name2[0])) {
							total1 = _gthis.bytesTotalCache.get(name2[0]);
						}
						if(!_gthis.bytesLoadedCache2.exists(name2[0])) {
							_gthis.bytesLoaded += total1;
						} else {
							_gthis.bytesLoaded += total1 - _gthis.bytesLoadedCache2.get(name2[0]);
						}
						_gthis.loadedAssetLibrary(name2[0]);
					};
				})(name)).onError((function() {
					return function(e) {
						(lime_utils_Log().default).error(e,{ fileName : "Preloader.hx", lineNumber : 335, className : "lime.app.Preloader", methodName : "updateProgress"});
					};
				})());
			}
		}
		if(!this.simulateProgress && this.loadedLibraries == this.libraries.length + this.libraryNames.length) {
			if(!this.preloadComplete) {
				this.preloadComplete = true;
				(lime_utils_Log().default).verbose("Preload complete",{ fileName : "Preloader.hx", lineNumber : 349, className : "lime.app.Preloader", methodName : "updateProgress"});
			}
			this.start();
		}
	}
};
Preloader.prototype.__class__ = $hxClasses["lime.app.Preloader"] = Preloader;
// Init
// Statics
// Export
exports.default = Preloader;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 379 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(122);
/***/ }),
/* 380 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(172);
/***/ }),
/* 381 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(173);
/***/ }),
/* 382 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(383);
/***/ }),
/* 383 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.ShaderJob
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
// Constructor
var ShaderJob = function(shader,target,width,height) {
	if(height == null) {
		height = 0;
	}
	if(width == null) {
		width = 0;
	}
	(openfl_events_EventDispatcher().default).call(this);
	this.height = height;
	this.width = 0;
	this.progress = 0;
}
// Meta
ShaderJob.__name__ = ["openfl","display","ShaderJob"];
ShaderJob.__super__ = (openfl_events_EventDispatcher().default);
ShaderJob.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	cancel: function() {
	},
	start: function(waitForCompletion) {
		if(waitForCompletion == null) {
			waitForCompletion = false;
		}
	}
});
ShaderJob.prototype.__class__ = $hxClasses["openfl.display.ShaderJob"] = ShaderJob;
// Init
// Statics
// Export
exports.default = ShaderJob;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 384 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(174);
/***/ }),
/* 385 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.ShaderParameterType = module.exports.default = {
	BOOL: "bool",
	BOOL2: "bool2",
	BOOL3: "bool3",
	BOOL4: "bool4",
	FLOAT: "float",
	FLOAT2: "float2",
	FLOAT3: "float3",
	FLOAT4: "float4",
	INT: "int",
	INT2: "int2",
	INT3: "int3",
	INT4: "int4",
	MATRIX2X2: "matrix2x2",
	MATRIX2X3: "matrix2x3",
	MATRIX2X4: "matrix2x4",
	MATRIX3X2: "matrix3x2",
	MATRIX3X3: "matrix3x3",
	MATRIX3X4: "matrix3x4",
	MATRIX4X2: "matrix4x2",
	MATRIX4X3: "matrix4x3",
	MATRIX4X4: "matrix4x4",
};
/***/ }),
/* 386 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.ClipboardFormats = module.exports.default = {
	FAST: "fast",
	FULL: "full"
};
/***/ }),
/* 387 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(388);
/***/ }),
/* 388 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Shape
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_IShaderDrawable() {return __webpack_require__(66);}
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function openfl_display_Graphics() {return __webpack_require__(69);}
// Constructor
var Shape = function() {
	(openfl_display_DisplayObject().default).call(this);
}
// Meta
Shape.__name__ = ["openfl","display","Shape"];
Shape.__interfaces__ = [(openfl_display_IShaderDrawable().default)];
Shape.__super__ = (openfl_display_DisplayObject().default);
Shape.prototype = $extend((openfl_display_DisplayObject().default).prototype, {
	get_graphics: function() {
		if(this.__graphics == null) {
			this.__graphics = new (openfl_display_Graphics().default)(this);
		}
		return this.__graphics;
	}
});
Shape.prototype.__class__ = $hxClasses["openfl.display.Shape"] = Shape;
// Init
Object.defineProperty(Shape.prototype,"graphics",{ get : function () { return this.get_graphics (); }});
// Statics
// Export
exports.default = Shape;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 389 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(390);
/***/ }),
/* 390 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.SimpleButton
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_display_InteractiveObject() {return __webpack_require__(75);}
function lime_ui_MouseCursor() {return __webpack_require__(76);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl_media_SoundTransform() {return __webpack_require__(81);}
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
// Constructor
var SimpleButton = function(upState,overState,downState,hitTestState) {
	(openfl_display_InteractiveObject().default).call(this);
	this.enabled = true;
	this.trackAsMenu = false;
	this.useHandCursor = true;
	this.__upState = upState != null ? upState : new (openfl_display_DisplayObject().default)();
	this.__overState = overState;
	this.__downState = downState;
	this.__hitTestState = hitTestState != null ? hitTestState : new (openfl_display_DisplayObject().default)();
	this.addEventListener("mouseDown",$bind(this,this.__this_onMouseDown));
	this.addEventListener("mouseOut",$bind(this,this.__this_onMouseOut));
	this.addEventListener("mouseOver",$bind(this,this.__this_onMouseOver));
	this.addEventListener("mouseUp",$bind(this,this.__this_onMouseUp));
	this.__tabEnabled = true;
	this.set___currentState(this.__upState);
	if(SimpleButton.__initSymbol != null) {
		var swf = SimpleButton.__initSWF;
		this.__symbol = SimpleButton.__initSymbol;
		SimpleButton.__initSWF = null;
		SimpleButton.__initSymbol = null;
		this.__fromSymbol(swf,this.__symbol);
	}
}
// Meta
SimpleButton.__name__ = ["openfl","display","SimpleButton"];
SimpleButton.__super__ = (openfl_display_InteractiveObject().default);
SimpleButton.prototype = $extend((openfl_display_InteractiveObject().default).prototype, {
	__fromSymbol: function(swf,symbol) {
		this.__symbol = symbol;
		if(symbol.downState != null) {
			this.set_downState(symbol.downState.__createObject(swf));
		}
		if(symbol.hitState != null) {
			this.set_hitTestState(symbol.hitState.__createObject(swf));
		}
		if(symbol.overState != null) {
			this.set_overState(symbol.overState.__createObject(swf));
		}
		if(symbol.upState != null) {
			this.set_upState(symbol.upState.__createObject(swf));
		}
	},
	__getBounds: function(rect,matrix) {
		(openfl_display_InteractiveObject().default).prototype.__getBounds.call(this,rect,matrix);
		if(matrix != null) {
			this.__updateTransforms(matrix);
			this.__updateChildren(true);
		}
		this.__currentState.__getBounds(rect,this.__currentState.__worldTransform);
		if(matrix != null) {
			this.__updateTransforms();
			this.__updateChildren(true);
		}
	},
	__getRenderBounds: function(rect,matrix) {
		if(this.__scrollRect != null) {
			(openfl_display_InteractiveObject().default).prototype.__getRenderBounds.call(this,rect,matrix);
			return;
		} else {
			(openfl_display_InteractiveObject().default).prototype.__getBounds.call(this,rect,matrix);
		}
		if(matrix != null) {
			this.__updateTransforms(matrix);
			this.__updateChildren(true);
		}
		this.__currentState.__getRenderBounds(rect,this.__currentState.__worldTransform);
		if(matrix != null) {
			this.__updateTransforms();
			this.__updateChildren(true);
		}
	},
	__getCursor: function() {
		if(this.useHandCursor && !this.__ignoreEvent) {
			return (lime_ui_MouseCursor().default).POINTER;
		} else {
			return null;
		}
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		var hitTest = false;
		if(this.get_hitTestState() != null) {
			if(this.get_hitTestState().__hitTest(x,y,shapeFlag,stack,interactiveOnly,hitObject)) {
				if(stack != null) {
					if(stack.length == 0) {
						stack[0] = hitObject;
					} else {
						stack[stack.length - 1] = hitObject;
					}
				}
				hitTest = true;
			}
		} else if(this.__currentState != null) {
			if(!hitObject.get_visible() || this.__isMask || interactiveOnly && !this.mouseEnabled) {
				return false;
			}
			if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
				return false;
			}
			if(this.__currentState.__hitTest(x,y,shapeFlag,stack,interactiveOnly,hitObject)) {
				hitTest = interactiveOnly;
			}
		}
		if(stack != null) {
			while(stack.length > 1 && stack[stack.length - 1] == stack[stack.length - 2]) stack.pop();
		}
		return hitTest;
	},
	__hitTestMask: function(x,y) {
		var hitTest = false;
		if(this.__currentState.__hitTestMask(x,y)) {
			hitTest = true;
		}
		return hitTest;
	},
	__renderCairo: function(renderSession) {
		if(!this.__renderable || this.__worldAlpha <= 0 || this.__currentState == null) {
			return;
		}
		renderSession.maskManager.pushObject(this);
		this.__currentState.__renderCairo(renderSession);
		renderSession.maskManager.popObject(this);
	},
	__renderCairoMask: function(renderSession) {
		this.__currentState.__renderCairoMask(renderSession);
	},
	__renderCanvas: function(renderSession) {
		if(!this.__renderable || this.__worldAlpha <= 0 || this.__currentState == null) {
			return;
		}
		renderSession.maskManager.pushObject(this);
		this.__currentState.__renderCanvas(renderSession);
		renderSession.maskManager.popObject(this);
	},
	__renderCanvasMask: function(renderSession) {
		var bounds = (openfl_geom_Rectangle().default).__pool.get();
		this.__getLocalBounds(bounds);
		renderSession.context.rect(0,0,bounds.width,bounds.height);
		(openfl_geom_Rectangle().default).__pool.release(bounds);
		this.__currentState.__renderCanvasMask(renderSession);
	},
	__renderDOM: function(renderSession) {
		renderSession.maskManager.pushObject(this);
		var _g = 0;
		var _g1 = this.__previousStates;
		while(_g < _g1.get_length()) {
			var previousState = _g1.get(_g);
			++_g;
			previousState.__renderDOM(renderSession);
		}
		this.__previousStates.set_length(0);
		if(this.__currentState != null) {
			if(this.__currentState.stage != this.stage) {
				this.__currentState.__setStageReference(this.stage);
			}
			this.__currentState.__renderDOM(renderSession);
		}
		renderSession.maskManager.popObject(this);
	},
	__renderGL: function(renderSession) {
		if(!this.__renderable || this.__worldAlpha <= 0 || this.__currentState == null) {
			return;
		}
		renderSession.maskManager.pushObject(this);
		this.__currentState.__renderGL(renderSession);
		renderSession.maskManager.popObject(this);
	},
	__renderGLMask: function(renderSession) {
		if(this.__currentState == null) {
			return;
		}
		this.__currentState.__renderGLMask(renderSession);
	},
	__setStageReference: function(stage) {
		(openfl_display_InteractiveObject().default).prototype.__setStageReference.call(this,stage);
		if(this.__currentState != null) {
			this.__currentState.__setStageReference(stage);
		}
		if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) {
			this.get_hitTestState().__setStageReference(stage);
		}
	},
	__setTransformDirty: function() {
		(openfl_display_InteractiveObject().default).prototype.__setTransformDirty.call(this);
		if(this.__currentState != null) {
			this.__currentState.__setTransformDirty();
		}
		if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) {
			this.get_hitTestState().__setTransformDirty();
		}
	},
	__update: function(transformOnly,updateChildren,maskGraphics) {
		(openfl_display_InteractiveObject().default).prototype.__update.call(this,transformOnly,updateChildren,maskGraphics);
		if(updateChildren) {
			if(this.__currentState != null) {
				this.__currentState.__update(transformOnly,true,maskGraphics);
			}
			if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) {
				this.get_hitTestState().__update(transformOnly,true,maskGraphics);
			}
		}
	},
	__updateChildren: function(transformOnly) {
		(openfl_display_InteractiveObject().default).prototype.__updateChildren.call(this,transformOnly);
		if(this.__currentState != null) {
			this.__currentState.__updateChildren(transformOnly);
		}
		if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) {
			this.get_hitTestState().__updateChildren(transformOnly);
		}
	},
	__updateTransforms: function(overrideTransform) {
		(openfl_display_InteractiveObject().default).prototype.__updateTransforms.call(this,overrideTransform);
		if(this.__currentState != null) {
			this.__currentState.__updateTransforms();
		}
		if(this.get_hitTestState() != null && this.get_hitTestState() != this.__currentState) {
			this.get_hitTestState().__updateTransforms();
		}
	},
	get_downState: function() {
		return this.__downState;
	},
	set_downState: function(downState) {
		if(this.__downState != null && this.__currentState == this.__downState) {
			this.set___currentState(this.__downState);
		}
		return this.__downState = downState;
	},
	get_hitTestState: function() {
		return this.__hitTestState;
	},
	set_hitTestState: function(hitTestState) {
		if(this.__hitTestState != null && this.__hitTestState != hitTestState) {
			if(this.__hitTestState != this.get_downState() && this.__hitTestState != this.get_upState() && this.__hitTestState != this.get_overState()) {
				this.__hitTestState.__renderParent = null;
			}
		}
		if(hitTestState != null) {
			hitTestState.__renderParent = this;
			hitTestState.__setRenderDirty();
		}
		return this.__hitTestState = hitTestState;
	},
	get_overState: function() {
		return this.__overState;
	},
	set_overState: function(overState) {
		if(this.__overState != null && this.__currentState == this.__overState) {
			this.set___currentState(overState);
		}
		return this.__overState = overState;
	},
	get_soundTransform: function() {
		if(this.__soundTransform == null) {
			this.__soundTransform = new (openfl_media_SoundTransform().default)();
		}
		return new (openfl_media_SoundTransform().default)(this.__soundTransform.volume,this.__soundTransform.pan);
	},
	set_soundTransform: function(value) {
		this.__soundTransform = new (openfl_media_SoundTransform().default)(value.volume,value.pan);
		return value;
	},
	get_upState: function() {
		return this.__upState;
	},
	set_upState: function(upState) {
		if(this.__upState != null && this.__currentState == this.__upState) {
			this.set___currentState(upState);
		}
		return this.__upState = upState;
	},
	set___currentState: function(value) {
		if(this.__currentState != null && this.__currentState != this.get_hitTestState()) {
			this.__currentState.__renderParent = null;
		}
		if(value != null && value.parent != null) {
			value.parent.removeChild(value);
		}
		if((openfl_display_DisplayObject().default).__supportDOM && this.__previousStates == null) {
			this.__previousStates = (openfl__$Vector_Vector_$Impl_$().default)._new();
		}
		if(value != this.__currentState) {
			if((openfl_display_DisplayObject().default).__supportDOM) {
				if(this.__currentState != null) {
					this.__currentState.__setStageReference(null);
					this.__previousStates.push(this.__currentState);
				}
				var index = this.__previousStates.indexOf(value,0);
				if(index > -1) {
					this.__previousStates.splice(index,1);
				}
			}
			if(value != null) {
				value.__renderParent = this;
				value.__setRenderDirty();
			}
			this.__setRenderDirty();
		}
		this.__currentState = value;
		return value;
	},
	__this_onMouseDown: function(event) {
		this.set___currentState(this.get_downState());
	},
	__this_onMouseOut: function(event) {
		this.__ignoreEvent = false;
		if(this.get_upState() != this.__currentState) {
			this.set___currentState(this.get_upState());
		}
	},
	__this_onMouseOver: function(event) {
		if(event.buttonDown) {
			this.__ignoreEvent = true;
		}
		if(this.get_overState() != this.__currentState && this.get_overState() != null && !this.__ignoreEvent) {
			this.set___currentState(this.get_overState());
		}
	},
	__this_onMouseUp: function(event) {
		this.__ignoreEvent = false;
		if(this.get_overState() != null) {
			this.set___currentState(this.get_overState());
		} else {
			this.set___currentState(this.get_upState());
		}
	}
});
SimpleButton.prototype.__class__ = $hxClasses["openfl.display.SimpleButton"] = SimpleButton;
// Init
Object.defineProperties(SimpleButton.prototype,{ "downState" : { get : function () { return this.get_downState (); }, set : function (v) { return this.set_downState (v); }}, "hitTestState" : { get : function () { return this.get_hitTestState (); }, set : function (v) { return this.set_hitTestState (v); }}, "overState" : { get : function () { return this.get_overState (); }, set : function (v) { return this.set_overState (v); }}, "soundTransform" : { get : function () { return this.get_soundTransform (); }, set : function (v) { return this.set_soundTransform (v); }}, "upState" : { get : function () { return this.get_upState (); }, set : function (v) { return this.set_upState (v); }}});
// Statics
// Export
exports.default = SimpleButton;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 391 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.SpreadMethod = module.exports.default = {
	PAD: "pad",
	REFLECT: "reflect",
	REPEAT: "repeat"
};
/***/ }),
/* 392 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(97);
/***/ }),
/* 393 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(394);
/***/ }),
/* 394 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Stage
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $bind = __webpack_require__(8).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function lime_app_IModule() {return __webpack_require__(146);}
function openfl_display_DisplayObjectContainer() {return __webpack_require__(96);}
function lime_ui_Gamepad() {return __webpack_require__(85);}
function lime_ui_Touch() {return __webpack_require__(109);}
function openfl_ui_GameInput() {return __webpack_require__(209);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_events_Event() {return __webpack_require__(9);}
function Std() {return __webpack_require__(4);}
function openfl_events_TextEvent() {return __webpack_require__(77);}
function openfl_events_FullScreenEvent() {return __webpack_require__(212);}
function openfl_display_Stage3D() {return __webpack_require__(141);}
function lime_graphics_RendererType() {return __webpack_require__(33);}
function Type() {return __webpack_require__(10);}
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function openfl__$internal_renderer_opengl_GLRenderer() {return __webpack_require__(162);}
function openfl__$internal_renderer_canvas_CanvasRenderer() {return __webpack_require__(68);}
function openfl__$internal_renderer_dom_DOMRenderer() {return __webpack_require__(52);}
function openfl_events_UncaughtErrorEvent() {return __webpack_require__(220);}
function openfl_Lib() {return __webpack_require__(25);}
function haxe_CallStack() {return __webpack_require__(121);}
function Reflect() {return __webpack_require__(5);}
function openfl_events_MouseEvent() {return __webpack_require__(113);}
function lime_ui__$KeyModifier_KeyModifier_$Impl_$() {return __webpack_require__(200);}
function openfl_ui_Keyboard() {return __webpack_require__(221);}
function openfl_events_KeyboardEvent() {return __webpack_require__(222);}
function openfl_geom_Point() {return __webpack_require__(29);}
function js_Boot() {return __webpack_require__(20);}
function openfl_display_InteractiveObject() {return __webpack_require__(75);}
function openfl_ui_Mouse() {return __webpack_require__(223);}
function openfl_ui__$MouseCursor_MouseCursor_$Impl_$() {return __webpack_require__(417);}
function lime__$backend_html5_HTML5Mouse() {return __webpack_require__(224);}
function HxOverrides() {return __webpack_require__(7);}
function openfl__$internal_TouchData() {return __webpack_require__(418);}
function openfl_events_TouchEvent() {return __webpack_require__(114);}
function StringTools() {return __webpack_require__(12);}
function openfl_events_FocusEvent() {return __webpack_require__(225);}
function openfl_display_LoaderInfo() {return __webpack_require__(139);}
function js_Browser() {return __webpack_require__(11);}
function lime_ui_Window() {return __webpack_require__(147);}
function lime_app_Application() {return __webpack_require__(63);}
function openfl_geom_Matrix() {return __webpack_require__(28);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function haxe_ds_IntMap() {return __webpack_require__(22);}
// Constructor
var Stage = function(width,height,color,documentClass,windowConfig) {
	if(height == null) {
		height = 0;
	}
	if(width == null) {
		width = 0;
	}
	(openfl_display_DisplayObjectContainer().default).call(this);
	if(!isNaN(width)) {
		if((openfl_Lib().default).get_current().__loaderInfo == null) {
			(openfl_Lib().default).get_current().__loaderInfo = (openfl_display_LoaderInfo().default).create(null);
			(openfl_Lib().default).get_current().__loaderInfo.content = (openfl_Lib().default).get_current();
		}
		var resizable = width == 0 && width == 0;
		this.element = (js_Browser().default).get_document().createElement("div");
		if(resizable) {
			this.element.style.width = "100%";
			this.element.style.height = "100%";
		}
		if(windowConfig == null) {
			windowConfig = { };
		}
		windowConfig.width = width;
		windowConfig.height = height;
		windowConfig.element = this.element;
		windowConfig.resizable = resizable;
		if(!(Reflect().default).hasField(windowConfig,"stencilBuffer")) {
			windowConfig.stencilBuffer = true;
		}
		if(!(Reflect().default).hasField(windowConfig,"depthBuffer")) {
			windowConfig.depthBuffer = true;
		}
		if(!(Reflect().default).hasField(windowConfig,"background")) {
			windowConfig.background = null;
		}
		this.window = new (lime_ui_Window().default)(windowConfig);
		this.window.stage = this;
		var app = new (lime_app_Application().default)();
		app.create({ });
		app.createWindow(this.window);
		app.exec();
		this.set_color(color);
	} else {
		this.window = width;
		this.set_color(height);
	}
	this.set_name(null);
	this.__contentsScaleFactor = this.window.get_scale();
	this.__deltaTime = 0;
	this.__displayState = "normal";
	this.__mouseX = 0;
	this.__mouseY = 0;
	this.__lastClickTime = 0;
	this.__logicalWidth = 0;
	this.__logicalHeight = 0;
	this.__displayMatrix = new (openfl_geom_Matrix().default)();
	this.__renderDirty = true;
	this.__wasFullscreen = this.window.get_fullscreen();
	this.stage3Ds = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.stage3Ds.push(new (openfl_display_Stage3D().default)());
	this.__resize();
	this.stage = this;
	this.align = "topLeft";
	this.allowsFullScreen = false;
	this.allowsFullScreenInteractive = false;
	this.quality = "high";
	this.scaleMode = "noScale";
	this.showDefaultContextMenu = true;
	this.softKeyboardRect = new (openfl_geom_Rectangle().default)();
	this.stageFocusRect = true;
	this.__macKeyboard = /AppleWebKit/.test (navigator.userAgent) && /Mobile\/\w+/.test (navigator.userAgent) || /Mac/.test (navigator.platform);
	this.__clearBeforeRender = true;
	this.__stack = [];
	this.__rollOutStack = [];
	this.__touchData = new (haxe_ds_IntMap().default)();
	if((openfl_Lib().default).get_current().stage == null) {
		this.stage.addChild((openfl_Lib().default).get_current());
	}
	if(!this.window.config.resizable) {
		this.__setLogicalSize(this.window.config.width,this.window.config.height);
	}
	if(documentClass != null) {
		(openfl_display_DisplayObject().default).__initStage = this;
		var sprite = (Type().default).createInstance(documentClass,[]);
		this.addChild(sprite);
	}
	(lime_app_Application().default).current.addModule(this);
}
// Meta
Stage.__name__ = ["openfl","display","Stage"];
Stage.__interfaces__ = [(lime_app_IModule().default)];
Stage.__super__ = (openfl_display_DisplayObjectContainer().default);
Stage.prototype = $extend((openfl_display_DisplayObjectContainer().default).prototype, {
	addRenderer: function(renderer) {
		var f = $bind(this,this.render);
		var a1 = renderer;
		var tmp = function() {
			f(a1);
		};
		renderer.onRender.add(tmp);
		var f1 = $bind(this,this.onRenderContextLost);
		var a11 = renderer;
		var tmp1 = function() {
			f1(a11);
		};
		renderer.onContextLost.add(tmp1);
		var f2 = $bind(this,this.onRenderContextRestored);
		var a12 = renderer;
		var tmp2 = function(a2) {
			f2(a12,a2);
		};
		renderer.onContextRestored.add(tmp2);
	},
	addWindow: function(window) {
		if(this.window != window) {
			return;
		}
		var f = $bind(this,this.onWindowActivate);
		var a1 = window;
		var tmp = function() {
			f(a1);
		};
		window.onActivate.add(tmp);
		var f1 = $bind(this,this.onWindowClose);
		var a11 = window;
		var tmp1 = function() {
			f1(a11);
		};
		window.onClose.add(tmp1,false,-9000);
		var f2 = $bind(this,this.onWindowCreate);
		var a12 = window;
		var tmp2 = function() {
			f2(a12);
		};
		window.onCreate.add(tmp2);
		var f3 = $bind(this,this.onWindowDeactivate);
		var a13 = window;
		var tmp3 = function() {
			f3(a13);
		};
		window.onDeactivate.add(tmp3);
		var f4 = $bind(this,this.onWindowDropFile);
		var a14 = window;
		var tmp4 = function(a2) {
			f4(a14,a2);
		};
		window.onDropFile.add(tmp4);
		var f5 = $bind(this,this.onWindowEnter);
		var a15 = window;
		var tmp5 = function() {
			f5(a15);
		};
		window.onEnter.add(tmp5);
		var f6 = $bind(this,this.onWindowFocusIn);
		var a16 = window;
		var tmp6 = function() {
			f6(a16);
		};
		window.onFocusIn.add(tmp6);
		var f7 = $bind(this,this.onWindowFocusOut);
		var a17 = window;
		var tmp7 = function() {
			f7(a17);
		};
		window.onFocusOut.add(tmp7);
		var f8 = $bind(this,this.onWindowFullscreen);
		var a18 = window;
		var tmp8 = function() {
			f8(a18);
		};
		window.onFullscreen.add(tmp8);
		var f9 = $bind(this,this.onKeyDown);
		var a19 = window;
		var tmp9 = function(a21,a3) {
			f9(a19,a21,a3);
		};
		window.onKeyDown.add(tmp9);
		var f10 = $bind(this,this.onKeyUp);
		var a110 = window;
		var tmp10 = function(a22,a31) {
			f10(a110,a22,a31);
		};
		window.onKeyUp.add(tmp10);
		var f11 = $bind(this,this.onWindowLeave);
		var a111 = window;
		var tmp11 = function() {
			f11(a111);
		};
		window.onLeave.add(tmp11);
		var f12 = $bind(this,this.onWindowMinimize);
		var a112 = window;
		var tmp12 = function() {
			f12(a112);
		};
		window.onMinimize.add(tmp12);
		var f13 = $bind(this,this.onMouseDown);
		var a113 = window;
		var tmp13 = function(x,y,a23) {
			f13(a113,x,y,a23);
		};
		window.onMouseDown.add(tmp13);
		var f14 = $bind(this,this.onMouseMove);
		var a114 = window;
		var tmp14 = function(x1,y1) {
			f14(a114,x1,y1);
		};
		window.onMouseMove.add(tmp14);
		var f15 = $bind(this,this.onMouseMoveRelative);
		var a115 = window;
		var tmp15 = function(x2,y2) {
			f15(a115,x2,y2);
		};
		window.onMouseMoveRelative.add(tmp15);
		var f16 = $bind(this,this.onMouseUp);
		var a116 = window;
		var tmp16 = function(x3,y3,a24) {
			f16(a116,x3,y3,a24);
		};
		window.onMouseUp.add(tmp16);
		var f17 = $bind(this,this.onMouseWheel);
		var a117 = window;
		var tmp17 = function(a25,a32) {
			f17(a117,a25,a32);
		};
		window.onMouseWheel.add(tmp17);
		var f18 = $bind(this,this.onWindowMove);
		var a118 = window;
		var tmp18 = function(x4,y4) {
			f18(a118,x4,y4);
		};
		window.onMove.add(tmp18);
		var f19 = $bind(this,this.onWindowResize);
		var a119 = window;
		var tmp19 = function(a26,a33) {
			f19(a119,a26,a33);
		};
		window.onResize.add(tmp19);
		var f20 = $bind(this,this.onWindowRestore);
		var a120 = window;
		var tmp20 = function() {
			f20(a120);
		};
		window.onRestore.add(tmp20);
		var f21 = $bind(this,this.onTextEdit);
		var a121 = window;
		var tmp21 = function(a27,a34,a4) {
			f21(a121,a27,a34,a4);
		};
		window.onTextEdit.add(tmp21);
		var f22 = $bind(this,this.onTextInput);
		var a122 = window;
		var tmp22 = function(a28) {
			f22(a122,a28);
		};
		window.onTextInput.add(tmp22);
		if(window.id > -1) {
			this.onWindowCreate(window);
		}
	},
	registerModule: function(application) {
		application.onExit.add($bind(this,this.onModuleExit),false,0);
		application.onUpdate.add($bind(this,this.update));
		var gamepad = (lime_ui_Gamepad().default).devices.iterator();
		while(gamepad.hasNext()) {
			var gamepad1 = gamepad.next();
			this.__onGamepadConnect(gamepad1);
		}
		(lime_ui_Gamepad().default).onConnect.add($bind(this,this.__onGamepadConnect));
		(lime_ui_Touch().default).onStart.add($bind(this,this.onTouchStart));
		(lime_ui_Touch().default).onMove.add($bind(this,this.onTouchMove));
		(lime_ui_Touch().default).onEnd.add($bind(this,this.onTouchEnd));
	},
	removeRenderer: function(renderer) {
	},
	removeWindow: function(window) {
	},
	setPreloader: function(preloader) {
	},
	unregisterModule: function(application) {
		application.onExit.remove($bind(this,this.onModuleExit));
		application.onUpdate.remove($bind(this,this.update));
		(lime_ui_Gamepad().default).onConnect.remove($bind(this,this.__onGamepadConnect));
		(lime_ui_Touch().default).onStart.remove($bind(this,this.onTouchStart));
		(lime_ui_Touch().default).onMove.remove($bind(this,this.onTouchMove));
		(lime_ui_Touch().default).onEnd.remove($bind(this,this.onTouchEnd));
	},
	invalidate: function() {
		this.__invalidated = true;
	},
	localToGlobal: function(pos) {
		return pos.clone();
	},
	onGamepadAxisMove: function(gamepad,axis,value) {
		try {
			(openfl_ui_GameInput().default).__onGamepadAxisMove(gamepad,axis,value);
		} catch( e ) {
			if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
			this.__handleError(e);
		}
	},
	onGamepadButtonDown: function(gamepad,button) {
		try {
			(openfl_ui_GameInput().default).__onGamepadButtonDown(gamepad,button);
		} catch( e ) {
			if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
			this.__handleError(e);
		}
	},
	onGamepadButtonUp: function(gamepad,button) {
		try {
			(openfl_ui_GameInput().default).__onGamepadButtonUp(gamepad,button);
		} catch( e ) {
			if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
			this.__handleError(e);
		}
	},
	onGamepadConnect: function(gamepad) {
		try {
			(openfl_ui_GameInput().default).__onGamepadConnect(gamepad);
		} catch( e ) {
			if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
			this.__handleError(e);
		}
	},
	onGamepadDisconnect: function(gamepad) {
		try {
			(openfl_ui_GameInput().default).__onGamepadDisconnect(gamepad);
		} catch( e ) {
			if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
			this.__handleError(e);
		}
	},
	onJoystickAxisMove: function(joystick,axis,value) {
	},
	onJoystickButtonDown: function(joystick,button) {
	},
	onJoystickButtonUp: function(joystick,button) {
	},
	onJoystickConnect: function(joystick) {
	},
	onJoystickDisconnect: function(joystick) {
	},
	onJoystickHatMove: function(joystick,hat,position) {
	},
	onJoystickTrackballMove: function(joystick,trackball,value) {
	},
	onKeyDown: function(window,keyCode,modifier) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__onKey("keyDown",keyCode,modifier);
	},
	onKeyUp: function(window,keyCode,modifier) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__onKey("keyUp",keyCode,modifier);
	},
	onModuleExit: function(code) {
		if(this.window != null) {
			this.__broadcastEvent(new (openfl_events_Event().default)("deactivate"));
		}
	},
	onMouseDown: function(window,x,y,button) {
		if(this.window == null || this.window != window) {
			return;
		}
		var type;
		switch(button) {
		case 1:
			type = "middleMouseDown";
			break;
		case 2:
			type = "rightMouseDown";
			break;
		default:
			type = "mouseDown";
		}
		this.__onMouse(type,(Std().default)["int"](x * window.get_scale()),(Std().default)["int"](y * window.get_scale()),button);
	},
	onMouseMove: function(window,x,y) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__onMouse("mouseMove",(Std().default)["int"](x * window.get_scale()),(Std().default)["int"](y * window.get_scale()),0);
	},
	onMouseMoveRelative: function(window,x,y) {
	},
	onMouseUp: function(window,x,y,button) {
		if(this.window == null || this.window != window) {
			return;
		}
		var type;
		switch(button) {
		case 1:
			type = "middleMouseUp";
			break;
		case 2:
			type = "rightMouseUp";
			break;
		default:
			type = "mouseUp";
		}
		this.__onMouse(type,(Std().default)["int"](x * window.get_scale()),(Std().default)["int"](y * window.get_scale()),button);
		if(!this.showDefaultContextMenu && button == 2) {
			window.onMouseUp.cancel();
		}
	},
	onMouseWheel: function(window,deltaX,deltaY) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__onMouseWheel((Std().default)["int"](deltaX * window.get_scale()),(Std().default)["int"](deltaY * window.get_scale()));
	},
	onPreloadComplete: function() {
	},
	onPreloadProgress: function(loaded,total) {
	},
	onRenderContextLost: function(renderer) {
		this.__renderer = null;
	},
	onRenderContextRestored: function(renderer,context) {
		this.__createRenderer();
	},
	onTextEdit: function(window,text,start,length) {
	},
	onTextInput: function(window,text) {
		if(this.window == null || this.window != window) {
			return;
		}
		var stack = [];
		if(this.__focus == null) {
			this.__getInteractive(stack);
		} else {
			this.__focus.__getInteractive(stack);
		}
		var event = new (openfl_events_TextEvent().default)("textInput",true,false,text);
		if(stack.length > 0) {
			stack.reverse();
			this.__dispatchStack(event,stack);
		} else {
			this.__dispatchEvent(event);
		}
	},
	onTouchMove: function(touch) {
		this.__onTouch("touchMove",touch);
	},
	onTouchEnd: function(touch) {
		if(this.__primaryTouch == touch) {
			this.__primaryTouch = null;
		}
		this.__onTouch("touchEnd",touch);
	},
	onTouchStart: function(touch) {
		if(this.__primaryTouch == null) {
			this.__primaryTouch = touch;
		}
		this.__onTouch("touchBegin",touch);
	},
	onWindowActivate: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
	},
	onWindowClose: function(window) {
		if(this.window == window) {
			this.window = null;
		}
		this.__primaryTouch = null;
		this.__broadcastEvent(new (openfl_events_Event().default)("deactivate"));
	},
	onWindowCreate: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
		if(window.renderer != null) {
			this.__createRenderer();
		}
	},
	onWindowDeactivate: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
	},
	onWindowDropFile: function(window,file) {
	},
	onWindowEnter: function(window) {
	},
	onWindowFocusIn: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__renderDirty = true;
		this.__broadcastEvent(new (openfl_events_Event().default)("activate"));
		this.set_focus(this.__cacheFocus);
	},
	onWindowFocusOut: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__primaryTouch = null;
		this.__broadcastEvent(new (openfl_events_Event().default)("deactivate"));
		var currentFocus = this.get_focus();
		this.set_focus(null);
		this.__cacheFocus = currentFocus;
	},
	onWindowFullscreen: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__resize();
		if(!this.__wasFullscreen) {
			this.__wasFullscreen = true;
			if(this.__displayState == "normal") {
				this.__displayState = "fullScreenInteractive";
			}
			this.__dispatchEvent(new (openfl_events_FullScreenEvent().default)("fullScreen",false,false,false,true));
		}
	},
	onWindowLeave: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__dispatchEvent(new (openfl_events_Event().default)("mouseLeave"));
	},
	onWindowMinimize: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
	},
	onWindowMove: function(window,x,y) {
	},
	onWindowResize: function(window,width,height) {
		if(this.window == null || this.window != window) {
			return;
		}
		this.__renderDirty = true;
		this.__resize();
		if(this.__wasFullscreen && !window.get_fullscreen()) {
			this.__wasFullscreen = false;
			this.__displayState = "normal";
			this.__dispatchEvent(new (openfl_events_FullScreenEvent().default)("fullScreen",false,false,true,true));
		}
	},
	onWindowRestore: function(window) {
		if(this.window == null || this.window != window) {
			return;
		}
	},
	render: function(renderer) {
		if(renderer.window == null || renderer.window != this.window) {
			return;
		}
		if(this.__rendering) {
			return;
		}
		this.__rendering = true;
		if(this.__renderer != null && ((openfl_display_Stage3D().default).__active || this.stage3Ds.get(0).__contextRequested)) {
			this.__renderer.clear();
			this.__renderer.renderStage3D();
			this.__renderDirty = true;
		}
		this.__broadcastEvent(new (openfl_events_Event().default)("enterFrame"));
		this.__broadcastEvent(new (openfl_events_Event().default)("frameConstructed"));
		this.__broadcastEvent(new (openfl_events_Event().default)("exitFrame"));
		if(this.__invalidated) {
			this.__invalidated = false;
			this.__broadcastEvent(new (openfl_events_Event().default)("render"));
		}
		this.__renderable = true;
		this.__enterFrame(this.__deltaTime);
		this.__deltaTime = 0;
		this.__update(false,true);
		if(this.__renderer != null && this.__renderDirty) {
			if(!(openfl_display_Stage3D().default).__active) {
				this.__renderer.clear();
			}
			if(renderer.type == (lime_graphics_RendererType().default).CAIRO) {
				var _g = renderer.context;
				if((Type().default).enumIndex(_g) == 4) {
					var cairo = _g[2];
				}
			}
			this.__renderer.render();
		} else {
			renderer.onRender.cancel();
		}
		this.__rendering = false;
	},
	update: function(deltaTime) {
		this.__deltaTime = deltaTime;
	},
	__broadcastEvent: function(event) {
		if((openfl_display_DisplayObject().default).__broadcastEvents.exists(event.type)) {
			var dispatchers = (openfl_display_DisplayObject().default).__broadcastEvents.get(event.type);
			var _g = 0;
			while(_g < dispatchers.length) {
				var dispatcher = dispatchers[_g];
				++_g;
				if(dispatcher.stage == this || dispatcher.stage == null) {
					try {
						dispatcher.__dispatch(event);
					} catch( e ) {
						if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
						this.__handleError(e);
					}
				}
			}
		}
	},
	__createRenderer: function() {
		var _g = this.window.renderer.context;
		switch((Type().default).enumIndex(_g)) {
		case 0:
			var gl = _g[2];
			this.__renderer = new (openfl__$internal_renderer_opengl_GLRenderer().default)(this,gl);
			break;
		case 1:
			var context = _g[2];
			this.__renderer = new (openfl__$internal_renderer_canvas_CanvasRenderer().default)(this,context);
			break;
		case 2:
			var element = _g[2];
			this.__renderer = new (openfl__$internal_renderer_dom_DOMRenderer().default)(this,element);
			break;
		case 4:
			var cairo = _g[2];
			break;
		case 5:
			var ctx = _g[2];
			break;
		default:
		}
	},
	__dispatchEvent: function(event) {
		try {
			return (openfl_display_DisplayObjectContainer().default).prototype.__dispatchEvent.call(this,event);
		} catch( e ) {
			if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
			this.__handleError(e);
			return false;
		}
	},
	__dispatchStack: function(event,stack) {
		try {
			var target;
			var length = stack.length;
			if(length == 0) {
				event.eventPhase = 2;
				target = event.target;
				target.__dispatch(event);
			} else {
				event.eventPhase = 1;
				event.target = stack[stack.length - 1];
				var _g1 = 0;
				var _g = length - 1;
				while(_g1 < _g) {
					var i = _g1++;
					stack[i].__dispatch(event);
					if(event.__isCanceled) {
						return;
					}
				}
				event.eventPhase = 2;
				target = event.target;
				target.__dispatch(event);
				if(event.__isCanceled) {
					return;
				}
				if(event.bubbles) {
					event.eventPhase = 3;
					var i1 = length - 2;
					while(i1 >= 0) {
						stack[i1].__dispatch(event);
						if(event.__isCanceled) {
							return;
						}
						--i1;
					}
				}
			}
		} catch( e ) {
			if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
			this.__handleError(e);
		}
	},
	__dispatchTarget: function(target,event) {
		try {
			return target.__dispatchEvent(event);
		} catch( e ) {
			if (e instanceof (js__$Boot_HaxeError().default)) e = e.val;
			this.__handleError(e);
			return false;
		}
	},
	__drag: function(mouse) {
		var parent = this.__dragObject.parent;
		if(parent != null) {
			parent.__getWorldTransform().__transformInversePoint(mouse);
		}
		var x = mouse.x + this.__dragOffsetX;
		var y = mouse.y + this.__dragOffsetY;
		if(this.__dragBounds != null) {
			if(x < this.__dragBounds.x) {
				x = this.__dragBounds.x;
			} else if(x > this.__dragBounds.get_right()) {
				x = this.__dragBounds.get_right();
			}
			if(y < this.__dragBounds.y) {
				y = this.__dragBounds.y;
			} else if(y > this.__dragBounds.get_bottom()) {
				y = this.__dragBounds.get_bottom();
			}
		}
		this.__dragObject.set_x(x);
		this.__dragObject.set_y(y);
	},
	__getInteractive: function(stack) {
		if(stack != null) {
			stack.push(this);
		}
		return true;
	},
	__globalToLocal: function(global,local) {
		if(global != local) {
			local.copyFrom(global);
		}
		return local;
	},
	__handleError: function(e) {
		var event = new (openfl_events_UncaughtErrorEvent().default)("uncaughtError",true,true,e);
		(openfl_Lib().default).get_current().__loaderInfo.uncaughtErrorEvents.dispatchEvent(event);
		if(!event.__preventDefault) {
			try {
				var exc = (haxe_CallStack().default).lastException;
				if(exc != null && (Reflect().default).hasField(exc,"stack") && exc.stack != null && exc.stack != "") {
					console.log(exc.stack);
					e.stack = exc.stack;
				} else {
					var msg = (haxe_CallStack().default).toString((haxe_CallStack().default).callStack());
					console.log(msg);
				}
			} catch( e2 ) {
			}
			throw e;
		}
	},
	__onKey: function(type,keyCode,modifier) {
		(openfl_events_MouseEvent().default).__altKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_altKey(modifier);
		(openfl_events_MouseEvent().default).__commandKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier);
		(openfl_events_MouseEvent().default).__ctrlKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier);
		(openfl_events_MouseEvent().default).__shiftKey = (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier);
		var stack = [];
		if(this.__focus == null) {
			this.__getInteractive(stack);
		} else {
			this.__focus.__getInteractive(stack);
		}
		if(stack.length > 0) {
			var keyLocation = (openfl_ui_Keyboard().default).__getKeyLocation(keyCode);
			var keyCode1 = (openfl_ui_Keyboard().default).__convertKeyCode(keyCode);
			var charCode = (openfl_ui_Keyboard().default).__getCharCode(keyCode1,(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier));
			var event = new (openfl_events_KeyboardEvent().default)(type,true,true,charCode,keyCode1,keyLocation,this.__macKeyboard ? (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier) || (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier) : (lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier),(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_altKey(modifier),(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_shiftKey(modifier),(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_ctrlKey(modifier),(lime_ui__$KeyModifier_KeyModifier_$Impl_$().default).get_metaKey(modifier));
			stack.reverse();
			this.__dispatchStack(event,stack);
			if(event.__preventDefault) {
				if(type == "keyDown") {
					this.window.onKeyDown.cancel();
				} else {
					this.window.onKeyUp.cancel();
				}
			}
		}
	},
	__onGamepadConnect: function(gamepad) {
		this.onGamepadConnect(gamepad);
		var f = $bind(this,this.onGamepadAxisMove);
		var a1 = gamepad;
		var tmp = function(a2,a3) {
			f(a1,a2,a3);
		};
		gamepad.onAxisMove.add(tmp);
		var f1 = $bind(this,this.onGamepadButtonDown);
		var a11 = gamepad;
		var tmp1 = function(a21) {
			f1(a11,a21);
		};
		gamepad.onButtonDown.add(tmp1);
		var f2 = $bind(this,this.onGamepadButtonUp);
		var a12 = gamepad;
		var tmp2 = function(a22) {
			f2(a12,a22);
		};
		gamepad.onButtonUp.add(tmp2);
		var f3 = $bind(this,this.onGamepadDisconnect);
		var a13 = gamepad;
		var tmp3 = function() {
			f3(a13);
		};
		gamepad.onDisconnect.add(tmp3);
	},
	__onMouse: function(type,x,y,button) {
		if(button > 2) {
			return;
		}
		var targetPoint = (openfl_geom_Point().default).__pool.get();
		targetPoint.setTo(x,y);
		this.__displayMatrix.__transformInversePoint(targetPoint);
		this.__mouseX = targetPoint.x;
		this.__mouseY = targetPoint.y;
		var stack = [];
		var target = null;
		if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack,true,this)) {
			target = stack[stack.length - 1];
		} else {
			target = this;
			stack = [this];
		}
		if(target == null) {
			target = this;
		}
		var clickType = null;
		switch(type) {
		case "middleMouseDown":
			this.__mouseDownMiddle = target;
			break;
		case "middleMouseUp":
			if(this.__mouseDownMiddle == target) {
				clickType = "middleClick";
			}
			this.__mouseDownMiddle = null;
			break;
		case "mouseDown":
			if(target.__allowMouseFocus()) {
				this.set_focus(target);
			} else {
				this.set_focus(null);
			}
			this.__mouseDownLeft = target;
			(openfl_events_MouseEvent().default).__buttonDown = true;
			break;
		case "mouseUp":
			if(this.__mouseDownLeft != null) {
				(openfl_events_MouseEvent().default).__buttonDown = false;
				if(this.__mouseX < 0 || this.__mouseY < 0) {
					this.__dispatchEvent((openfl_events_MouseEvent().default).__create("releaseOutside",1,this.__mouseX,this.__mouseY,new (openfl_geom_Point().default)(this.__mouseX,this.__mouseY),this));
				} else if(this.__mouseDownLeft == target) {
					clickType = "click";
				}
				this.__mouseDownLeft = null;
			}
			break;
		case "rightMouseDown":
			this.__mouseDownRight = target;
			break;
		case "rightMouseUp":
			if(this.__mouseDownRight == target) {
				clickType = "rightClick";
			}
			this.__mouseDownRight = null;
			break;
		default:
		}
		var localPoint = (openfl_geom_Point().default).__pool.get();
		this.__dispatchStack((openfl_events_MouseEvent().default).__create(type,button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target),stack);
		if(clickType != null) {
			this.__dispatchStack((openfl_events_MouseEvent().default).__create(clickType,button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target),stack);
			if(type == "mouseUp" && ((js_Boot().default).__cast(target , (openfl_display_InteractiveObject().default))).doubleClickEnabled) {
				var currentTime = (openfl_Lib().default).getTimer();
				if(currentTime - this.__lastClickTime < 500) {
					this.__dispatchStack((openfl_events_MouseEvent().default).__create("doubleClick",button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target),stack);
					this.__lastClickTime = 0;
				} else {
					this.__lastClickTime = currentTime;
				}
			}
		}
		if((openfl_ui_Mouse().default).__cursor == "auto") {
			var cursor = null;
			if(this.__mouseDownLeft != null) {
				cursor = this.__mouseDownLeft.__getCursor();
			} else {
				var _g = 0;
				while(_g < stack.length) {
					var target1 = stack[_g];
					++_g;
					cursor = target1.__getCursor();
					if(cursor != null) {
						if((openfl_ui__$MouseCursor_MouseCursor_$Impl_$().default).fromLimeCursor(cursor) != this.__cursor && !(lime__$backend_html5_HTML5Mouse().default).__hidden) {
							var tmp;
							switch((Type().default).enumIndex(cursor)) {
							case 0:
								tmp = "default";
								break;
							case 1:
								tmp = "crosshair";
								break;
							case 3:
								tmp = "move";
								break;
							case 4:
								tmp = "pointer";
								break;
							case 5:
								tmp = "nesw-resize";
								break;
							case 6:
								tmp = "ns-resize";
								break;
							case 7:
								tmp = "nwse-resize";
								break;
							case 8:
								tmp = "ew-resize";
								break;
							case 9:
								tmp = "text";
								break;
							case 10:
								tmp = "wait";
								break;
							case 11:
								tmp = "wait";
								break;
							default:
								tmp = "auto";
							}
							this.window.backend.element.style.cursor = tmp;
							this.__cursor = (openfl_ui__$MouseCursor_MouseCursor_$Impl_$().default).fromLimeCursor(cursor);
						}
						break;
					}
				}
			}
			if(cursor == null) {
				if(this.__cursor != null && !(lime__$backend_html5_HTML5Mouse().default).__hidden) {
					this.window.backend.element.style.cursor = "default";
					this.__cursor = null;
				}
			}
		}
		var event;
		if(target != this.__mouseOverTarget) {
			if(this.__mouseOverTarget != null) {
				event = (openfl_events_MouseEvent().default).__create("mouseOut",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),this.__mouseOverTarget);
				this.__dispatchTarget(this.__mouseOverTarget,event);
			}
		}
		var _g1 = 0;
		var _g11 = this.__rollOutStack;
		while(_g1 < _g11.length) {
			var target2 = _g11[_g1];
			++_g1;
			if(stack.indexOf(target2) == -1) {
				(HxOverrides().default).remove(this.__rollOutStack,target2);
				event = (openfl_events_MouseEvent().default).__create("rollOut",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),this.__mouseOverTarget);
				event.bubbles = false;
				this.__dispatchTarget(target2,event);
			}
		}
		var _g2 = 0;
		while(_g2 < stack.length) {
			var target3 = stack[_g2];
			++_g2;
			if(this.__rollOutStack.indexOf(target3) == -1 && this.__mouseOverTarget != null) {
				if(target3.hasEventListener("rollOver")) {
					event = (openfl_events_MouseEvent().default).__create("rollOver",button,this.__mouseX,this.__mouseY,this.__mouseOverTarget.__globalToLocal(targetPoint,localPoint),target3);
					event.bubbles = false;
					this.__dispatchTarget(target3,event);
				}
				if(target3.hasEventListener("rollOut")) {
					this.__rollOutStack.push(target3);
				}
			}
		}
		if(target != this.__mouseOverTarget) {
			if(target != null) {
				event = (openfl_events_MouseEvent().default).__create("mouseOver",button,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,localPoint),target);
				event.bubbles = true;
				this.__dispatchTarget(target,event);
			}
			this.__mouseOverTarget = target;
		}
		if(this.__dragObject != null) {
			this.__drag(targetPoint);
			var dropTarget = null;
			if(this.__mouseOverTarget == this.__dragObject) {
				var cacheMouseEnabled = this.__dragObject.mouseEnabled;
				var cacheMouseChildren = this.__dragObject.mouseChildren;
				this.__dragObject.mouseEnabled = false;
				this.__dragObject.mouseChildren = false;
				var stack1 = [];
				if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack1,true,this)) {
					dropTarget = stack1[stack1.length - 1];
				}
				this.__dragObject.mouseEnabled = cacheMouseEnabled;
				this.__dragObject.mouseChildren = cacheMouseChildren;
			} else if(this.__mouseOverTarget != this) {
				dropTarget = this.__mouseOverTarget;
			}
			this.__dragObject.dropTarget = dropTarget;
		}
		(openfl_geom_Point().default).__pool.release(targetPoint);
		(openfl_geom_Point().default).__pool.release(localPoint);
	},
	__onMouseWheel: function(deltaX,deltaY) {
		var x = this.__mouseX;
		var y = this.__mouseY;
		var stack = [];
		var target = null;
		if(this.__hitTest(this.__mouseX,this.__mouseY,true,stack,true,this)) {
			target = stack[stack.length - 1];
		} else {
			target = this;
			stack = [this];
		}
		if(target == null) {
			target = this;
		}
		var targetPoint = (openfl_geom_Point().default).__pool.get();
		targetPoint.setTo(x,y);
		this.__displayMatrix.__transformInversePoint(targetPoint);
		var delta = (Std().default)["int"](deltaY);
		this.__dispatchStack((openfl_events_MouseEvent().default).__create("mouseWheel",0,this.__mouseX,this.__mouseY,target.__globalToLocal(targetPoint,targetPoint),target,delta),stack);
		(openfl_geom_Point().default).__pool.release(targetPoint);
	},
	__onTouch: function(type,touch) {
		var targetPoint = (openfl_geom_Point().default).__pool.get();
		targetPoint.setTo(Math.round(touch.x * this.window.get_width() * this.window.get_scale()),Math.round(touch.y * this.window.get_height() * this.window.get_scale()));
		this.__displayMatrix.__transformInversePoint(targetPoint);
		var touchX = targetPoint.x;
		var touchY = targetPoint.y;
		var stack = [];
		var target = null;
		if(this.__hitTest(touchX,touchY,false,stack,true,this)) {
			target = stack[stack.length - 1];
		} else {
			target = this;
			stack = [this];
		}
		if(target == null) {
			target = this;
		}
		var touchId = touch.id;
		var touchData = null;
		if(this.__touchData.exists(touchId)) {
			touchData = this.__touchData.get(touchId);
		} else {
			touchData = (openfl__$internal_TouchData().default).__pool.get();
			touchData.reset();
			touchData.touch = touch;
			this.__touchData.set(touchId,touchData);
		}
		var touchType = null;
		var releaseTouchData = false;
		switch(type) {
		case "touchBegin":
			touchData.touchDownTarget = target;
			break;
		case "touchEnd":
			if(touchData.touchDownTarget == target) {
				touchType = "touchTap";
			}
			touchData.touchDownTarget = null;
			releaseTouchData = true;
			break;
		default:
		}
		var localPoint = (openfl_geom_Point().default).__pool.get();
		var isPrimaryTouchPoint = this.__primaryTouch == touch;
		var touchEvent = (openfl_events_TouchEvent().default).__create(type,null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target);
		touchEvent.touchPointID = touchId;
		touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
		this.__dispatchStack(touchEvent,stack);
		if(touchType != null) {
			touchEvent = (openfl_events_TouchEvent().default).__create(touchType,null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target);
			touchEvent.touchPointID = touchId;
			touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
			this.__dispatchStack(touchEvent,stack);
		}
		var touchOverTarget = touchData.touchOverTarget;
		if(target != touchOverTarget && touchOverTarget != null) {
			touchEvent = (openfl_events_TouchEvent().default).__create("touchOut",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),touchOverTarget);
			touchEvent.touchPointID = touchId;
			touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
			this.__dispatchTarget(touchOverTarget,touchEvent);
		}
		var touchOutStack = touchData.rollOutStack;
		var _g = 0;
		while(_g < touchOutStack.length) {
			var target1 = touchOutStack[_g];
			++_g;
			if(stack.indexOf(target1) == -1) {
				(HxOverrides().default).remove(touchOutStack,target1);
				touchEvent = (openfl_events_TouchEvent().default).__create("touchRollOut",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),touchOverTarget);
				touchEvent.touchPointID = touchId;
				touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
				touchEvent.bubbles = false;
				this.__dispatchTarget(target1,touchEvent);
			}
		}
		var _g1 = 0;
		while(_g1 < stack.length) {
			var target2 = stack[_g1];
			++_g1;
			if(touchOutStack.indexOf(target2) == -1) {
				if(target2.hasEventListener("touchRollOver")) {
					touchEvent = (openfl_events_TouchEvent().default).__create("touchRollOver",null,touchX,touchY,touchOverTarget.__globalToLocal(targetPoint,localPoint),target2);
					touchEvent.touchPointID = touchId;
					touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
					touchEvent.bubbles = false;
					this.__dispatchTarget(target2,touchEvent);
				}
				if(target2.hasEventListener("touchRollOut")) {
					touchOutStack.push(target2);
				}
			}
		}
		if(target != touchOverTarget) {
			if(target != null) {
				touchEvent = (openfl_events_TouchEvent().default).__create("touchOver",null,touchX,touchY,target.__globalToLocal(targetPoint,localPoint),target);
				touchEvent.touchPointID = touchId;
				touchEvent.isPrimaryTouchPoint = isPrimaryTouchPoint;
				touchEvent.bubbles = true;
				this.__dispatchTarget(target,touchEvent);
			}
			touchData.touchOverTarget = target;
		}
		(openfl_geom_Point().default).__pool.release(targetPoint);
		(openfl_geom_Point().default).__pool.release(localPoint);
		if(releaseTouchData) {
			this.__touchData.remove(touchId);
			touchData.reset();
			(openfl__$internal_TouchData().default).__pool.release(touchData);
		}
	},
	__resize: function() {
		var cacheWidth = this.stageWidth;
		var cacheHeight = this.stageHeight;
		var windowWidth = (Std().default)["int"](this.window.get_width() * this.window.get_scale());
		var windowHeight = (Std().default)["int"](this.window.get_height() * this.window.get_scale());
		this.__logicalWidth = windowWidth;
		this.__logicalHeight = windowHeight;
		this.__displayMatrix.identity();
		if(this.__logicalWidth == 0 && this.__logicalHeight == 0) {
			this.stageWidth = windowWidth;
			this.stageHeight = windowHeight;
		} else {
			this.stageWidth = this.__logicalWidth;
			this.stageHeight = this.__logicalHeight;
			var scaleX = windowWidth / this.stageWidth;
			var scaleY = windowHeight / this.stageHeight;
			var targetScale = Math.min(scaleX,scaleY);
			var offsetX = Math.round((windowWidth - this.stageWidth * targetScale) / 2);
			var offsetY = Math.round((windowHeight - this.stageHeight * targetScale) / 2);
			this.__displayMatrix.scale(targetScale,targetScale);
			this.__displayMatrix.translate(offsetX,offsetY);
		}
		var _g = 0;
		var _g1 = this.stage3Ds;
		while(_g < _g1.get_length()) {
			var stage3D = _g1.get(_g);
			++_g;
			stage3D.__resize(this.stageWidth,this.stageHeight);
		}
		if(this.__renderer != null) {
			this.__renderer.resize(windowWidth,windowHeight);
		}
		if(this.stageWidth != cacheWidth || this.stageHeight != cacheHeight) {
			this.__dispatchEvent(new (openfl_events_Event().default)("resize"));
		}
	},
	__setLogicalSize: function(width,height) {
		this.__logicalWidth = width;
		this.__logicalHeight = height;
		this.__resize();
	},
	__startDrag: function(sprite,lockCenter,bounds) {
		this.__dragBounds = bounds == null ? null : bounds.clone();
		this.__dragObject = sprite;
		if(this.__dragObject != null) {
			if(lockCenter) {
				this.__dragOffsetX = 0;
				this.__dragOffsetY = 0;
			} else {
				var mouse = (openfl_geom_Point().default).__pool.get();
				mouse.setTo(this.get_mouseX(),this.get_mouseY());
				var parent = this.__dragObject.parent;
				if(parent != null) {
					parent.__getWorldTransform().__transformInversePoint(mouse);
				}
				this.__dragOffsetX = this.__dragObject.get_x() - mouse.x;
				this.__dragOffsetY = this.__dragObject.get_y() - mouse.y;
				(openfl_geom_Point().default).__pool.release(mouse);
			}
		}
	},
	__stopDrag: function(sprite) {
		this.__dragBounds = null;
		this.__dragObject = null;
	},
	__update: function(transformOnly,updateChildren,maskGraphics) {
		if(transformOnly) {
			if(this.__transformDirty) {
				(openfl_display_DisplayObjectContainer().default).prototype.__update.call(this,true,updateChildren,maskGraphics);
				if(updateChildren) {
					this.__transformDirty = false;
				}
			}
		} else if(this.__transformDirty || this.__renderDirty) {
			(openfl_display_DisplayObjectContainer().default).prototype.__update.call(this,false,updateChildren,maskGraphics);
			if(updateChildren) {
				if((openfl_display_DisplayObject().default).__supportDOM) {
					this.__wasDirty = true;
				}
			}
		} else if(this.__wasDirty) {
			(openfl_display_DisplayObjectContainer().default).prototype.__update.call(this,false,updateChildren,maskGraphics);
			if(updateChildren) {
				this.__wasDirty = false;
			}
		}
	},
	get_color: function() {
		return this.__color;
	},
	set_color: function(value) {
		if(value == null) {
			this.__transparent = true;
			value = 0;
		} else {
			this.__transparent = false;
		}
		var r = (value & 16711680) >>> 16;
		var g = (value & 65280) >>> 8;
		var b = value & 255;
		this.__colorSplit = [r / 255,g / 255,b / 255];
		this.__colorString = "#" + (StringTools().default).hex(value & 16777215,6);
		return this.__color = value;
	},
	get_contentsScaleFactor: function() {
		return this.__contentsScaleFactor;
	},
	get_displayState: function() {
		return this.__displayState;
	},
	set_displayState: function(value) {
		if(this.window != null) {
			if(value == "normal") {
				if(this.window.get_fullscreen()) {
					this.window.set_fullscreen(false);
				}
			} else if(!this.window.get_fullscreen()) {
				this.window.set_fullscreen(true);
			}
		}
		return this.__displayState = value;
	},
	get_focus: function() {
		return this.__focus;
	},
	set_focus: function(value) {
		if(value != this.__focus) {
			var oldFocus = this.__focus;
			this.__focus = value;
			this.__cacheFocus = value;
			if(oldFocus != null) {
				var event = new (openfl_events_FocusEvent().default)("focusOut",true,false,value,false,0);
				var stack = [];
				oldFocus.__getInteractive(stack);
				stack.reverse();
				this.__dispatchStack(event,stack);
			}
			if(value != null) {
				var event1 = new (openfl_events_FocusEvent().default)("focusIn",true,false,oldFocus,false,0);
				var stack1 = [];
				value.__getInteractive(stack1);
				stack1.reverse();
				this.__dispatchStack(event1,stack1);
			}
		}
		return value;
	},
	get_frameRate: function() {
		if(this.application != null) {
			return this.application.get_frameRate();
		}
		return 0;
	},
	set_frameRate: function(value) {
		if(this.application != null) {
			return this.application.set_frameRate(value);
		}
		return value;
	},
	get_fullScreenHeight: function() {
		return Math.ceil(this.window.get_display().currentMode.height * this.window.get_scale());
	},
	get_fullScreenWidth: function() {
		return Math.ceil(this.window.get_display().currentMode.width * this.window.get_scale());
	},
	set_height: function(value) {
		return this.get_height();
	},
	get_mouseX: function() {
		return this.__mouseX;
	},
	get_mouseY: function() {
		return this.__mouseY;
	},
	set_rotation: function(value) {
		return 0;
	},
	set_scaleX: function(value) {
		return 0;
	},
	set_scaleY: function(value) {
		return 0;
	},
	set_transform: function(value) {
		return this.get_transform();
	},
	set_width: function(value) {
		return this.get_width();
	},
	set_x: function(value) {
		return 0;
	},
	set_y: function(value) {
		return 0;
	}
});
Stage.prototype.__class__ = $hxClasses["openfl.display.Stage"] = Stage;
// Init
Object.defineProperties(Stage.prototype,{ "color" : { get : function () { return this.get_color (); }, set : function (v) { return this.set_color (v); }}, "contentsScaleFactor" : { get : function () { return this.get_contentsScaleFactor (); }}, "displayState" : { get : function () { return this.get_displayState (); }, set : function (v) { return this.set_displayState (v); }}, "focus" : { get : function () { return this.get_focus (); }, set : function (v) { return this.set_focus (v); }}, "frameRate" : { get : function () { return this.get_frameRate (); }, set : function (v) { return this.set_frameRate (v); }}, "fullScreenHeight" : { get : function () { return this.get_fullScreenHeight (); }}, "fullScreenWidth" : { get : function () { return this.get_fullScreenWidth (); }}});
// Statics
// Export
exports.default = Stage;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 395 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLContext3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
function openfl__$internal_stage3D_SamplerState() {return __webpack_require__(214);}
function Reflect() {return __webpack_require__(5);}
function openfl_display3D_Context3D() {return __webpack_require__(62);}
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
function lime_math_Rectangle() {return __webpack_require__(41);}
function Std() {return __webpack_require__(4);}
function lime_math_Vector2() {return __webpack_require__(42);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function _$UInt_UInt_$Impl_$() {return __webpack_require__(43);}
function openfl_display3D_textures_Texture() {return __webpack_require__(104);}
function openfl_display3D_textures_RectangleTexture() {return __webpack_require__(142);}
function openfl_display3D_textures_CubeTexture() {return __webpack_require__(106);}
function openfl_errors_Error() {return __webpack_require__(30);}
function haxe_Log() {return __webpack_require__(47);}
function openfl_display_Stage3D() {return __webpack_require__(141);}
// Constructor
var GLContext3D = function(){}
// Meta
GLContext3D.__name__ = ["openfl","_internal","stage3D","opengl","GLContext3D"];
GLContext3D.prototype = {
	
};
GLContext3D.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLContext3D"] = GLContext3D;
// Init
// Statics
GLContext3D.create = function(context) {
	var gl = context.__renderSession.gl;
	var this1 = new Float32Array(512);
	context.__vertexConstants = this1;
	var this2 = new Float32Array(512);
	context.__fragmentConstants = this2;
	var array = [1.0,1.0,1.0,1.0];
	var this3;
	if(array != null) {
		this3 = new Float32Array(array);
	} else {
		this3 = null;
	}
	context.__positionScale = this3;
	context.__samplerDirty = 0;
	context.__samplerTextures = (openfl__$Vector_Vector_$Impl_$().default)._new(8);
	context.__samplerStates = [];
	var _g = 0;
	while(_g < 8) {
		var i = _g++;
		context.__samplerStates[i] = new (openfl__$internal_stage3D_SamplerState().default)(gl.LINEAR,gl.LINEAR,gl.CLAMP_TO_EDGE,gl.CLAMP_TO_EDGE);
	}
	context.maxBackBufferHeight = context.maxBackBufferWidth = gl.getParameter(gl.MAX_VIEWPORT_DIMS);
	context.__backBufferAntiAlias = 0;
	context.__backBufferEnableDepthAndStencil = true;
	context.__backBufferWantsBestResolution = false;
	context.__frameCount = 0;
	context.__rttDepthAndStencil = false;
	context.__samplerDirty = 0;
	context.__stencilCompareMode = "always";
	context.__stencilRef = 0;
	context.__stencilReadMask = 255;
	var anisoExtension = gl.getExtension("EXT_texture_filter_anisotropic");
	if(anisoExtension == null || !(Reflect().default).hasField(anisoExtension,"MAX_TEXTURE_MAX_ANISOTROPY_EXT")) {
		anisoExtension = gl.getExtension("MOZ_EXT_texture_filter_anisotropic");
	}
	if(anisoExtension == null || !(Reflect().default).hasField(anisoExtension,"MAX_TEXTURE_MAX_ANISOTROPY_EXT")) {
		anisoExtension = gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic");
	}
	context.__supportsPackedDepthStencil = true;
	(openfl_display3D_Context3D().default).DEPTH_STENCIL = gl.DEPTH_STENCIL;
	context.__supportsAnisotropicFiltering = anisoExtension != null;
	if(context.__supportsAnisotropicFiltering) {
		(openfl_display3D_Context3D().default).TEXTURE_MAX_ANISOTROPY_EXT = anisoExtension.TEXTURE_MAX_ANISOTROPY_EXT;
		var maxAnisotropy = gl.getParameter(anisoExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);
		context.__maxAnisotropyTexture2D = maxAnisotropy;
		context.__maxAnisotropyTexture2D = maxAnisotropy;
	}
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var vendor = gl.getParameter(gl.VENDOR);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var version = gl.getParameter(gl.VERSION);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var renderer = gl.getParameter(gl.RENDERER);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var glslVersion = gl.getParameter(gl.SHADING_LANGUAGE_VERSION);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	context.driverInfo = "OpenGL" + " Vendor=" + vendor + " Version=" + version + " Renderer=" + renderer + " GLSL=" + glslVersion;
}
GLContext3D.clear = function(context,red,green,blue,alpha,depth,stencil,mask) {
	if(mask == null) {
		mask = 7;
	}
	if(stencil == null) {
		stencil = 0;
	}
	if(depth == null) {
		depth = 1;
	}
	if(alpha == null) {
		alpha = 1;
	}
	if(blue == null) {
		blue = 0;
	}
	if(green == null) {
		green = 0;
	}
	if(red == null) {
		red = 0;
	}
	var gl = context.__renderSession.gl;
	var clearMask = 0;
	if((mask & 1) != 0) {
		clearMask |= gl.COLOR_BUFFER_BIT;
		gl.clearColor(red,green,blue,alpha);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
	if((mask & 2) != 0) {
		clearMask |= gl.DEPTH_BUFFER_BIT;
		gl.depthMask(true);
		gl.clearDepthf(depth);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
	if((mask & 4) != 0) {
		clearMask |= gl.STENCIL_BUFFER_BIT;
		gl.clearStencil(stencil);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
	gl.clear(clearMask);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLContext3D.configureBackBuffer = function(context,width,height,antiAlias,enableDepthAndStencil,wantsBestResolution,wantsBestResolutionOnBrowserZoom) {
	if(wantsBestResolutionOnBrowserZoom == null) {
		wantsBestResolutionOnBrowserZoom = false;
	}
	if(wantsBestResolution == null) {
		wantsBestResolution = false;
	}
	if(enableDepthAndStencil == null) {
		enableDepthAndStencil = true;
	}
	GLContext3D.context = context;
	GLContext3D.gl = context.__renderSession.gl;
	GLContext3D.__updateBackbufferViewport();
	context.backBufferWidth = width;
	context.backBufferHeight = height;
	context.__backBufferAntiAlias = antiAlias;
	context.__backBufferEnableDepthAndStencil = enableDepthAndStencil;
	context.__backBufferWantsBestResolution = wantsBestResolution;
	(openfl_display3D_Context3D().default).__stateCache.clearSettings();
}
GLContext3D.dispose = function(context,recreate) {
	if(recreate == null) {
		recreate = true;
	}
}
GLContext3D.drawToBitmapData = function(context,destination) {
	var $window = context.__stage3D.__stage.window;
	if($window != null) {
		var image = $window.renderer.readPixels();
		var heightOffset = image.height - context.backBufferHeight;
		destination.image.copyPixels(image,new (lime_math_Rectangle().default)((Std().default)["int"](context.__stage3D.get_x()),(Std().default)["int"](context.__stage3D.get_y() + heightOffset),context.backBufferWidth,context.backBufferHeight),new (lime_math_Vector2().default)());
	}
}
GLContext3D.drawTriangles = function(context,indexBuffer,firstIndex,numTriangles) {
	if(numTriangles == null) {
		numTriangles = -1;
	}
	if(firstIndex == null) {
		firstIndex = 0;
	}
	if(context.__program == null) {
		return;
	}
	GLContext3D.context = context;
	GLContext3D.gl = context.__renderSession.gl;
	GLContext3D.__flushSamplerState();
	context.__program.__flush();
	var count = numTriangles == -1 ? indexBuffer.__numIndices : numTriangles * 3;
	GLContext3D.gl.bindBuffer(GLContext3D.gl.ELEMENT_ARRAY_BUFFER,indexBuffer.__id);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	GLContext3D.gl.drawElements(GLContext3D.gl.TRIANGLES,count,indexBuffer.__elementType,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(firstIndex));
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLContext3D.present = function(context) {
}
GLContext3D.setBlendFactors = function(context,sourceFactor,destinationFactor) {
	var updateSrc = (openfl_display3D_Context3D().default).__stateCache.updateBlendSrcFactor(sourceFactor);
	var updateDest = (openfl_display3D_Context3D().default).__stateCache.updateBlendDestFactor(destinationFactor);
	if(updateSrc || updateDest) {
		GLContext3D.context = context;
		GLContext3D.gl = context.__renderSession.gl;
		GLContext3D.__updateBlendFactors();
	}
}
GLContext3D.setColorMask = function(context,red,green,blue,alpha) {
	var gl = context.__renderSession.gl;
	gl.colorMask(red,green,blue,alpha);
}
GLContext3D.setCulling = function(context,triangleFaceToCull) {
	var gl = context.__renderSession.gl;
	if((openfl_display3D_Context3D().default).__stateCache.updateCullingMode(triangleFaceToCull)) {
		switch(triangleFaceToCull) {
		case "back":
			gl.enable(gl.CULL_FACE);
			gl.cullFace(gl.FRONT);
			break;
		case "front":
			gl.enable(gl.CULL_FACE);
			gl.cullFace(gl.BACK);
			break;
		case "frontAndBack":
			gl.enable(gl.CULL_FACE);
			gl.cullFace(gl.FRONT_AND_BACK);
			break;
		case "none":
			gl.disable(gl.CULL_FACE);
			break;
		default:
			return new (openfl_errors_IllegalOperationError().default)();
		}
	}
	return null;
}
GLContext3D.setDepthTest = function(context,depthMask,passCompareMode) {
	var gl = context.__renderSession.gl;
	var depthTestEnabled = context.__backBufferEnableDepthAndStencil;
	if((openfl_display3D_Context3D().default).__stateCache.updateDepthTestEnabled(depthTestEnabled)) {
		if(depthTestEnabled) {
			gl.enable(gl.DEPTH_TEST);
		} else {
			gl.disable(gl.DEPTH_TEST);
		}
	}
	if((openfl_display3D_Context3D().default).__stateCache.updateDepthTestMask(depthMask)) {
		gl.depthMask(depthMask);
	}
	if((openfl_display3D_Context3D().default).__stateCache.updateDepthCompareMode(passCompareMode)) {
		switch(passCompareMode) {
		case "always":
			gl.depthFunc(gl.ALWAYS);
			break;
		case "equal":
			gl.depthFunc(gl.EQUAL);
			break;
		case "greater":
			gl.depthFunc(gl.GREATER);
			break;
		case "greaterEqual":
			gl.depthFunc(gl.GEQUAL);
			break;
		case "less":
			gl.depthFunc(gl.LESS);
			break;
		case "lessEqual":
			gl.depthFunc(gl.LEQUAL);
			break;
		case "never":
			gl.depthFunc(gl.NEVER);
			break;
		case "notEqual":
			gl.depthFunc(gl.NOTEQUAL);
			break;
		default:
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
		}
	}
}
GLContext3D.setEnableErrorChecking = function(value) {
	(openfl__$internal_stage3D_GLUtils().default).debug = value;
}
GLContext3D.setProgram = function(context,program) {
	if((openfl_display3D_Context3D().default).__stateCache.updateProgram3D(program)) {
		program.__use();
		program.__setPositionScale(context.__positionScale);
		context.__program = program;
		context.__samplerDirty |= context.__program.__samplerUsageMask;
		var _g = 0;
		while(_g < 8) {
			var i = _g++;
			context.__samplerStates[i].copyFrom(context.__program.__getSamplerState(i));
		}
	}
}
GLContext3D.setProgramConstantsFromByteArray = function(context,programType,firstRegister,numRegisters,data,byteArrayOffset) {
	var gl = context.__renderSession.gl;
	if(numRegisters == -1) {
		numRegisters = ((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(data) >> 2) - byteArrayOffset;
	}
	var isVertex = programType == "vertex";
	var dest = isVertex ? context.__vertexConstants : context.__fragmentConstants;
	var bytes = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toBytes(data);
	var len = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(data);
	var floatData = len == null ? new Float32Array(bytes.getData(),0) : new Float32Array(bytes.getData(),0,len);
	var outOffset = firstRegister * 4;
	var inOffset = (Std().default)["int"]((_$UInt_UInt_$Impl_$().default).toFloat(byteArrayOffset) / (_$UInt_UInt_$Impl_$().default).toFloat(4));
	var _g1 = 0;
	var _g = numRegisters * 4;
	while(_g1 < _g) {
		var i = _g1++;
		dest[outOffset + i] = floatData[inOffset + i];
	}
	if(context.__program != null) {
		context.__program.__markDirty(isVertex,firstRegister,numRegisters);
	}
}
GLContext3D.setProgramConstantsFromMatrix = function(context,programType,firstRegister,matrix,transposedMatrix) {
	if(transposedMatrix == null) {
		transposedMatrix = false;
	}
	var isVertex = programType == "vertex";
	var dest = isVertex ? context.__vertexConstants : context.__fragmentConstants;
	var source = matrix.rawData;
	var i = firstRegister * 4;
	if(transposedMatrix) {
		dest[i++] = source.get(0);
		dest[i++] = source.get(4);
		dest[i++] = source.get(8);
		dest[i++] = source.get(12);
		dest[i++] = source.get(1);
		dest[i++] = source.get(5);
		dest[i++] = source.get(9);
		dest[i++] = source.get(13);
		dest[i++] = source.get(2);
		dest[i++] = source.get(6);
		dest[i++] = source.get(10);
		dest[i++] = source.get(14);
		dest[i++] = source.get(3);
		dest[i++] = source.get(7);
		dest[i++] = source.get(11);
		dest[i++] = source.get(15);
	} else {
		dest[i++] = source.get(0);
		dest[i++] = source.get(1);
		dest[i++] = source.get(2);
		dest[i++] = source.get(3);
		dest[i++] = source.get(4);
		dest[i++] = source.get(5);
		dest[i++] = source.get(6);
		dest[i++] = source.get(7);
		dest[i++] = source.get(8);
		dest[i++] = source.get(9);
		dest[i++] = source.get(10);
		dest[i++] = source.get(11);
		dest[i++] = source.get(12);
		dest[i++] = source.get(13);
		dest[i++] = source.get(14);
		dest[i++] = source.get(15);
	}
	if(context.__program != null) {
		context.__program.__markDirty(isVertex,firstRegister,4);
	}
}
GLContext3D.setProgramConstantsFromVector = function(context,programType,firstRegister,data,numRegisters) {
	if(numRegisters == null) {
		numRegisters = -1;
	}
	if(numRegisters == -1) {
		numRegisters = data.get_length() >> 2;
	}
	var isVertex = programType == "vertex";
	var dest = isVertex ? context.__vertexConstants : context.__fragmentConstants;
	var source = data;
	var sourceIndex = 0;
	var destIndex = firstRegister * 4;
	var _g1 = 0;
	var _g = numRegisters;
	while(_g1 < _g) {
		var i = _g1++;
		dest[destIndex++] = source.get(sourceIndex++);
		dest[destIndex++] = source.get(sourceIndex++);
		dest[destIndex++] = source.get(sourceIndex++);
		dest[destIndex++] = source.get(sourceIndex++);
	}
	if(context.__program != null) {
		context.__program.__markDirty(isVertex,firstRegister,numRegisters);
	}
}
GLContext3D.setRenderToBackBuffer = function(context) {
	var gl = context.__renderSession.gl;
	gl.bindFramebuffer(gl.FRAMEBUFFER,null);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.frontFace(gl.CCW);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	context.__renderToTexture = null;
	context.__scissorRectangle = null;
	GLContext3D.__updateBackbufferViewport();
	GLContext3D.__updateScissorRectangle();
	GLContext3D.__updateDepthAndStencilState();
	context.__positionScale[1] = 1.0;
	if(context.__program != null) {
		context.__program.__setPositionScale(context.__positionScale);
	}
}
GLContext3D.setRenderToTexture = function(context,texture,enableDepthAndStencil,antiAlias,surfaceSelector) {
	if(surfaceSelector == null) {
		surfaceSelector = 0;
	}
	if(antiAlias == null) {
		antiAlias = 0;
	}
	if(enableDepthAndStencil == null) {
		enableDepthAndStencil = false;
	}
	var gl = context.__renderSession.gl;
	var width = 0;
	var height = 0;
	if(context.__framebuffer == null) {
		context.__framebuffer = gl.createFramebuffer();
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
	gl.bindFramebuffer(gl.FRAMEBUFFER,context.__framebuffer);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	if((Std().default)["is"](texture,(openfl_display3D_textures_Texture().default))) {
		var texture2D = texture;
		width = texture2D.__width;
		height = texture2D.__height;
		gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture.__textureID,0);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	} else if((Std().default)["is"](texture,(openfl_display3D_textures_RectangleTexture().default))) {
		var rectTexture = texture;
		width = rectTexture.__width;
		height = rectTexture.__height;
		gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_2D,texture.__textureID,0);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	} else if((Std().default)["is"](texture,(openfl_display3D_textures_CubeTexture().default))) {
		var cubeTexture = texture;
		width = cubeTexture.__size;
		height = cubeTexture.__size;
		var _g = 0;
		while(_g < 6) {
			var i = _g++;
			gl.framebufferTexture2D(gl.FRAMEBUFFER,gl.COLOR_ATTACHMENT0,gl.TEXTURE_CUBE_MAP_POSITIVE_X + i,texture.__textureID,0);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		}
	} else {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("Invalid texture"));
	}
	if(enableDepthAndStencil) {
		if(context.__supportsPackedDepthStencil) {
			if(context.__depthStencilRenderBuffer == null) {
				context.__depthStencilRenderBuffer = gl.createRenderbuffer();
				(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			}
			gl.bindRenderbuffer(gl.RENDERBUFFER,context.__depthStencilRenderBuffer);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			gl.renderbufferStorage(gl.RENDERBUFFER,(openfl_display3D_Context3D().default).DEPTH_STENCIL,width,height);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.DEPTH_STENCIL_ATTACHMENT,gl.RENDERBUFFER,context.__depthStencilRenderBuffer);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		} else {
			if(context.__depthRenderBuffer == null) {
				context.__depthRenderBuffer = gl.createRenderbuffer();
				(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			}
			if(context.__stencilRenderBuffer == null) {
				context.__stencilRenderBuffer = gl.createRenderbuffer();
				(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			}
			gl.bindRenderbuffer(gl.RENDERBUFFER,context.__depthRenderBuffer);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			gl.renderbufferStorage(gl.RENDERBUFFER,gl.DEPTH_COMPONENT16,width,height);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			gl.bindRenderbuffer(gl.RENDERBUFFER,context.__stencilRenderBuffer);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			gl.renderbufferStorage(gl.RENDERBUFFER,gl.STENCIL_INDEX8,width,height);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.DEPTH_ATTACHMENT,gl.RENDERBUFFER,context.__depthRenderBuffer);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			gl.framebufferRenderbuffer(gl.FRAMEBUFFER,gl.STENCIL_ATTACHMENT,gl.RENDERBUFFER,context.__stencilRenderBuffer);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		}
		gl.bindRenderbuffer(gl.RENDERBUFFER,null);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
	GLContext3D.__setViewport(0,0,width,height);
	if(context.__enableErrorChecking) {
		var code = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
		if(code != gl.FRAMEBUFFER_COMPLETE) {
			(haxe_Log().default).trace("Error: Context3D.setRenderToTexture status:" + code + " width:" + width + " height:" + height,{ fileName : "GLContext3D.hx", lineNumber : 753, className : "openfl._internal.stage3D.opengl.GLContext3D", methodName : "setRenderToTexture"});
		}
	}
	context.__positionScale[1] = -1.0;
	if(context.__program != null) {
		context.__program.__setPositionScale(context.__positionScale);
	}
	gl.frontFace(gl.CW);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	context.__renderToTexture = texture;
	context.__scissorRectangle = null;
	context.__rttDepthAndStencil = enableDepthAndStencil;
	GLContext3D.__updateScissorRectangle();
	GLContext3D.__updateDepthAndStencilState();
}
GLContext3D.setSamplerStateAt = function(context,sampler,wrap,filter,mipfilter) {
	if(sampler < 0 || sampler > 8) {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("sampler out of range"));
	}
	var gl = context.__renderSession.gl;
	var state = context.__samplerStates[sampler];
	switch(wrap) {
	case "clamp":
		state.set_wrapModeS(gl.CLAMP_TO_EDGE);
		state.set_wrapModeT(gl.CLAMP_TO_EDGE);
		break;
	case "clamp_u_repeat_y":
		state.set_wrapModeS(gl.CLAMP_TO_EDGE);
		state.set_wrapModeT(gl.REPEAT);
		break;
	case "repeat":
		state.set_wrapModeS(gl.REPEAT);
		state.set_wrapModeT(gl.REPEAT);
		break;
	case "repeat_u_clamp_y":
		state.set_wrapModeS(gl.REPEAT);
		state.set_wrapModeT(gl.CLAMP_TO_EDGE);
		break;
	default:
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("wrap bad enum"));
	}
	switch(filter) {
	case "anisotropic16x":
		if(context.__supportsAnisotropicFiltering) {
			state.set_maxAniso(context.__maxAnisotropyTexture2D < 16 ? context.__maxAnisotropyTexture2D : 16);
		}
		break;
	case "anisotropic2x":
		if(context.__supportsAnisotropicFiltering) {
			state.set_maxAniso(context.__maxAnisotropyTexture2D < 2 ? context.__maxAnisotropyTexture2D : 2);
		}
		break;
	case "anisotropic4x":
		if(context.__supportsAnisotropicFiltering) {
			state.set_maxAniso(context.__maxAnisotropyTexture2D < 4 ? context.__maxAnisotropyTexture2D : 4);
		}
		break;
	case "anisotropic8x":
		if(context.__supportsAnisotropicFiltering) {
			state.set_maxAniso(context.__maxAnisotropyTexture2D < 8 ? context.__maxAnisotropyTexture2D : 8);
		}
		break;
	case "linear":
		state.set_magFilter(gl.LINEAR);
		if(context.__supportsAnisotropicFiltering) {
			state.set_maxAniso(1);
		}
		break;
	case "nearest":
		state.set_magFilter(gl.NEAREST);
		if(context.__supportsAnisotropicFiltering) {
			state.set_maxAniso(1);
		}
		break;
	default:
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("filter bad enum"));
	}
	switch(mipfilter) {
	case "miplinear":
		state.set_minFilter(filter == "nearest" ? gl.NEAREST_MIPMAP_LINEAR : gl.LINEAR_MIPMAP_LINEAR);
		break;
	case "mipnearest":
		state.set_minFilter(filter == "nearest" ? gl.NEAREST_MIPMAP_NEAREST : gl.LINEAR_MIPMAP_NEAREST);
		break;
	case "mipnone":
		state.set_minFilter(filter == "nearest" ? gl.NEAREST : gl.LINEAR);
		break;
	default:
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("mipfiter bad enum"));
	}
}
GLContext3D.setScissorRectangle = function(context,rectangle) {
	GLContext3D.context = context;
	GLContext3D.gl = context.__renderSession.gl;
	context.__scissorRectangle = rectangle != null ? rectangle.clone() : null;
	GLContext3D.__updateScissorRectangle();
}
GLContext3D.setStencilActions = function(context,triangleFace,compareMode,actionOnBothPass,actionOnDepthFail,actionOnDepthPassStencilFail) {
	if(actionOnDepthPassStencilFail == null) {
		actionOnDepthPassStencilFail = "keep";
	}
	if(actionOnDepthFail == null) {
		actionOnDepthFail = "keep";
	}
	if(actionOnBothPass == null) {
		actionOnBothPass = "keep";
	}
	if(compareMode == null) {
		compareMode = "always";
	}
	if(triangleFace == null) {
		triangleFace = "frontAndBack";
	}
	GLContext3D.context = context;
	GLContext3D.gl = context.__renderSession.gl;
	context.__stencilCompareMode = compareMode;
	GLContext3D.gl.stencilOpSeparate(GLContext3D.__getGLTriangleFace(triangleFace),GLContext3D.__getGLStencilAction(actionOnDepthPassStencilFail),GLContext3D.__getGLStencilAction(actionOnDepthFail),GLContext3D.__getGLStencilAction(actionOnBothPass));
	GLContext3D.gl.stencilFunc(GLContext3D.__getGLCompareMode(context.__stencilCompareMode),context.__stencilRef,context.__stencilReadMask);
}
GLContext3D.setStencilReferenceValue = function(context,referenceValue,readMask,writeMask) {
	if(writeMask == null) {
		writeMask = 255;
	}
	if(readMask == null) {
		readMask = 255;
	}
	GLContext3D.context = context;
	GLContext3D.gl = context.__renderSession.gl;
	context.__stencilReadMask = readMask;
	context.__stencilRef = referenceValue;
	GLContext3D.gl.stencilFunc(GLContext3D.__getGLCompareMode(context.__stencilCompareMode),context.__stencilRef,context.__stencilReadMask);
	GLContext3D.gl.stencilMask(writeMask);
}
GLContext3D.setTextureAt = function(context,sampler,texture) {
	if(context.__samplerTextures.get(sampler) != texture) {
		context.__samplerTextures.set(sampler,texture);
		context.__samplerDirty |= 1 << sampler;
	}
}
GLContext3D.setVertexBufferAt = function(context,index,buffer,bufferOffset,format) {
	if(format == null) {
		format = "float4";
	}
	if(bufferOffset == null) {
		bufferOffset = 0;
	}
	var gl = context.__renderSession.gl;
	if(buffer == null) {
		gl.disableVertexAttribArray(index);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		gl.bindBuffer(gl.ARRAY_BUFFER,null);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		return;
	}
	gl.enableVertexAttribArray(index);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.bindBuffer(gl.ARRAY_BUFFER,buffer.__id);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var byteOffset = bufferOffset * 4;
	switch(format) {
	case "bytes4":
		gl.vertexAttribPointer(index,4,gl.UNSIGNED_BYTE,true,buffer.__stride,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(byteOffset));
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		break;
	case "float1":
		gl.vertexAttribPointer(index,1,gl.FLOAT,false,buffer.__stride,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(byteOffset));
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		break;
	case "float2":
		gl.vertexAttribPointer(index,2,gl.FLOAT,false,buffer.__stride,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(byteOffset));
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		break;
	case "float3":
		gl.vertexAttribPointer(index,3,gl.FLOAT,false,buffer.__stride,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(byteOffset));
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		break;
	case "float4":
		gl.vertexAttribPointer(index,4,gl.FLOAT,false,buffer.__stride,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(byteOffset));
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		break;
	default:
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
	}
}
GLContext3D.__flushSamplerState = function() {
	var sampler = 0;
	while(GLContext3D.context.__samplerDirty != 0) {
		if((GLContext3D.context.__samplerDirty & 1 << sampler) != 0) {
			if((openfl_display3D_Context3D().default).__stateCache.updateActiveTextureSample(sampler)) {
				GLContext3D.gl.activeTexture(GLContext3D.gl.TEXTURE0 + sampler);
				(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			}
			var texture = GLContext3D.context.__samplerTextures.get(sampler);
			if(texture != null) {
				var target = texture.__textureTarget;
				GLContext3D.gl.bindTexture(target,texture.__getTexture());
				(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
				texture.__setSamplerState(GLContext3D.context.__samplerStates[sampler]);
			} else {
				GLContext3D.gl.bindTexture(GLContext3D.gl.TEXTURE_2D,null);
				(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			}
			if(GLContext3D.context.__samplerStates[sampler].textureAlpha) {
				GLContext3D.gl.activeTexture(GLContext3D.gl.TEXTURE0 + sampler + 4);
				(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
				if(texture != null && texture.__alphaTexture != null) {
					var target1 = texture.__alphaTexture.__textureTarget;
					GLContext3D.gl.bindTexture(target1,texture.__alphaTexture.__getTexture());
					(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
					texture.__alphaTexture.__setSamplerState(GLContext3D.context.__samplerStates[sampler]);
					GLContext3D.gl.uniform1i(GLContext3D.context.__program.__alphaSamplerEnabled[sampler].location,1);
					(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
				} else {
					GLContext3D.gl.bindTexture(GLContext3D.gl.TEXTURE_2D,null);
					(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
					GLContext3D.gl.uniform1i(GLContext3D.context.__program.__alphaSamplerEnabled[sampler].location,0);
					(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
				}
			}
			GLContext3D.context.__samplerDirty &= ~(1 << sampler);
		}
		++sampler;
	}
}
GLContext3D.__getGLCompareMode = function(compareMode) {
	switch(compareMode) {
	case "always":
		return GLContext3D.gl.ALWAYS;
	case "equal":
		return GLContext3D.gl.EQUAL;
	case "greater":
		return GLContext3D.gl.GREATER;
	case "greaterEqual":
		return GLContext3D.gl.GEQUAL;
	case "less":
		return GLContext3D.gl.LESS;
	case "lessEqual":
		return GLContext3D.gl.LEQUAL;
	case "never":
		return GLContext3D.gl.NEVER;
	case "notEqual":
		return GLContext3D.gl.NOTEQUAL;
	default:
		return GLContext3D.gl.EQUAL;
	}
}
GLContext3D.__getGLTriangleFace = function(triangleFace) {
	switch(triangleFace) {
	case "back":
		return GLContext3D.gl.BACK;
	case "front":
		return GLContext3D.gl.FRONT;
	case "frontAndBack":
		return GLContext3D.gl.FRONT_AND_BACK;
	case "none":
		return GLContext3D.gl.NONE;
	default:
		return GLContext3D.gl.FRONT_AND_BACK;
	}
}
GLContext3D.__getGLStencilAction = function(stencilAction) {
	switch(stencilAction) {
	case "decrementSaturate":
		return GLContext3D.gl.DECR;
	case "decrementWrap":
		return GLContext3D.gl.DECR_WRAP;
	case "incrementSaturate":
		return GLContext3D.gl.INCR;
	case "incrementWrap":
		return GLContext3D.gl.INCR_WRAP;
	case "invert":
		return GLContext3D.gl.INVERT;
	case "keep":
		return GLContext3D.gl.KEEP;
	case "set":
		return GLContext3D.gl.REPLACE;
	case "zero":
		return GLContext3D.gl.ZERO;
	default:
		return GLContext3D.gl.KEEP;
	}
}
GLContext3D.__hasGLExtension = function(name) {
	return GLContext3D.gl.getSupportedExtensions().indexOf(name) != -1;
}
GLContext3D.__setViewport = function(originX,originY,width,height) {
	if(GLContext3D.context.__renderToTexture != null) {
		originY *= -1;
	}
	if((openfl_display3D_Context3D().default).__stateCache.updateViewport(originX,originY,width,height)) {
		GLContext3D.gl.viewport(originX,originY,width,height);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
}
GLContext3D.__updateDepthAndStencilState = function() {
	var depthAndStencil = GLContext3D.context.__renderToTexture != null ? GLContext3D.context.__rttDepthAndStencil : GLContext3D.context.__backBufferEnableDepthAndStencil;
	if(depthAndStencil) {
		GLContext3D.gl.enable(GLContext3D.gl.DEPTH_TEST);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		GLContext3D.gl.enable(GLContext3D.gl.STENCIL_TEST);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	} else {
		GLContext3D.gl.disable(GLContext3D.gl.DEPTH_TEST);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		GLContext3D.gl.disable(GLContext3D.gl.STENCIL_TEST);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
}
GLContext3D.__updateBlendFactorsTEMP = function(context) {
	GLContext3D.context = context;
	GLContext3D.gl = context.__renderSession.gl;
	GLContext3D.__updateBlendFactors();
}
GLContext3D.__updateBlendFactors = function() {
	if((openfl_display3D_Context3D().default).__stateCache._srcBlendFactor == null || (openfl_display3D_Context3D().default).__stateCache._destBlendFactor == null) {
		return;
	}
	var src = GLContext3D.gl.ONE;
	var dest = GLContext3D.gl.ZERO;
	var _g = (openfl_display3D_Context3D().default).__stateCache._srcBlendFactor;
	switch(_g) {
	case "destinationAlpha":
		src = GLContext3D.gl.DST_ALPHA;
		break;
	case "destinationColor":
		src = GLContext3D.gl.DST_COLOR;
		break;
	case "one":
		src = GLContext3D.gl.ONE;
		break;
	case "oneMinusDestinationAlpha":
		src = GLContext3D.gl.ONE_MINUS_DST_ALPHA;
		break;
	case "oneMinusDestinationColor":
		src = GLContext3D.gl.ONE_MINUS_DST_COLOR;
		break;
	case "oneMinusSourceAlpha":
		src = GLContext3D.gl.ONE_MINUS_SRC_ALPHA;
		break;
	case "sourceAlpha":
		src = GLContext3D.gl.SRC_ALPHA;
		break;
	case "zero":
		src = GLContext3D.gl.ZERO;
		break;
	default:
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
	}
	var _g1 = (openfl_display3D_Context3D().default).__stateCache._destBlendFactor;
	switch(_g1) {
	case "destinationAlpha":
		dest = GLContext3D.gl.DST_ALPHA;
		break;
	case "one":
		dest = GLContext3D.gl.ONE;
		break;
	case "oneMinusDestinationAlpha":
		dest = GLContext3D.gl.ONE_MINUS_DST_ALPHA;
		break;
	case "oneMinusSourceAlpha":
		dest = GLContext3D.gl.ONE_MINUS_SRC_ALPHA;
		break;
	case "oneMinusSourceColor":
		dest = GLContext3D.gl.ONE_MINUS_SRC_COLOR;
		break;
	case "sourceAlpha":
		dest = GLContext3D.gl.SRC_ALPHA;
		break;
	case "sourceColor":
		dest = GLContext3D.gl.SRC_COLOR;
		break;
	case "zero":
		dest = GLContext3D.gl.ZERO;
		break;
	default:
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
	}
	GLContext3D.gl.enable(GLContext3D.gl.BLEND);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	GLContext3D.gl.blendFunc(src,dest);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLContext3D.__updateScissorRectangle = function() {
	if(GLContext3D.context.__scissorRectangle == null) {
		GLContext3D.gl.disable(GLContext3D.gl.SCISSOR_TEST);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		return;
	}
	GLContext3D.gl.enable(GLContext3D.gl.SCISSOR_TEST);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var height = 0;
	var offsetX = 0;
	var offsetY = 0;
	if(GLContext3D.context.__renderToTexture != null) {
		if((Std().default)["is"](GLContext3D.context.__renderToTexture,(openfl_display3D_textures_Texture().default))) {
			var texture2D = GLContext3D.context.__renderToTexture;
			height = texture2D.__height;
		} else if((Std().default)["is"](GLContext3D.context.__renderToTexture,(openfl_display3D_textures_RectangleTexture().default))) {
			var rectTexture = GLContext3D.context.__renderToTexture;
			height = rectTexture.__height;
		}
	} else {
		height = GLContext3D.context.backBufferHeight;
		offsetX = (Std().default)["int"](GLContext3D.context.__stage3D.get_x());
		offsetY = (Std().default)["int"](GLContext3D.context.__stage3D.get_y());
	}
	GLContext3D.gl.scissor((Std().default)["int"](GLContext3D.context.__scissorRectangle.x) + offsetX,height - (Std().default)["int"](GLContext3D.context.__scissorRectangle.y) - (Std().default)["int"](GLContext3D.context.__scissorRectangle.height) + offsetY,(Std().default)["int"](GLContext3D.context.__scissorRectangle.width),(Std().default)["int"](GLContext3D.context.__scissorRectangle.height));
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLContext3D.__updateBackbufferViewportTEMP = function(context) {
	GLContext3D.context = context;
	GLContext3D.gl = context.__renderSession.gl;
	GLContext3D.__updateBackbufferViewport();
}
GLContext3D.__updateBackbufferViewport = function() {
	if(!(openfl_display_Stage3D().default).__active) {
		(openfl_display_Stage3D().default).__active = true;
		GLContext3D.context.__renderSession.renderer.clear();
	}
	if(GLContext3D.context.__renderToTexture == null && GLContext3D.context.backBufferWidth > 0 && GLContext3D.context.backBufferHeight > 0) {
		GLContext3D.__setViewport((Std().default)["int"](GLContext3D.context.__stage3D.get_x()),(Std().default)["int"](GLContext3D.context.__stage3D.get_y()),GLContext3D.context.backBufferWidth,GLContext3D.context.backBufferHeight);
	}
}
// Export
exports.default = GLContext3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 396 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.GLCompressedTextureFormats
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_IntMap() {return __webpack_require__(22);}
// Constructor
var GLCompressedTextureFormats = function(gl) {
	this.__formatMapAlpha = new (haxe_ds_IntMap().default)();
	this.__formatMap = new (haxe_ds_IntMap().default)();
	this.checkDXT(gl);
	this.checkETC1(gl);
	this.checkPVRTC(gl);
}
// Meta
GLCompressedTextureFormats.__name__ = ["openfl","_internal","stage3D","GLCompressedTextureFormats"];
GLCompressedTextureFormats.prototype = {
	checkDXT: function(gl) {
		var compressedExtension = gl.getExtension("WEBGL_compressed_texture_s3tc");
		if(compressedExtension != null) {
			var v = compressedExtension.COMPRESSED_RGBA_S3TC_DXT1_EXT;
			this.__formatMap.set(0,v);
			var v1 = compressedExtension.COMPRESSED_RGBA_S3TC_DXT5_EXT;
			this.__formatMapAlpha.set(0,v1);
		}
	},
	checkETC1: function(gl) {
		var compressedExtension = gl.getExtension("WEBGL_compressed_texture_etc1");
		if(compressedExtension != null) {
			var v = compressedExtension.COMPRESSED_RGB_ETC1_WEBGL;
			this.__formatMap.set(2,v);
			var v1 = compressedExtension.COMPRESSED_RGB_ETC1_WEBGL;
			this.__formatMapAlpha.set(2,v1);
		}
	},
	checkPVRTC: function(gl) {
		var compressedExtension = gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");
		if(compressedExtension != null) {
			var v = compressedExtension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;
			this.__formatMap.set(1,v);
			var v1 = compressedExtension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;
			this.__formatMapAlpha.set(1,v1);
		}
	},
	toTextureFormat: function(alpha,gpuFormat) {
		if(alpha) {
			return this.__formatMapAlpha.get(gpuFormat);
		} else {
			return this.__formatMap.get(gpuFormat);
		}
	}
};
GLCompressedTextureFormats.prototype.__class__ = $hxClasses["openfl._internal.stage3D.GLCompressedTextureFormats"] = GLCompressedTextureFormats;
// Init
// Statics
// Export
exports.default = GLCompressedTextureFormats;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 397 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLTexture
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl__$internal_stage3D_atf_ATFReader() {return __webpack_require__(215);}
function openfl__$internal_stage3D_opengl_GLTextureBase() {return __webpack_require__(105);}
function Std() {return __webpack_require__(4);}
function openfl_display3D_textures_Texture() {return __webpack_require__(104);}
function lime_utils_BytePointerData() {return __webpack_require__(73);}
function openfl_display_BitmapData() {return __webpack_require__(44);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl_display3D_Context3D() {return __webpack_require__(62);}
// Constructor
var GLTexture = function(){}
// Meta
GLTexture.__name__ = ["openfl","_internal","stage3D","opengl","GLTexture"];
GLTexture.prototype = {
	
};
GLTexture.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLTexture"] = GLTexture;
// Init
// Statics
GLTexture.create = function(texture,renderSession) {
	var gl = renderSession.gl;
	texture.__textureTarget = gl.TEXTURE_2D;
	gl.bindTexture(texture.__textureTarget,texture.__textureID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.texImage2D(texture.__textureTarget,0,texture.__internalFormat,texture.__width,texture.__height,0,texture.__format,gl.UNSIGNED_BYTE,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.bindTexture(texture.__textureTarget,null);
	GLTexture.uploadFromTypedArray(texture,renderSession,null);
}
GLTexture.uploadCompressedTextureFromByteArray = function(texture,renderSession,data,byteArrayOffset) {
	var reader = new (openfl__$internal_stage3D_atf_ATFReader().default)(data,byteArrayOffset);
	var alpha = reader.readHeader(texture.__width,texture.__height,false);
	var gl = renderSession.gl;
	gl.bindTexture(texture.__textureTarget,texture.__textureID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var hasTexture = false;
	reader.readTextures(function(target,level,gpuFormat,width,height,blockLength,bytes) {
		var format = (openfl__$internal_stage3D_opengl_GLTextureBase().default).__compressedTextureFormats.toTextureFormat(alpha,gpuFormat);
		if(format == 0) {
			return;
		}
		hasTexture = true;
		texture.__format = format;
		texture.__internalFormat = format;
		if(alpha && gpuFormat == 2) {
			var size = (Std().default)["int"](blockLength / 2);
			gl.compressedTexImage2D(texture.__textureTarget,level,texture.__internalFormat,width,height,0,size,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromBytes(bytes));
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			var alphaTexture = new (openfl_display3D_textures_Texture().default)(texture.__context,texture.__width,texture.__height,"compressed",texture.__optimizeForRenderToTexture,texture.__streamingLevels);
			alphaTexture.__format = format;
			alphaTexture.__internalFormat = format;
			gl.bindTexture(alphaTexture.__textureTarget,alphaTexture.__textureID);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			var alphaTexture1 = alphaTexture.__textureTarget;
			var alphaTexture2 = alphaTexture.__internalFormat;
			var this1 = new (lime_utils_BytePointerData().default)(bytes,size);
			gl.compressedTexImage2D(alphaTexture1,level,alphaTexture2,width,height,0,size,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromBytesPointer(this1));
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			texture.__alphaTexture = alphaTexture;
		} else {
			gl.compressedTexImage2D(texture.__textureTarget,level,texture.__internalFormat,width,height,0,blockLength,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromBytes(bytes));
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		}
	});
	if(!hasTexture) {
		var elements = texture.__width * texture.__height * 4;
		var this2;
		if(elements != null) {
			this2 = new Uint8Array(elements);
		} else {
			this2 = null;
		}
		var data1 = this2;
		gl.texImage2D(texture.__textureTarget,0,texture.__internalFormat,texture.__width,texture.__height,0,texture.__format,gl.UNSIGNED_BYTE,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(data1));
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
	gl.bindTexture(texture.__textureTarget,null);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLTexture.uploadFromBitmapData = function(texture,renderSession,source,miplevel,generateMipmap) {
	if(source == null) {
		return;
	}
	var width = texture.__width >> miplevel;
	var height = texture.__height >> miplevel;
	if(width == 0 && height == 0) {
		return;
	}
	if(width == 0) {
		width = 1;
	}
	if(height == 0) {
		height = 1;
	}
	if(source.width != width || source.height != height) {
		var copy = new (openfl_display_BitmapData().default)(width,height,true,0);
		copy.draw(source);
		source = copy;
	}
	var image = texture.__getImage(source);
	GLTexture.uploadFromTypedArray(texture,renderSession,image.get_data(),miplevel);
}
GLTexture.uploadFromByteArray = function(texture,renderSession,data,byteArrayOffset,miplevel) {
	if(miplevel == null) {
		miplevel = 0;
	}
	if(byteArrayOffset == 0) {
		GLTexture.uploadFromTypedArray(texture,renderSession,data.b,miplevel);
		return;
	}
	var buffer = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toArrayBuffer(data);
	var this1;
	if(buffer != null) {
		this1 = new Uint8Array(buffer,byteArrayOffset);
	} else {
		this1 = null;
	}
	GLTexture.uploadFromTypedArray(texture,renderSession,this1,miplevel);
}
GLTexture.uploadFromTypedArray = function(texture,renderSession,data,miplevel) {
	if(miplevel == null) {
		miplevel = 0;
	}
	if(data == null) {
		return;
	}
	var gl = renderSession.gl;
	var width = texture.__width >> miplevel;
	var height = texture.__height >> miplevel;
	if(width == 0 && height == 0) {
		return;
	}
	if(width == 0) {
		width = 1;
	}
	if(height == 0) {
		height = 1;
	}
	gl.bindTexture(texture.__textureTarget,texture.__textureID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.texImage2D(texture.__textureTarget,miplevel,texture.__internalFormat,width,height,0,texture.__format,gl.UNSIGNED_BYTE,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(data));
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.bindTexture(texture.__textureTarget,null);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLTexture.setSamplerState = function(texture,renderSession,state) {
	if(!state.equals(texture.__samplerState)) {
		var gl = renderSession.gl;
		if(state.minFilter != gl.NEAREST && state.minFilter != gl.LINEAR && !state.mipmapGenerated) {
			gl.generateMipmap(gl.TEXTURE_2D);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			state.mipmapGenerated = true;
		}
		if(state.maxAniso != 0.0) {
			gl.texParameterf(gl.TEXTURE_2D,(openfl_display3D_Context3D().default).TEXTURE_MAX_ANISOTROPY_EXT,state.maxAniso);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		}
	}
	(openfl__$internal_stage3D_opengl_GLTextureBase().default).setSamplerState(texture,renderSession,state);
}
// Export
exports.default = GLTexture;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 398 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLRectangleTexture
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl_display3D_Context3D() {return __webpack_require__(62);}
function openfl__$internal_stage3D_opengl_GLTextureBase() {return __webpack_require__(105);}
// Constructor
var GLRectangleTexture = function(){}
// Meta
GLRectangleTexture.__name__ = ["openfl","_internal","stage3D","opengl","GLRectangleTexture"];
GLRectangleTexture.prototype = {
	
};
GLRectangleTexture.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLRectangleTexture"] = GLRectangleTexture;
// Init
// Statics
GLRectangleTexture.create = function(rectangleTexture,renderSession) {
	var gl = renderSession.gl;
	rectangleTexture.__textureTarget = gl.TEXTURE_2D;
	GLRectangleTexture.uploadFromTypedArray(rectangleTexture,renderSession,null);
}
GLRectangleTexture.uploadFromBitmapData = function(rectangleTexture,renderSession,source) {
	if(source == null) {
		return;
	}
	var image = rectangleTexture.__getImage(source);
	if(image == null) {
		return;
	}
	GLRectangleTexture.uploadFromTypedArray(rectangleTexture,renderSession,image.get_data());
}
GLRectangleTexture.uploadFromByteArray = function(rectangleTexture,renderSession,data,byteArrayOffset) {
	if(byteArrayOffset == 0) {
		GLRectangleTexture.uploadFromTypedArray(rectangleTexture,renderSession,data.b);
		return;
	}
	var buffer = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toArrayBuffer(data);
	var this1;
	if(buffer != null) {
		this1 = new Uint8Array(buffer,byteArrayOffset);
	} else {
		this1 = null;
	}
	GLRectangleTexture.uploadFromTypedArray(rectangleTexture,renderSession,this1);
}
GLRectangleTexture.uploadFromTypedArray = function(rectangleTexture,renderSession,data) {
	var gl = renderSession.gl;
	gl.bindTexture(rectangleTexture.__textureTarget,rectangleTexture.__textureID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.texImage2D(rectangleTexture.__textureTarget,0,rectangleTexture.__internalFormat,rectangleTexture.__width,rectangleTexture.__height,0,rectangleTexture.__format,gl.UNSIGNED_BYTE,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(data));
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.bindTexture(rectangleTexture.__textureTarget,null);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLRectangleTexture.setSamplerState = function(rectangleTexture,renderSession,state) {
	if(!state.equals(rectangleTexture.__samplerState)) {
		var gl = renderSession.gl;
		if(state.maxAniso != 0.0) {
			gl.texParameterf(gl.TEXTURE_2D,(openfl_display3D_Context3D().default).TEXTURE_MAX_ANISOTROPY_EXT,state.maxAniso);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		}
	}
	(openfl__$internal_stage3D_opengl_GLTextureBase().default).setSamplerState(rectangleTexture,renderSession,state);
}
// Export
exports.default = GLRectangleTexture;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 399 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLCubeTexture
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_atf_ATFReader() {return __webpack_require__(215);}
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
function openfl__$internal_stage3D_opengl_GLTextureBase() {return __webpack_require__(105);}
function Std() {return __webpack_require__(4);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl_display3D_textures_CubeTexture() {return __webpack_require__(106);}
function lime_utils_BytePointerData() {return __webpack_require__(73);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl_display3D_Context3D() {return __webpack_require__(62);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
// Constructor
var GLCubeTexture = function(){}
// Meta
GLCubeTexture.__name__ = ["openfl","_internal","stage3D","opengl","GLCubeTexture"];
GLCubeTexture.prototype = {
	
};
GLCubeTexture.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLCubeTexture"] = GLCubeTexture;
// Init
// Statics
GLCubeTexture.create = function(cubeTexture,renderSession) {
	var gl = renderSession.gl;
	cubeTexture.__textureTarget = gl.TEXTURE_CUBE_MAP;
	cubeTexture.__uploadedSides = 0;
}
GLCubeTexture.uploadCompressedTextureFromByteArray = function(cubeTexture,renderSession,data,byteArrayOffset) {
	var reader = new (openfl__$internal_stage3D_atf_ATFReader().default)(data,byteArrayOffset);
	var alpha = reader.readHeader(cubeTexture.__size,cubeTexture.__size,true);
	var gl = renderSession.gl;
	gl.bindTexture(cubeTexture.__textureTarget,cubeTexture.__textureID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	var hasTexture = false;
	reader.readTextures(function(side,level,gpuFormat,width,height,blockLength,bytes) {
		var format = (openfl__$internal_stage3D_opengl_GLTextureBase().default).__compressedTextureFormats.toTextureFormat(alpha,gpuFormat);
		if(format == 0) {
			return;
		}
		hasTexture = true;
		var target = GLCubeTexture.__sideToTarget(gl,side);
		cubeTexture.__format = format;
		cubeTexture.__internalFormat = format;
		if(alpha && gpuFormat == 2) {
			var size = (Std().default)["int"](blockLength / 2);
			gl.compressedTexImage2D(target,level,cubeTexture.__internalFormat,width,height,0,size,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromBytes(bytes));
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			var alphaTexture = new (openfl_display3D_textures_CubeTexture().default)(cubeTexture.__context,cubeTexture.__size,"compressed",cubeTexture.__optimizeForRenderToTexture,cubeTexture.__streamingLevels);
			alphaTexture.__format = format;
			alphaTexture.__internalFormat = format;
			gl.bindTexture(alphaTexture.__textureTarget,alphaTexture.__textureID);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			var alphaTexture1 = alphaTexture.__internalFormat;
			var this1 = new (lime_utils_BytePointerData().default)(bytes,size);
			gl.compressedTexImage2D(target,level,alphaTexture1,width,height,0,size,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromBytesPointer(this1));
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			cubeTexture.__alphaTexture = alphaTexture;
		} else {
			gl.compressedTexImage2D(target,level,cubeTexture.__internalFormat,width,height,0,blockLength,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromBytes(bytes));
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		}
	});
	if(!hasTexture) {
		var _g = 0;
		while(_g < 6) {
			var side1 = _g++;
			var elements = cubeTexture.__size * cubeTexture.__size * 4;
			var this2;
			if(elements != null) {
				this2 = new Uint8Array(elements);
			} else {
				this2 = null;
			}
			var data1 = this2;
			var tmp = GLCubeTexture.__sideToTarget(gl,side1);
			gl.texImage2D(tmp,0,cubeTexture.__internalFormat,cubeTexture.__size,cubeTexture.__size,0,cubeTexture.__format,gl.UNSIGNED_BYTE,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(data1));
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		}
	}
	gl.bindTexture(cubeTexture.__textureTarget,null);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLCubeTexture.uploadFromBitmapData = function(cubeTexture,renderSession,source,side,miplevel,generateMipmap) {
	if(generateMipmap == null) {
		generateMipmap = false;
	}
	if(miplevel == null) {
		miplevel = 0;
	}
	var size = cubeTexture.__size >> miplevel;
	if(size == 0) {
		return;
	}
	var image = cubeTexture.__getImage(source);
	GLCubeTexture.uploadFromTypedArray(cubeTexture,renderSession,image.get_data(),side,miplevel);
}
GLCubeTexture.uploadFromByteArray = function(cubeTexture,renderSession,data,byteArrayOffset,side,miplevel) {
	if(byteArrayOffset == 0) {
		GLCubeTexture.uploadFromTypedArray(cubeTexture,renderSession,data.b,side,miplevel);
		return;
	}
	var buffer = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toArrayBuffer(data);
	var this1;
	if(buffer != null) {
		this1 = new Uint8Array(buffer,byteArrayOffset);
	} else {
		this1 = null;
	}
	GLCubeTexture.uploadFromTypedArray(cubeTexture,renderSession,this1,side,miplevel);
}
GLCubeTexture.uploadFromTypedArray = function(cubeTexture,renderSession,data,side,miplevel) {
	if(data == null) {
		return;
	}
	var gl = renderSession.gl;
	var size = cubeTexture.__size >> miplevel;
	if(size == 0) {
		return;
	}
	var target = GLCubeTexture.__sideToTarget(gl,side);
	gl.bindTexture(gl.TEXTURE_CUBE_MAP,cubeTexture.__textureID);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.texImage2D(target,miplevel,cubeTexture.__internalFormat,size,size,0,cubeTexture.__format,gl.UNSIGNED_BYTE,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(data));
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	gl.bindTexture(cubeTexture.__textureTarget,null);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	cubeTexture.__uploadedSides |= 1 << side;
}
GLCubeTexture.setSamplerState = function(cubeTexture,renderSession,state) {
	if(!state.equals(cubeTexture.__samplerState)) {
		var gl = renderSession.gl;
		if(state.minFilter != gl.NEAREST && state.minFilter != gl.LINEAR && !state.mipmapGenerated) {
			gl.generateMipmap(gl.TEXTURE_CUBE_MAP);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
			state.mipmapGenerated = true;
		}
		if(state.maxAniso != 0.0) {
			gl.texParameterf(gl.TEXTURE_CUBE_MAP,(openfl_display3D_Context3D().default).TEXTURE_MAX_ANISOTROPY_EXT,state.maxAniso);
			(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		}
	}
	(openfl__$internal_stage3D_opengl_GLTextureBase().default).setSamplerState(cubeTexture,renderSession,state);
}
GLCubeTexture.__sideToTarget = function(gl,side) {
	switch(side) {
	case 0:
		return gl.TEXTURE_CUBE_MAP_NEGATIVE_X;
	case 1:
		return gl.TEXTURE_CUBE_MAP_POSITIVE_X;
	case 2:
		return gl.TEXTURE_CUBE_MAP_NEGATIVE_Y;
	case 3:
		return gl.TEXTURE_CUBE_MAP_POSITIVE_Y;
	case 4:
		return gl.TEXTURE_CUBE_MAP_NEGATIVE_Z;
	case 5:
		return gl.TEXTURE_CUBE_MAP_POSITIVE_Z;
	default:
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
	}
}
// Export
exports.default = GLCubeTexture;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 400 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLIndexBuffer3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$() {return __webpack_require__(94);}
// Constructor
var GLIndexBuffer3D = function(){}
// Meta
GLIndexBuffer3D.__name__ = ["openfl","_internal","stage3D","opengl","GLIndexBuffer3D"];
GLIndexBuffer3D.prototype = {
	
};
GLIndexBuffer3D.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLIndexBuffer3D"] = GLIndexBuffer3D;
// Init
// Statics
GLIndexBuffer3D.create = function(indexBuffer,renderSession,bufferUsage) {
	var gl = renderSession.gl;
	indexBuffer.__elementType = gl.UNSIGNED_SHORT;
	indexBuffer.__id = gl.createBuffer();
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	indexBuffer.__usage = bufferUsage == "dynamicDraw" ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW;
}
GLIndexBuffer3D.dispose = function(indexBuffer,renderSession) {
	var gl = renderSession.gl;
	gl.deleteBuffer(indexBuffer.__id);
}
GLIndexBuffer3D.uploadFromByteArray = function(indexBuffer,renderSession,data,byteArrayOffset,startOffset,count) {
	var offset = byteArrayOffset + startOffset * 2;
	var buffer = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toArrayBuffer(data);
	var this1;
	if(buffer != null) {
		if(count == null) {
			this1 = new Int16Array(buffer,offset);
		} else {
			this1 = new Int16Array(buffer,offset,count);
		}
	} else {
		this1 = null;
	}
	GLIndexBuffer3D.uploadFromTypedArray(indexBuffer,renderSession,this1);
}
GLIndexBuffer3D.uploadFromTypedArray = function(indexBuffer,renderSession,data) {
	if(data == null) {
		return;
	}
	var gl = renderSession.gl;
	gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,indexBuffer.__id);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	(lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$().default).bufferData(gl,gl.ELEMENT_ARRAY_BUFFER,data,indexBuffer.__usage);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLIndexBuffer3D.uploadFromVector = function(indexBuffer,renderSession,data,startOffset,count) {
	if(data == null) {
		return;
	}
	var gl = renderSession.gl;
	var length = startOffset + count;
	var existingInt16Array = indexBuffer.__tempInt16Array;
	if(indexBuffer.__tempInt16Array == null || indexBuffer.__tempInt16Array.length < count) {
		var this1;
		if(count != null) {
			this1 = new Int16Array(count);
		} else {
			this1 = null;
		}
		indexBuffer.__tempInt16Array = this1;
		if(existingInt16Array != null) {
			indexBuffer.__tempInt16Array.set(existingInt16Array);
		}
	}
	var _g1 = startOffset;
	var _g = length;
	while(_g1 < _g) {
		var i = _g1++;
		indexBuffer.__tempInt16Array[i - startOffset] = data.get(i);
	}
	GLIndexBuffer3D.uploadFromTypedArray(indexBuffer,renderSession,indexBuffer.__tempInt16Array);
}
// Export
exports.default = GLIndexBuffer3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 401 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.Program3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_opengl_GLProgram3D() {return __webpack_require__(217);}
function List() {return __webpack_require__(48);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
// Constructor
var Program3D = function(context3D) {
	this.__context = context3D;
	this.__memUsage = 0;
	this.__samplerUsageMask = 0;
	this.__uniforms = new (List().default)();
	this.__samplerUniforms = new (List().default)();
	this.__alphaSamplerUniforms = new (List().default)();
	this.__alphaSamplerEnabled = [];
	this.__samplerStates = (openfl__$Vector_Vector_$Impl_$().default)._new(8);
}
// Meta
Program3D.__name__ = ["openfl","display3D","Program3D"];
Program3D.prototype = {
	dispose: function() {
		(openfl__$internal_stage3D_opengl_GLProgram3D().default).dispose(this,this.__context.__renderSession);
	},
	upload: function(vertexProgram,fragmentProgram) {
		(openfl__$internal_stage3D_opengl_GLProgram3D().default).upload(this,this.__context.__renderSession,vertexProgram,fragmentProgram);
	},
	__flush: function() {
		this.__vertexUniformMap.flush();
		this.__fragmentUniformMap.flush();
	},
	__getSamplerState: function(sampler) {
		return this.__samplerStates.get(sampler);
	},
	__markDirty: function(isVertex,index,count) {
		if(isVertex) {
			this.__vertexUniformMap.markDirty(index,count);
		} else {
			this.__fragmentUniformMap.markDirty(index,count);
		}
	},
	__setPositionScale: function(positionScale) {
		if(this.__positionScale != null) {
			(openfl__$internal_stage3D_opengl_GLProgram3D().default).setPositionScale(this,this.__context.__renderSession,positionScale);
		}
	},
	__setSamplerState: function(sampler,state) {
		this.__samplerStates.set(sampler,state);
	},
	__use: function() {
		(openfl__$internal_stage3D_opengl_GLProgram3D().default)["use"](this,this.__context.__renderSession);
	}
};
Program3D.prototype.__class__ = $hxClasses["openfl.display3D.Program3D"] = Program3D;
// Init
// Statics
// Export
exports.default = Program3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 402 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.RegisterMap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
function openfl__$internal_stage3D__$AGALConverter_RegisterMapEntry() {return __webpack_require__(403);}
function openfl__$internal_stage3D_AGALConverter() {return __webpack_require__(83);}
function openfl__$internal_stage3D__$AGALConverter_RegisterUsage() {return __webpack_require__(218);}
function haxe_ds_ObjectMap() {return __webpack_require__(57);}
function js_Boot() {return __webpack_require__(20);}
function StringBuf() {return __webpack_require__(31);}
function Type() {return __webpack_require__(10);}
function haxe_Log() {return __webpack_require__(47);}
// Constructor
var RegisterMap = function() {
	this.mEntries = [];
}
// Meta
RegisterMap.__name__ = ["openfl","_internal","stage3D","RegisterMap"];
RegisterMap.prototype = {
	add: function(type,name,number,usage) {
		var _g = 0;
		var _g1 = this.mEntries;
		while(_g < _g1.length) {
			var entry = _g1[_g];
			++_g;
			if(entry.type == type && entry.name == name && entry.number == number) {
				if(entry.usage != usage) {
					throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)("Cannot use register in multiple ways yet (mat4/vec4)"));
				}
				return;
			}
		}
		var entry1 = new (openfl__$internal_stage3D__$AGALConverter_RegisterMapEntry().default)();
		entry1.type = type;
		entry1.name = name;
		entry1.number = number;
		entry1.usage = usage;
		this.mEntries.push(entry1);
	},
	addDR: function(dr,usage) {
		this.add(dr.type,dr.toGLSL(false),dr.n,usage);
	},
	addSaR: function(sr,usage) {
		this.add(sr.type,sr.toGLSL(),sr.n,usage);
	},
	addSR: function(sr,usage,offset) {
		if(offset == null) {
			offset = 0;
		}
		if(sr.d != 0) {
			this.add(sr.itype,(openfl__$internal_stage3D_AGALConverter().default).prefixFromType(sr.itype,sr.programType) + sr.n,sr.n,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4);
			this.add(sr.type,(openfl__$internal_stage3D_AGALConverter().default).prefixFromType(sr.type,sr.programType) + sr.o,sr.o,(openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4_ARRAY);
			return;
		}
		this.add(sr.type,sr.toGLSL(false,offset),sr.n + offset,usage);
	},
	getRegisterUsage: function(sr) {
		if(sr.d != 0) {
			return (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4_ARRAY;
		}
		return this.getUsage(sr.type,sr.toGLSL(false),sr.n);
	},
	getUsage: function(type,name,number) {
		var _g = 0;
		var _g1 = this.mEntries;
		while(_g < _g1.length) {
			var entry = _g1[_g];
			++_g;
			if(entry.type == type && entry.name == name && entry.number == number) {
				return entry.usage;
			}
		}
		return (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).UNUSED;
	},
	toGLSL: function(tempRegistersOnly) {
		this.mEntries.sort(function(a,b) {
			return a.number - b.number;
		});
		var arrayCount = new (haxe_ds_ObjectMap().default)();
		var entry;
		var _g1 = 0;
		var _g = this.mEntries.length;
		while(_g1 < _g) {
			var i = _g1++;
			entry = this.mEntries[i];
			if(entry.usage == (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4_ARRAY) {
				if(i < this.mEntries.length - 1) {
					var v = this.mEntries[i + 1].number - entry.number;
					arrayCount.set(entry,v);
				} else {
					arrayCount.set(entry,128);
				}
			}
		}
		this.mEntries.sort(function(a1,b1) {
			return (js_Boot().default).__cast(a1.type , $hxClasses["Int"]) - (js_Boot().default).__cast(b1.type , $hxClasses["Int"]);
		});
		var sb = new (StringBuf().default)();
		var _g11 = 0;
		var _g2 = this.mEntries.length;
		while(_g11 < _g2) {
			var i1 = _g11++;
			entry = this.mEntries[i1];
			if(tempRegistersOnly && entry.type != 2 || !tempRegistersOnly && entry.type == 2) {
				continue;
			}
			if(entry.type == 3) {
				continue;
			}
			var _g21 = entry.type;
			switch(_g21) {
			case 0:
				sb.add("attribute ");
				break;
			case 1:
				sb.add("uniform ");
				break;
			case 2:
				sb.add("\t");
				break;
			case 3:
				break;
			case 4:
				sb.add("varying ");
				break;
			case 5:
				sb.add("uniform ");
				break;
			default:
				throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
			}
			var _g3 = entry.usage;
			switch((Type().default).enumIndex(_g3)) {
			case 0:
				(haxe_Log().default).trace("Missing switch patten: RegisterUsage.UNUSED",{ fileName : "AGALConverter.hx", lineNumber : 839, className : "openfl._internal.stage3D.RegisterMap", methodName : "toGLSL"});
				break;
			case 1:
				sb.add("vec4 ");
				break;
			case 2:
				sb.add("mat4 ");
				break;
			case 3:
				sb.add("sampler2D ");
				break;
			case 4:
				break;
			case 5:
				sb.add("samplerCube ");
				break;
			case 6:
				break;
			case 7:
				sb.add("vec4 ");
				break;
			}
			if(entry.usage == (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).SAMPLER_2D_ALPHA) {
				sb.add("sampler2D ");
				sb.add(entry.name);
				sb.add(";\n");
				sb.add("uniform ");
				sb.add("sampler2D ");
				sb.add(entry.name + "_alpha");
				sb.add(";\n");
				sb.add("uniform ");
				sb.add("bool ");
				sb.add(entry.name + "_alphaEnabled");
				sb.add(";\n");
			} else if(entry.usage == (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).SAMPLER_CUBE_ALPHA) {
				sb.add("samplerCube ");
				sb.add(entry.name);
				sb.add(";\n");
				sb.add("uniform ");
				sb.add("samplerCube ");
				sb.add(entry.name + "_alpha");
				sb.add(";\n");
				sb.add("uniform ");
				sb.add("bool ");
				sb.add(entry.name + "_alphaEnabled");
				sb.add(";\n");
			} else if(entry.usage == (openfl__$internal_stage3D__$AGALConverter_RegisterUsage().default).VECTOR_4_ARRAY) {
				sb.add(entry.name + "[" + arrayCount.get(entry) + "]");
				sb.add(";\n");
			} else {
				sb.add(entry.name);
				sb.add(";\n");
			}
		}
		return sb.toString();
	}
};
RegisterMap.prototype.__class__ = $hxClasses["openfl._internal.stage3D.RegisterMap"] = RegisterMap;
// Init
// Statics
// Export
exports.default = RegisterMap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 403 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D._AGALConverter.RegisterMapEntry
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var RegisterMapEntry = function() {
}
// Meta
RegisterMapEntry.__name__ = ["openfl","_internal","stage3D","_AGALConverter","RegisterMapEntry"];
RegisterMapEntry.prototype = {
	
};
RegisterMapEntry.prototype.__class__ = $hxClasses["openfl._internal.stage3D._AGALConverter.RegisterMapEntry"] = RegisterMapEntry;
// Init
// Statics
// Export
exports.default = RegisterMapEntry;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 404 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D._AGALConverter.DestRegister
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D__$AGALConverter_ProgramType() {return __webpack_require__(143);}
function openfl__$internal_stage3D_AGALConverter() {return __webpack_require__(83);}
// Constructor
var DestRegister = function() {
}
// Meta
DestRegister.__name__ = ["openfl","_internal","stage3D","_AGALConverter","DestRegister"];
DestRegister.prototype = {
	getWriteMask: function() {
		var str = ".";
		if((this.mask & 1) != 0) {
			str += "x";
		}
		if((this.mask & 2) != 0) {
			str += "y";
		}
		if((this.mask & 4) != 0) {
			str += "z";
		}
		if((this.mask & 8) != 0) {
			str += "w";
		}
		return str;
	},
	toGLSL: function(useMask) {
		if(useMask == null) {
			useMask = true;
		}
		var str;
		if(this.type == 3) {
			if(this.programType == (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).VERTEX) {
				str = "gl_Position";
			} else {
				str = "gl_FragColor";
			}
		} else {
			str = (openfl__$internal_stage3D_AGALConverter().default).prefixFromType(this.type,this.programType) + this.n;
		}
		if(useMask && this.mask != 15) {
			str += this.getWriteMask();
		}
		return str;
	}
};
DestRegister.prototype.__class__ = $hxClasses["openfl._internal.stage3D._AGALConverter.DestRegister"] = DestRegister;
// Init
// Statics
DestRegister.parse = function(v,programType) {
	var dr = new DestRegister();
	dr.programType = programType;
	dr.type = v >>> 24 & 15;
	dr.mask = v >>> 16 & 15;
	dr.n = v & 65535;
	return dr;
}
// Export
exports.default = DestRegister;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 405 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D._AGALConverter.SourceRegister
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D__$AGALConverter_ProgramType() {return __webpack_require__(143);}
function openfl__$internal_stage3D_AGALConverter() {return __webpack_require__(83);}
function HxOverrides() {return __webpack_require__(7);}
function haxe__$Int64__$_$_$Int64() {return __webpack_require__(54);}
// Constructor
var SourceRegister = function() {
}
// Meta
SourceRegister.__name__ = ["openfl","_internal","stage3D","_AGALConverter","SourceRegister"];
SourceRegister.prototype = {
	toGLSL: function(emitSwizzle,offset) {
		if(offset == null) {
			offset = 0;
		}
		if(emitSwizzle == null) {
			emitSwizzle = true;
		}
		if(this.type == 3) {
			if(this.programType == (openfl__$internal_stage3D__$AGALConverter_ProgramType().default).VERTEX) {
				return "gl_Position";
			} else {
				return "gl_FragColor";
			}
		}
		var fullxyzw = this.s == 228 && this.sourceMask == 15;
		var swizzle = "";
		if(this.type != 5 && !fullxyzw) {
			var _g = 0;
			while(_g < 4) {
				var i = _g++;
				if((this.sourceMask & 1 << i) != 0) {
					var _g1 = this.s >> i * 2 & 3;
					switch(_g1) {
					case 0:
						swizzle += "x";
						break;
					case 1:
						swizzle += "y";
						break;
					case 2:
						swizzle += "z";
						break;
					case 3:
						swizzle += "w";
						break;
					}
				}
			}
		}
		var str = (openfl__$internal_stage3D_AGALConverter().default).prefixFromType(this.type,this.programType);
		if(this.d == 0) {
			str += this.n + offset;
		} else {
			str += this.o;
			var indexComponent = String.fromCharCode((HxOverrides().default).cca("x",0) + this.q);
			var indexRegister = (openfl__$internal_stage3D_AGALConverter().default).prefixFromType(this.itype,this.programType) + this.n + "." + indexComponent;
			str += "[ int(" + indexRegister + ") +" + offset + "]";
		}
		if(emitSwizzle && swizzle != "") {
			str += "." + swizzle;
		}
		return str;
	}
};
SourceRegister.prototype.__class__ = $hxClasses["openfl._internal.stage3D._AGALConverter.SourceRegister"] = SourceRegister;
// Init
// Statics
SourceRegister.parse = function(v,programType,sourceMask) {
	var sr = new SourceRegister();
	sr.programType = programType;
	var b = 63;
	b &= 63;
	var a;
	if(b == 0) {
		var this1 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a = this1;
	} else if(b < 32) {
		var this2 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b,v.high << 32 - b | v.low >>> b);
		a = this2;
	} else {
		var this3 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b - 32);
		a = this3;
	}
	var this4 = new (haxe__$Int64__$_$_$Int64().default)(0,1);
	var b1 = this4;
	var this5 = new (haxe__$Int64__$_$_$Int64().default)(a.high & b1.high,a.low & b1.low);
	sr.d = this5.low;
	var b2 = 48;
	b2 &= 63;
	var a1;
	if(b2 == 0) {
		var this6 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a1 = this6;
	} else if(b2 < 32) {
		var this7 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b2,v.high << 32 - b2 | v.low >>> b2);
		a1 = this7;
	} else {
		var this8 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b2 - 32);
		a1 = this8;
	}
	var this9 = new (haxe__$Int64__$_$_$Int64().default)(0,3);
	var b3 = this9;
	var this10 = new (haxe__$Int64__$_$_$Int64().default)(a1.high & b3.high,a1.low & b3.low);
	sr.q = this10.low;
	var b4 = 40;
	b4 &= 63;
	var a2;
	if(b4 == 0) {
		var this11 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a2 = this11;
	} else if(b4 < 32) {
		var this12 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b4,v.high << 32 - b4 | v.low >>> b4);
		a2 = this12;
	} else {
		var this13 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b4 - 32);
		a2 = this13;
	}
	var this14 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b5 = this14;
	var this15 = new (haxe__$Int64__$_$_$Int64().default)(a2.high & b5.high,a2.low & b5.low);
	sr.itype = this15.low;
	var b6 = 32;
	b6 &= 63;
	var a3;
	if(b6 == 0) {
		var this16 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a3 = this16;
	} else if(b6 < 32) {
		var this17 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b6,v.high << 32 - b6 | v.low >>> b6);
		a3 = this17;
	} else {
		var this18 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b6 - 32);
		a3 = this18;
	}
	var this19 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b7 = this19;
	var this20 = new (haxe__$Int64__$_$_$Int64().default)(a3.high & b7.high,a3.low & b7.low);
	sr.type = this20.low;
	var b8 = 24;
	b8 &= 63;
	var a4;
	if(b8 == 0) {
		var this21 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a4 = this21;
	} else if(b8 < 32) {
		var this22 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b8,v.high << 32 - b8 | v.low >>> b8);
		a4 = this22;
	} else {
		var this23 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b8 - 32);
		a4 = this23;
	}
	var this24 = new (haxe__$Int64__$_$_$Int64().default)(0,255);
	var b9 = this24;
	var this25 = new (haxe__$Int64__$_$_$Int64().default)(a4.high & b9.high,a4.low & b9.low);
	sr.s = this25.low;
	var b10 = 16;
	b10 &= 63;
	var a5;
	if(b10 == 0) {
		var this26 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a5 = this26;
	} else if(b10 < 32) {
		var this27 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b10,v.high << 32 - b10 | v.low >>> b10);
		a5 = this27;
	} else {
		var this28 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b10 - 32);
		a5 = this28;
	}
	var this29 = new (haxe__$Int64__$_$_$Int64().default)(0,255);
	var b11 = this29;
	var this30 = new (haxe__$Int64__$_$_$Int64().default)(a5.high & b11.high,a5.low & b11.low);
	sr.o = this30.low;
	var this31 = new (haxe__$Int64__$_$_$Int64().default)(0,65535);
	var b12 = this31;
	var this32 = new (haxe__$Int64__$_$_$Int64().default)(v.high & b12.high,v.low & b12.low);
	sr.n = this32.low;
	sr.sourceMask = sourceMask;
	return sr;
}
// Export
exports.default = SourceRegister;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 406 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D._AGALConverter.SamplerRegister
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_AGALConverter() {return __webpack_require__(83);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_IllegalOperationError() {return __webpack_require__(38);}
function openfl__$internal_stage3D_SamplerState() {return __webpack_require__(214);}
function haxe__$Int64__$_$_$Int64() {return __webpack_require__(54);}
// Constructor
var SamplerRegister = function() {
}
// Meta
SamplerRegister.__name__ = ["openfl","_internal","stage3D","_AGALConverter","SamplerRegister"];
SamplerRegister.prototype = {
	toGLSL: function() {
		var str = (openfl__$internal_stage3D_AGALConverter().default).prefixFromType(this.type,this.programType) + this.n;
		return str;
	},
	toSamplerState: function() {
		var magFilter = 0;
		var minFilter = 0;
		var wrapModeS = 0;
		var wrapModeT = 0;
		var _g = this.f;
		switch(_g) {
		case 0:
			magFilter = 9728;
			break;
		case 1:
			magFilter = 9729;
			break;
		default:
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
		}
		var _g1 = this.m;
		switch(_g1) {
		case 0:
			if(this.f != 0) {
				minFilter = 9729;
			} else {
				minFilter = 9728;
			}
			break;
		case 1:
			if(this.f != 0) {
				minFilter = 9985;
			} else {
				minFilter = 9984;
			}
			break;
		case 2:
			if(this.f != 0) {
				minFilter = 9987;
			} else {
				minFilter = 9986;
			}
			break;
		default:
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
		}
		var _g2 = this.w;
		switch(_g2) {
		case 0:
			wrapModeS = 33071;
			wrapModeT = 33071;
			break;
		case 1:
			wrapModeS = 10497;
			wrapModeT = 10497;
			break;
		default:
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_IllegalOperationError().default)());
		}
		var ignoreSampler = (this.s & 4) == 4;
		var centroid = (this.s & 1) == 1;
		var textureAlpha = this.t == 2;
		var lodBias = (this.b << 24 >> 24) / 8.0;
		var maxAniso = 0.0;
		return new (openfl__$internal_stage3D_SamplerState().default)(minFilter,magFilter,wrapModeS,wrapModeT,lodBias,maxAniso,ignoreSampler,centroid,false,textureAlpha);
	}
};
SamplerRegister.prototype.__class__ = $hxClasses["openfl._internal.stage3D._AGALConverter.SamplerRegister"] = SamplerRegister;
// Init
// Statics
SamplerRegister.parse = function(v,programType) {
	var sr = new SamplerRegister();
	sr.programType = programType;
	var b = 60;
	b &= 63;
	var a;
	if(b == 0) {
		var this1 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a = this1;
	} else if(b < 32) {
		var this2 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b,v.high << 32 - b | v.low >>> b);
		a = this2;
	} else {
		var this3 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b - 32);
		a = this3;
	}
	var this4 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b1 = this4;
	var this5 = new (haxe__$Int64__$_$_$Int64().default)(a.high & b1.high,a.low & b1.low);
	sr.f = this5.low;
	var b2 = 56;
	b2 &= 63;
	var a1;
	if(b2 == 0) {
		var this6 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a1 = this6;
	} else if(b2 < 32) {
		var this7 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b2,v.high << 32 - b2 | v.low >>> b2);
		a1 = this7;
	} else {
		var this8 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b2 - 32);
		a1 = this8;
	}
	var this9 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b3 = this9;
	var this10 = new (haxe__$Int64__$_$_$Int64().default)(a1.high & b3.high,a1.low & b3.low);
	sr.m = this10.low;
	var b4 = 52;
	b4 &= 63;
	var a2;
	if(b4 == 0) {
		var this11 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a2 = this11;
	} else if(b4 < 32) {
		var this12 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b4,v.high << 32 - b4 | v.low >>> b4);
		a2 = this12;
	} else {
		var this13 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b4 - 32);
		a2 = this13;
	}
	var this14 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b5 = this14;
	var this15 = new (haxe__$Int64__$_$_$Int64().default)(a2.high & b5.high,a2.low & b5.low);
	sr.w = this15.low;
	var b6 = 48;
	b6 &= 63;
	var a3;
	if(b6 == 0) {
		var this16 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a3 = this16;
	} else if(b6 < 32) {
		var this17 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b6,v.high << 32 - b6 | v.low >>> b6);
		a3 = this17;
	} else {
		var this18 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b6 - 32);
		a3 = this18;
	}
	var this19 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b7 = this19;
	var this20 = new (haxe__$Int64__$_$_$Int64().default)(a3.high & b7.high,a3.low & b7.low);
	sr.s = this20.low;
	var b8 = 44;
	b8 &= 63;
	var a4;
	if(b8 == 0) {
		var this21 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a4 = this21;
	} else if(b8 < 32) {
		var this22 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b8,v.high << 32 - b8 | v.low >>> b8);
		a4 = this22;
	} else {
		var this23 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b8 - 32);
		a4 = this23;
	}
	var this24 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b9 = this24;
	var this25 = new (haxe__$Int64__$_$_$Int64().default)(a4.high & b9.high,a4.low & b9.low);
	sr.d = this25.low;
	var b10 = 40;
	b10 &= 63;
	var a5;
	if(b10 == 0) {
		var this26 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a5 = this26;
	} else if(b10 < 32) {
		var this27 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b10,v.high << 32 - b10 | v.low >>> b10);
		a5 = this27;
	} else {
		var this28 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b10 - 32);
		a5 = this28;
	}
	var this29 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b11 = this29;
	var this30 = new (haxe__$Int64__$_$_$Int64().default)(a5.high & b11.high,a5.low & b11.low);
	sr.t = this30.low;
	var b12 = 32;
	b12 &= 63;
	var a6;
	if(b12 == 0) {
		var this31 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a6 = this31;
	} else if(b12 < 32) {
		var this32 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b12,v.high << 32 - b12 | v.low >>> b12);
		a6 = this32;
	} else {
		var this33 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b12 - 32);
		a6 = this33;
	}
	var this34 = new (haxe__$Int64__$_$_$Int64().default)(0,15);
	var b13 = this34;
	var this35 = new (haxe__$Int64__$_$_$Int64().default)(a6.high & b13.high,a6.low & b13.low);
	sr.type = this35.low;
	var b14 = 16;
	b14 &= 63;
	var a7;
	if(b14 == 0) {
		var this36 = new (haxe__$Int64__$_$_$Int64().default)(v.high,v.low);
		a7 = this36;
	} else if(b14 < 32) {
		var this37 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> b14,v.high << 32 - b14 | v.low >>> b14);
		a7 = this37;
	} else {
		var this38 = new (haxe__$Int64__$_$_$Int64().default)(v.high >> 31,v.high >> b14 - 32);
		a7 = this38;
	}
	var this39 = new (haxe__$Int64__$_$_$Int64().default)(0,255);
	var b15 = this39;
	var this40 = new (haxe__$Int64__$_$_$Int64().default)(a7.high & b15.high,a7.low & b15.low);
	sr.b = this40.low;
	var this41 = new (haxe__$Int64__$_$_$Int64().default)(0,65535);
	var b16 = this41;
	var this42 = new (haxe__$Int64__$_$_$Int64().default)(v.high & b16.high,v.low & b16.low);
	sr.n = this42.low;
	return sr;
}
// Export
exports.default = SamplerRegister;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 407 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.Uniform
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_opengl_GLProgram3D() {return __webpack_require__(217);}
function lime_utils_BytePointerData() {return __webpack_require__(73);}
// Constructor
var Uniform = function(gl) {
	this.gl = gl;
	this.isDirty = true;
	var this1 = new (lime_utils_BytePointerData().default)(null,0);
	this.regDataPointer = this1;
}
// Meta
Uniform.__name__ = ["openfl","display3D","Uniform"];
Uniform.prototype = {
	flush: function() {
		(openfl__$internal_stage3D_opengl_GLProgram3D().default).flushUniform(this,this.gl);
	}
};
Uniform.prototype.__class__ = $hxClasses["openfl.display3D.Uniform"] = Uniform;
// Init
// Statics
// Export
exports.default = Uniform;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 408 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: Lambda
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $iterator = __webpack_require__(132).default;
// Constructor
var Lambda = function(){}
// Meta
Lambda.__name__ = ["Lambda"];
Lambda.prototype = {
	
};
Lambda.prototype.__class__ = $hxClasses["Lambda"] = Lambda;
// Init
// Statics
Lambda.array = function(it) {
	var a = [];
	var i = $iterator(it)();
	while(i.hasNext()) {
		var i1 = i.next();
		a.push(i1);
	}
	return a;
}
// Export
exports.default = Lambda;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 409 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.UniformMap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
// Constructor
var UniformMap = function(list) {
	this.__uniforms = list;
	this.__uniforms.sort(function(a,b) {
		return (Reflect().default).compare(a.regIndex,b.regIndex);
	});
	var total = 0;
	var _g = 0;
	var _g1 = this.__uniforms;
	while(_g < _g1.length) {
		var uniform = _g1[_g];
		++_g;
		if(uniform.regIndex + uniform.regCount > total) {
			total = uniform.regIndex + uniform.regCount;
		}
	}
	this.__registerLookup = (openfl__$Vector_Vector_$Impl_$().default)._new(total);
	var _g2 = 0;
	var _g11 = this.__uniforms;
	while(_g2 < _g11.length) {
		var uniform1 = _g11[_g2];
		++_g2;
		var _g3 = 0;
		var _g21 = uniform1.regCount;
		while(_g3 < _g21) {
			var i = _g3++;
			this.__registerLookup.set(uniform1.regIndex + i,uniform1);
		}
	}
	this.__anyDirty = this.__allDirty = true;
}
// Meta
UniformMap.__name__ = ["openfl","display3D","UniformMap"];
UniformMap.prototype = {
	flush: function() {
		if(this.__anyDirty) {
			var _g = 0;
			var _g1 = this.__uniforms;
			while(_g < _g1.length) {
				var uniform = _g1[_g];
				++_g;
				if(this.__allDirty || uniform.isDirty) {
					uniform.flush();
					uniform.isDirty = false;
				}
			}
			this.__anyDirty = this.__allDirty = false;
		}
	},
	markAllDirty: function() {
		this.__allDirty = true;
		this.__anyDirty = true;
	},
	markDirty: function(start,count) {
		if(this.__allDirty) {
			return;
		}
		var end = start + count;
		if(end > this.__registerLookup.get_length()) {
			end = this.__registerLookup.get_length();
		}
		var index = start;
		while(index < end) {
			var uniform = this.__registerLookup.get(index);
			if(uniform != null) {
				uniform.isDirty = true;
				this.__anyDirty = true;
				index = uniform.regIndex + uniform.regCount;
			} else {
				++index;
			}
		}
	}
};
UniformMap.prototype.__class__ = $hxClasses["openfl.display3D.UniformMap"] = UniformMap;
// Init
// Statics
// Export
exports.default = UniformMap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 410 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLVertexBuffer3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$() {return __webpack_require__(94);}
// Constructor
var GLVertexBuffer3D = function(){}
// Meta
GLVertexBuffer3D.__name__ = ["openfl","_internal","stage3D","opengl","GLVertexBuffer3D"];
GLVertexBuffer3D.prototype = {
	
};
GLVertexBuffer3D.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLVertexBuffer3D"] = GLVertexBuffer3D;
// Init
// Statics
GLVertexBuffer3D.create = function(vertexBuffer,renderSession,bufferUsage) {
	var gl = renderSession.gl;
	vertexBuffer.__id = gl.createBuffer();
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	vertexBuffer.__stride = vertexBuffer.__vertexSize * 4;
	vertexBuffer.__usage = bufferUsage == "dynamicDraw" ? gl.DYNAMIC_DRAW : gl.STATIC_DRAW;
}
GLVertexBuffer3D.dispose = function(vertexBuffer,renderSession) {
	var gl = renderSession.gl;
	gl.deleteBuffer(vertexBuffer.__id);
}
GLVertexBuffer3D.uploadFromByteArray = function(vertexBuffer,renderSession,data,byteArrayOffset,startVertex,numVertices) {
	var offset = byteArrayOffset + startVertex * vertexBuffer.__stride;
	var length = numVertices * vertexBuffer.__vertexSize;
	var buffer = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).toArrayBuffer(data);
	var this1;
	if(buffer != null) {
		if(length == null) {
			this1 = new Float32Array(buffer,offset);
		} else {
			this1 = new Float32Array(buffer,offset,length);
		}
	} else {
		this1 = null;
	}
	GLVertexBuffer3D.uploadFromTypedArray(vertexBuffer,renderSession,this1);
}
GLVertexBuffer3D.uploadFromTypedArray = function(vertexBuffer,renderSession,data) {
	if(data == null) {
		return;
	}
	var gl = renderSession.gl;
	gl.bindBuffer(gl.ARRAY_BUFFER,vertexBuffer.__id);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	(lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$().default).bufferData(gl,gl.ARRAY_BUFFER,data,vertexBuffer.__usage);
	(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
}
GLVertexBuffer3D.uploadFromVector = function(vertexBuffer,renderSession,data,startVertex,numVertices) {
	if(data == null) {
		return;
	}
	var gl = renderSession.gl;
	var start = startVertex * vertexBuffer.__vertexSize;
	var count = numVertices * vertexBuffer.__vertexSize;
	var length = start + count;
	var existingFloat32Array = vertexBuffer.__tempFloat32Array;
	if(vertexBuffer.__tempFloat32Array == null || vertexBuffer.__tempFloat32Array.length < count) {
		var this1;
		if(count != null) {
			this1 = new Float32Array(count);
		} else {
			this1 = null;
		}
		vertexBuffer.__tempFloat32Array = this1;
		if(existingFloat32Array != null) {
			vertexBuffer.__tempFloat32Array.set(existingFloat32Array);
		}
	}
	var _g1 = start;
	var _g = length;
	while(_g1 < _g) {
		var i = _g1++;
		vertexBuffer.__tempFloat32Array[i - start] = data.get(i);
	}
	GLVertexBuffer3D.uploadFromTypedArray(vertexBuffer,renderSession,vertexBuffer.__tempFloat32Array);
}
// Export
exports.default = GLVertexBuffer3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 411 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display3D.textures.VideoTexture
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display3D_textures_TextureBase() {return __webpack_require__(82);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl__$internal_stage3D_opengl_GLVideoTexture() {return __webpack_require__(412);}
function openfl_events_Event() {return __webpack_require__(9);}
// Constructor
var VideoTexture = function(context) {
	(openfl_display3D_textures_TextureBase().default).call(this,context);
	(openfl__$internal_stage3D_opengl_GLVideoTexture().default).create(this,this.__context.__renderSession);
}
// Meta
VideoTexture.__name__ = ["openfl","display3D","textures","VideoTexture"];
VideoTexture.__super__ = (openfl_display3D_textures_TextureBase().default);
VideoTexture.prototype = $extend((openfl_display3D_textures_TextureBase().default).prototype, {
	attachNetStream: function(netStream) {
		var _gthis = this;
		this.__netStream = netStream;
		if(this.__netStream.__video.readyState == 4) {
			(haxe_Timer().default).delay(function() {
				_gthis.__textureReady();
			},0);
		} else {
			this.__netStream.__video.addEventListener("canplay",function(_) {
				_gthis.__textureReady();
			},false);
		}
	},
	__getTexture: function() {
		return (openfl__$internal_stage3D_opengl_GLVideoTexture().default).getTexture(this,this.__context.__renderSession);
	},
	__textureReady: function() {
		this.videoWidth = this.__netStream.__video.videoWidth;
		this.videoHeight = this.__netStream.__video.videoHeight;
		this.dispatchEvent(new (openfl_events_Event().default)("textureReady"));
	}
});
VideoTexture.prototype.__class__ = $hxClasses["openfl.display3D.textures.VideoTexture"] = VideoTexture;
// Init
// Statics
// Export
exports.default = VideoTexture;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 412 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLVideoTexture
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
function lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$() {return __webpack_require__(94);}
// Constructor
var GLVideoTexture = function(){}
// Meta
GLVideoTexture.__name__ = ["openfl","_internal","stage3D","opengl","GLVideoTexture"];
GLVideoTexture.prototype = {
	
};
GLVideoTexture.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLVideoTexture"] = GLVideoTexture;
// Init
// Statics
GLVideoTexture.create = function(videoTexture,renderSession) {
	var gl = renderSession.gl;
	videoTexture.__textureTarget = gl.TEXTURE_2D;
}
GLVideoTexture.getTexture = function(videoTexture,renderSession) {
	if(!videoTexture.__netStream.__video.paused) {
		var gl = renderSession.gl;
		gl.bindTexture(videoTexture.__textureTarget,videoTexture.__textureID);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
		(lime_graphics_opengl__$WebGLContext_WebGLContext_$Impl_$().default).texImage2D(gl,gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,videoTexture.__netStream.__video);
		(openfl__$internal_stage3D_GLUtils().default).CheckGLError();
	}
	return videoTexture.__textureID;
}
// Export
exports.default = GLVideoTexture;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 413 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.Context3DStateCache
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
// Constructor
var Context3DStateCache = function() {
	this._registers = (openfl__$Vector_Vector_$Impl_$().default)._new(4096);
	this.clearSettings();
}
// Meta
Context3DStateCache.__name__ = ["openfl","_internal","stage3D","Context3DStateCache"];
Context3DStateCache.prototype = {
	clearRegisters: function() {
		var numFloats = 4096;
		var _g1 = 0;
		var _g = numFloats;
		while(_g1 < _g) {
			var c = _g1++;
			this._registers.set(c,-999999999.0);
		}
	},
	clearSettings: function() {
		this._srcBlendFactor = null;
		this._destBlendFactor = null;
		this._depthTestEnabled = false;
		this._depthTestMask = false;
		this._depthTestCompareMode = null;
		this._program = null;
		this._cullingMode = null;
		this._activeTexture = -1;
		this._activeVertexArray = -1;
		this._viewportOriginX = -1;
		this._viewportOriginY = -1;
		this._viewportWidth = -1;
		this._viewportHeight = -1;
		this.clearRegisters();
	},
	updateActiveTextureSample: function(texture) {
		this._activeTexture = texture;
		return true;
	},
	updateActiveVertexArray: function(vertexArray) {
		this._activeVertexArray = vertexArray;
		return true;
	},
	updateBlendDestFactor: function(factor) {
		this._destBlendFactor = factor;
		return true;
	},
	updateBlendSrcFactor: function(factor) {
		this._srcBlendFactor = factor;
		return true;
	},
	updateCullingMode: function(cullMode) {
		this._cullingMode = cullMode;
		return true;
	},
	updateDepthCompareMode: function(mode) {
		this._depthTestCompareMode = mode;
		return true;
	},
	updateDepthTestEnabled: function(test) {
		this._depthTestEnabled = test;
		return true;
	},
	updateDepthTestMask: function(mask) {
		this._depthTestMask = mask;
		return true;
	},
	updateProgram3D: function(program3d) {
		this._program = program3d;
		return true;
	},
	updateRegisters: function(mTemp,startRegister,numRegisters) {
		return true;
	},
	updateViewport: function(originX,originY,width,height) {
		this._viewportOriginX = originX;
		this._viewportOriginY = originY;
		this._viewportWidth = width;
		this._viewportHeight = height;
		return true;
	}
};
Context3DStateCache.prototype.__class__ = $hxClasses["openfl._internal.stage3D.Context3DStateCache"] = Context3DStateCache;
// Init
// Statics
Context3DStateCache.FLOATS_PER_REGISTER = 4
Context3DStateCache.MAX_NUM_REGISTERS = 1024
Context3DStateCache.disableCache = true
// Export
exports.default = Context3DStateCache;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 414 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: js.html._CanvasElement.CanvasUtil
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var CanvasUtil = function(){}
// Meta
CanvasUtil.__name__ = ["js","html","_CanvasElement","CanvasUtil"];
CanvasUtil.prototype = {
	
};
CanvasUtil.prototype.__class__ = $hxClasses["js.html._CanvasElement.CanvasUtil"] = CanvasUtil;
// Init
// Statics
CanvasUtil.getContextWebGL = function(canvas,attribs) {
	var _g = 0;
	var _g1 = ["webgl","experimental-webgl"];
	while(_g < _g1.length) {
		var name = _g1[_g];
		++_g;
		var ctx = canvas.getContext(name,attribs);
		if(ctx != null) {
			return ctx;
		}
	}
	return null;
}
// Export
exports.default = CanvasUtil;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 415 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.stage3D.opengl.GLStage3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_stage3D_GLUtils() {return __webpack_require__(37);}
// Constructor
var GLStage3D = function(){}
// Meta
GLStage3D.__name__ = ["openfl","_internal","stage3D","opengl","GLStage3D"];
GLStage3D.prototype = {
	
};
GLStage3D.prototype.__class__ = $hxClasses["openfl._internal.stage3D.opengl.GLStage3D"] = GLStage3D;
// Init
// Statics
GLStage3D.render = function(stage3D,renderSession) {
	if(stage3D.context3D != null) {
		renderSession.blendModeManager.setBlendMode(null);
		if(renderSession.shaderManager.currentShader != null) {
			renderSession.shaderManager.setShader(null);
			if(stage3D.context3D.__program != null) {
				stage3D.context3D.__program.__use();
			}
		}
	}
	if((openfl__$internal_stage3D_GLUtils().default).debug) {
		renderSession.gl.getError();
	}
}
// Export
exports.default = GLStage3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 416 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.ui.Mouse
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime__$backend_html5_HTML5Mouse() {return __webpack_require__(224);}
// Constructor
var Mouse = function(){}
// Meta
Mouse.__name__ = ["lime","ui","Mouse"];
Mouse.prototype = {
	
};
Mouse.prototype.__class__ = $hxClasses["lime.ui.Mouse"] = Mouse;
// Init
// Statics
Mouse.hide = function() {
	(lime__$backend_html5_HTML5Mouse().default).hide();
}
Mouse.show = function() {
	(lime__$backend_html5_HTML5Mouse().default).show();
}
Mouse.warp = function(x,y,window) {
	(lime__$backend_html5_HTML5Mouse().default).warp(x,y,window);
}
Mouse.get_cursor = function() {
	return (lime__$backend_html5_HTML5Mouse().default).get_cursor();
}
Mouse.set_cursor = function(value) {
	return (lime__$backend_html5_HTML5Mouse().default).set_cursor(value);
}
Mouse.get_lock = function() {
	return (lime__$backend_html5_HTML5Mouse().default).get_lock();
}
Mouse.set_lock = function(value) {
	return (lime__$backend_html5_HTML5Mouse().default).set_lock(value);
}
// Export
exports.default = Mouse;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 417 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.ui._MouseCursor.MouseCursor_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Type() {return __webpack_require__(10);}
// Constructor
var MouseCursor_Impl_ = function(){}
// Meta
MouseCursor_Impl_.__name__ = ["openfl","ui","_MouseCursor","MouseCursor_Impl_"];
MouseCursor_Impl_.prototype = {
	
};
MouseCursor_Impl_.prototype.__class__ = $hxClasses["openfl.ui._MouseCursor.MouseCursor_Impl_"] = MouseCursor_Impl_;
// Init
// Statics
MouseCursor_Impl_.fromLimeCursor = function(cursor) {
	switch((Type().default).enumIndex(cursor)) {
	case 0:
		return "arrow";
	case 1:
		return "crosshair";
	case 2:
		return "auto";
	case 3:
		return "hand";
	case 4:
		return "button";
	case 5:
		return "resize_nesw";
	case 6:
		return "resize_ns";
	case 7:
		return "resize_nwse";
	case 8:
		return "resize_we";
	case 9:
		return "ibeam";
	case 10:
		return "wait";
	case 11:
		return "waitarrow";
	case 12:
		return "custom";
	}
}
MouseCursor_Impl_.ARROW = "arrow"
MouseCursor_Impl_.AUTO = "auto"
MouseCursor_Impl_.BUTTON = "button"
MouseCursor_Impl_.HAND = "hand"
MouseCursor_Impl_.IBEAM = "ibeam"
MouseCursor_Impl_.__CROSSHAIR = "crosshair"
MouseCursor_Impl_.__CUSTOM = "custom"
MouseCursor_Impl_.__MOVE = "move"
MouseCursor_Impl_.__RESIZE_NESW = "resize_nesw"
MouseCursor_Impl_.__RESIZE_NS = "resize_ns"
MouseCursor_Impl_.__RESIZE_NWSE = "resize_nwse"
MouseCursor_Impl_.__RESIZE_WE = "resize_we"
MouseCursor_Impl_.__WAIT = "wait"
MouseCursor_Impl_.__WAIT_ARROW = "waitarrow"
// Export
exports.default = MouseCursor_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 418 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.TouchData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils_ObjectPool() {return __webpack_require__(67);}
// Constructor
var TouchData = function() {
	this.rollOutStack = [];
}
// Meta
TouchData.__name__ = ["openfl","_internal","TouchData"];
TouchData.prototype = {
	reset: function() {
		this.touch = null;
		this.touchDownTarget = null;
		this.touchOverTarget = null;
		this.rollOutStack.splice(0,this.rollOutStack.length);
	}
};
TouchData.prototype.__class__ = $hxClasses["openfl._internal.TouchData"] = TouchData;
// Init
// Statics
TouchData.__pool = new (lime_utils_ObjectPool().default)(function() {
	return new TouchData();
},function(data) {
	data.reset();
})
// Export
exports.default = TouchData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 419 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(141);
/***/ }),
/* 420 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.StageAlign = module.exports.default = {
	BOTTOM: "bottom",
	BOTTOM_LEFT: "bottomLeft",
	BOTTOM_RIGHT: "bottomRight",
	LEFT: "left",
	RIGHT: "right",
	TOP: "top",
	TOP_LEFT: "topLeft",
	TOP_RIGHT: "topRight",
};
/***/ }),
/* 421 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.StageDisplayState = module.exports.default = {
	FULL_SCREEN: "fullScreen",
	FULL_SCREEN_INTERACTIVE: "fullScreenInteractive",
	NORMAL: "normal"
};
/***/ }),
/* 422 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.StageQuality = module.exports.default = {
	BEST: "best",
	HIGH: "high",
	LOW: "low",
	MEDIUM: "medium"
};
/***/ }),
/* 423 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.StageScaleMode = module.exports.default = {
	EXACT_FIT: "exactFit",
	NO_BORDER: "noBorder",
	NO_SCALE: "noScale",
	SHOW_ALL: "showAll"
};
/***/ }),
/* 424 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(226);
/***/ }),
/* 425 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(228);
/***/ }),
/* 426 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display._TileArray.TileArrayIterator
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var TileArrayIterator = function(data) {
	this.data = data;
	this.cachePosition = data.position;
	this.position = 0;
}
// Meta
TileArrayIterator.__name__ = ["openfl","display","_TileArray","TileArrayIterator"];
TileArrayIterator.prototype = {
	hasNext: function() {
		if(this.position < this.data.get_length()) {
			return true;
		} else {
			this.data.position = this.cachePosition;
			return false;
		}
	},
	next: function() {
		this.data.position = this.position++;
		return this.data;
	}
};
TileArrayIterator.prototype.__class__ = $hxClasses["openfl.display._TileArray.TileArrayIterator"] = TileArrayIterator;
// Init
// Statics
// Export
exports.default = TileArrayIterator;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 427 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(428);
/***/ }),
/* 428 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Tilemap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_IShaderDrawable() {return __webpack_require__(66);}
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function openfl_display_Tile() {return __webpack_require__(226);}
function openfl_display_TileArray() {return __webpack_require__(228);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function openfl__$internal_renderer_canvas_CanvasBitmap() {return __webpack_require__(115);}
function openfl__$internal_renderer_canvas_CanvasDisplayObject() {return __webpack_require__(158);}
function openfl__$internal_renderer_canvas_CanvasTilemap() {return __webpack_require__(229);}
function openfl__$internal_renderer_dom_DOMBitmap() {return __webpack_require__(95);}
function openfl__$internal_renderer_dom_DOMDisplayObject() {return __webpack_require__(179);}
function openfl__$internal_renderer_dom_DOMTilemap() {return __webpack_require__(429);}
function openfl__$internal_renderer_flash_FlashTilemap() {return __webpack_require__(430);}
function openfl__$internal_renderer_opengl_GLBitmap() {return __webpack_require__(126);}
function openfl__$internal_renderer_opengl_GLDisplayObject() {return __webpack_require__(180);}
function openfl__$internal_renderer_opengl_GLTilemap() {return __webpack_require__(431);}
function Std() {return __webpack_require__(4);}
function openfl__$Vector_Vector_$Impl_$() {return __webpack_require__(21);}
// Constructor
var Tilemap = function(width,height,tileset,smoothing) {
	if(smoothing == null) {
		smoothing = true;
	}
	(openfl_display_DisplayObject().default).call(this);
	this.__tileset = tileset;
	this.smoothing = smoothing;
	this.__tiles = (openfl__$Vector_Vector_$Impl_$().default)._new();
	this.numTiles = 0;
	this.__width = width;
	this.__height = height;
}
// Meta
Tilemap.__name__ = ["openfl","display","Tilemap"];
Tilemap.__interfaces__ = [(openfl_display_IShaderDrawable().default)];
Tilemap.__super__ = (openfl_display_DisplayObject().default);
Tilemap.prototype = $extend((openfl_display_DisplayObject().default).prototype, {
	addTile: function(tile) {
		if(tile == null) {
			return null;
		}
		if(tile.parent == this) {
			this.removeTile(tile);
		}
		this.__tiles.set(this.numTiles,tile);
		tile.parent = this;
		this.numTiles++;
		this.__setRenderDirty();
		return tile;
	},
	addTileAt: function(tile,index) {
		if(tile == null) {
			return null;
		}
		if(tile.parent == this) {
			var cacheLength = this.__tiles.get_length();
			this.removeTile(tile);
			if(cacheLength > this.__tiles.get_length()) {
				--index;
			}
		}
		this.__tiles.insertAt(index,tile);
		tile.parent = this;
		this.__tileArrayDirty = true;
		this.numTiles++;
		this.__setRenderDirty();
		return tile;
	},
	addTiles: function(tiles) {
		var _g = 0;
		while(_g < tiles.length) {
			var tile = tiles[_g];
			++_g;
			this.addTile(tile);
		}
		return tiles;
	},
	contains: function(tile) {
		return this.__tiles.indexOf(tile,0) > -1;
	},
	getTileAt: function(index) {
		if(index >= 0 && index < this.numTiles) {
			var tile = this.__tiles.get(index);
			if(tile == null && this.__tileArray != null && index < this.__tileArray.get_length()) {
				tile = (openfl_display_Tile().default).__fromTileArray(index,this.__tileArray);
				this.__tiles.set(index,tile);
			}
			return this.__tiles.get(index);
		}
		return null;
	},
	getTileIndex: function(tile) {
		var _g1 = 0;
		var _g = this.__tiles.get_length();
		while(_g1 < _g) {
			var i = _g1++;
			if(this.__tiles.get(i) == tile) {
				return i;
			}
		}
		return -1;
	},
	getTiles: function() {
		this.__updateTileArray();
		if(this.__tileArray == null) {
			this.__tileArray = new (openfl_display_TileArray().default)();
		}
		return this.__tileArray;
	},
	removeTile: function(tile) {
		if(tile != null && tile.parent == this) {
			var cacheLength = this.__tiles.get_length();
			var _g1 = 0;
			var _g = this.__tiles.get_length();
			while(_g1 < _g) {
				var i = _g1++;
				if(this.__tiles.get(i) == tile) {
					tile.parent = null;
					this.__tiles.splice(i,1);
					break;
				}
			}
			this.__tileArrayDirty = true;
			if(cacheLength > this.__tiles.get_length()) {
				this.numTiles--;
			}
			if(this.numTiles <= 0 && this.__tileArray != null) {
				this.__tileArray.set_length(0);
			}
			this.__setRenderDirty();
		}
		return tile;
	},
	removeTileAt: function(index) {
		if(index >= 0 && index < this.numTiles) {
			return this.removeTile(this.__tiles.get(index));
		}
		return null;
	},
	removeTiles: function(beginIndex,endIndex) {
		if(endIndex == null) {
			endIndex = 2147483647;
		}
		if(beginIndex == null) {
			beginIndex = 0;
		}
		if(beginIndex < 0) {
			beginIndex = 0;
		}
		if(endIndex > this.__tiles.get_length() - 1) {
			endIndex = this.__tiles.get_length() - 1;
		}
		var removed = this.__tiles.splice(beginIndex,endIndex - beginIndex + 1);
		var _g = 0;
		while(_g < removed.get_length()) {
			var tile = removed.get(_g);
			++_g;
			tile.parent = null;
		}
		this.__tileArrayDirty = true;
		this.numTiles = this.__tiles.get_length();
		if(this.numTiles == 0 && this.__tileArray != null) {
			this.__tileArray.set_length(0);
		}
		this.__setRenderDirty();
	},
	setTiles: function(tileArray) {
		this.__tileArray = tileArray;
		this.numTiles = this.__tileArray.get_length();
		this.__tileArray.__bufferDirty = true;
		this.__tileArrayDirty = false;
		this.__tiles.set_length(0);
		this.__setRenderDirty();
	},
	__getBounds: function(rect,matrix) {
		var bounds = (openfl_geom_Rectangle().default).__pool.get();
		bounds.setTo(0,0,this.__width,this.__height);
		bounds.__transform(bounds,matrix);
		rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
		(openfl_geom_Rectangle().default).__pool.release(bounds);
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(!hitObject.get_visible() || this.__isMask) {
			return false;
		}
		if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
			return false;
		}
		this.__getRenderTransform();
		var px = this.__renderTransform.__transformInverseX(x,y);
		var py = this.__renderTransform.__transformInverseY(x,y);
		if(px > 0 && py > 0 && px <= this.__width && py <= this.__height) {
			if(stack != null && !interactiveOnly) {
				stack.push(hitObject);
			}
			return true;
		}
		return false;
	},
	__renderCairo: function(renderSession) {
	},
	__renderCanvas: function(renderSession) {
		this.__updateCacheBitmap(renderSession,!this.__worldColorTransform.__isDefault());
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			(openfl__$internal_renderer_canvas_CanvasBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_canvas_CanvasDisplayObject().default).render(this,renderSession);
			(openfl__$internal_renderer_canvas_CanvasTilemap().default).render(this,renderSession);
		}
	},
	__renderDOM: function(renderSession) {
		this.__updateCacheBitmap(renderSession,!this.__worldColorTransform.__isDefault());
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			this.__renderDOMClear(renderSession);
			this.__cacheBitmap.stage = this.stage;
			(openfl__$internal_renderer_dom_DOMBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_dom_DOMDisplayObject().default).render(this,renderSession);
			(openfl__$internal_renderer_dom_DOMTilemap().default).render(this,renderSession);
		}
	},
	__renderDOMClear: function(renderSession) {
		(openfl__$internal_renderer_dom_DOMTilemap().default).clear(this,renderSession);
	},
	__renderFlash: function() {
		(openfl__$internal_renderer_flash_FlashTilemap().default).render(this);
	},
	__renderGL: function(renderSession) {
		this.__updateCacheBitmap(renderSession,false);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			(openfl__$internal_renderer_opengl_GLBitmap().default).render(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_opengl_GLDisplayObject().default).render(this,renderSession);
			(openfl__$internal_renderer_opengl_GLTilemap().default).render(this,renderSession);
		}
	},
	__renderGLMask: function(renderSession) {
		this.__updateCacheBitmap(renderSession,false);
		if(this.__cacheBitmap != null && !this.__cacheBitmapRender) {
			(openfl__$internal_renderer_opengl_GLBitmap().default).renderMask(this.__cacheBitmap,renderSession);
		} else {
			(openfl__$internal_renderer_opengl_GLDisplayObject().default).renderMask(this,renderSession);
			(openfl__$internal_renderer_opengl_GLTilemap().default).renderMask(this,renderSession);
		}
	},
	__updateCacheBitmap: function(renderSession,force) {
		if(this.get_filters() == null) {
			return false;
		}
		return (openfl_display_DisplayObject().default).prototype.__updateCacheBitmap.call(this,renderSession,force);
	},
	__updateTileArray: function() {
		if(this.__tiles.get_length() > 0) {
			if(this.__tileArray == null) {
				this.__tileArray = new (openfl_display_TileArray().default)();
			}
			this.__tileArray.set_length(this.numTiles);
			var tile;
			var _g1 = 0;
			var _g = this.__tiles.get_length();
			while(_g1 < _g) {
				var i = _g1++;
				tile = this.__tiles.get(i);
				if(tile != null) {
					tile.__updateTileArray(i,this.__tileArray,this.__tileArrayDirty);
				}
			}
		}
		this.__tileArrayDirty = false;
	},
	get_height: function() {
		return this.__height * Math.abs(this.get_scaleY());
	},
	set_height: function(value) {
		this.__height = (Std().default)["int"](value);
		return this.__height * Math.abs(this.get_scaleY());
	},
	get_tileset: function() {
		return this.__tileset;
	},
	set_tileset: function(value) {
		this.__tileArrayDirty = true;
		return this.__tileset = value;
	},
	get_width: function() {
		return this.__width * Math.abs(this.__scaleX);
	},
	set_width: function(value) {
		this.__width = (Std().default)["int"](value);
		return this.__width * Math.abs(this.__scaleX);
	}
});
Tilemap.prototype.__class__ = $hxClasses["openfl.display.Tilemap"] = Tilemap;
// Init
Object.defineProperty(Tilemap.prototype,"tileset",{ get : function () { return this.get_tileset (); }, set : function (v) { return this.set_tileset (v); }});
// Statics
// Export
exports.default = Tilemap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 429 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMTilemap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function js_Browser() {return __webpack_require__(11);}
function openfl__$internal_renderer_dom_DOMRenderer() {return __webpack_require__(52);}
function openfl__$internal_renderer_canvas_CanvasTilemap() {return __webpack_require__(229);}
// Constructor
var DOMTilemap = function(){}
// Meta
DOMTilemap.__name__ = ["openfl","_internal","renderer","dom","DOMTilemap"];
DOMTilemap.prototype = {
	
};
DOMTilemap.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMTilemap"] = DOMTilemap;
// Init
// Statics
DOMTilemap.clear = function(tilemap,renderSession) {
	if(tilemap.__canvas != null) {
		renderSession.element.removeChild(tilemap.__canvas);
		tilemap.__canvas = null;
		tilemap.__style = null;
	}
}
DOMTilemap.render = function(tilemap,renderSession) {
	if(tilemap.stage != null && tilemap.__worldVisible && tilemap.__renderable && tilemap.__tiles.get_length() > 0) {
		if(tilemap.__canvas == null) {
			tilemap.__canvas = (js_Browser().default).get_document().createElement("canvas");
			tilemap.__context = tilemap.__canvas.getContext("2d");
			(openfl__$internal_renderer_dom_DOMRenderer().default).initializeElement(tilemap,tilemap.__canvas,renderSession);
		}
		tilemap.__canvas.width = tilemap.__width;
		tilemap.__canvas.height = tilemap.__height;
		tilemap.__context.globalAlpha = tilemap.__worldAlpha;
		renderSession.context = tilemap.__context;
		(openfl__$internal_renderer_canvas_CanvasTilemap().default).render(tilemap,renderSession);
		renderSession.context = null;
		(openfl__$internal_renderer_dom_DOMRenderer().default).updateClip(tilemap,renderSession);
		(openfl__$internal_renderer_dom_DOMRenderer().default).applyStyle(tilemap,renderSession,true,false,true);
	} else {
		DOMTilemap.clear(tilemap,renderSession);
	}
}
// Export
exports.default = DOMTilemap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 430 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.flash.FlashTilemap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_geom_ColorTransform() {return __webpack_require__(40);}
function openfl_geom_Point() {return __webpack_require__(29);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
// Constructor
var FlashTilemap = function(){}
// Meta
FlashTilemap.__name__ = ["openfl","_internal","renderer","flash","FlashTilemap"];
FlashTilemap.prototype = {
	
};
FlashTilemap.prototype.__class__ = $hxClasses["openfl._internal.renderer.flash.FlashTilemap"] = FlashTilemap;
// Init
// Statics
FlashTilemap.render = function(tilemap) {
}
FlashTilemap.defaultColorTransform = new (openfl_geom_ColorTransform().default)()
FlashTilemap.destPoint = new (openfl_geom_Point().default)()
FlashTilemap.sourceRect = new (openfl_geom_Rectangle().default)()
// Export
exports.default = FlashTilemap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 431 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLTilemap
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_IntMap() {return __webpack_require__(22);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl__$internal_renderer_opengl_GLMaskManager() {return __webpack_require__(59);}
// Constructor
var GLTilemap = function(){}
// Meta
GLTilemap.__name__ = ["openfl","_internal","renderer","opengl","GLTilemap"];
GLTilemap.prototype = {
	
};
GLTilemap.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLTilemap"] = GLTilemap;
// Init
// Statics
GLTilemap.render = function(tilemap,renderSession) {
	if(!tilemap.__renderable || tilemap.__worldAlpha <= 0) {
		return;
	}
	tilemap.__updateTileArray();
	if(tilemap.__tileArray == null || tilemap.__tileArray.get_length() == 0) {
		return;
	}
	var renderer = renderSession.renderer;
	var gl = renderSession.gl;
	renderSession.blendModeManager.setBlendMode(tilemap.__worldBlendMode);
	renderSession.maskManager.pushObject(tilemap);
	renderSession.filterManager.pushObject(tilemap);
	var shader = renderSession.shaderManager.initShader(tilemap.shader);
	var uMatrix = renderer.getMatrix(tilemap.__renderTransform);
	var smoothing = renderSession.allowSmoothing && tilemap.smoothing;
	var useColorTransform = true;
	var rect = (openfl_geom_Rectangle().default).__pool.get();
	rect.setTo(0,0,tilemap.__width,tilemap.__height);
	renderSession.maskManager.pushRect(rect,tilemap.__renderTransform);
	var tileArray = tilemap.__tileArray;
	var defaultShader = shader;
	var defaultTileset = tilemap.__tileset;
	tileArray.__updateGLBuffer(gl,defaultTileset,tilemap.__worldAlpha,tilemap.__worldColorTransform);
	gl.vertexAttribPointer(shader.get_data().aPosition.index,2,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
	gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(8));
	gl.vertexAttribPointer(shader.get_data().aAlpha.index,1,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(16));
	gl.vertexAttribPointer(shader.get_data().aColorMultipliers0.index,4,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(20));
	gl.vertexAttribPointer(shader.get_data().aColorMultipliers1.index,4,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(36));
	gl.vertexAttribPointer(shader.get_data().aColorMultipliers2.index,4,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(52));
	gl.vertexAttribPointer(shader.get_data().aColorMultipliers3.index,4,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(68));
	gl.vertexAttribPointer(shader.get_data().aColorOffsets.index,4,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(84));
	var cacheShader = null;
	var cacheBitmapData = null;
	var lastIndex = 0;
	var skipped = tileArray.__bufferSkipped;
	var drawCount = tileArray.__length;
	tileArray.position = 0;
	var shader1 = null;
	var tileset;
	var flush = false;
	var _g1 = 0;
	var _g = drawCount + 1;
	while(_g1 < _g) {
		var i = _g1++;
		if(skipped.get(i)) {
			continue;
		}
		tileArray.position = i < drawCount ? i : drawCount - 1;
		shader1 = tileArray.get_shader();
		if(shader1 == null) {
			shader1 = defaultShader;
		}
		if(shader1 != cacheShader && cacheShader != null) {
			flush = true;
		}
		tileset = tileArray.get_tileset();
		if(tileset == null) {
			tileset = defaultTileset;
		}
		if(tileset == null) {
			continue;
		}
		if(tileset.__bitmapData != cacheBitmapData && cacheBitmapData != null) {
			flush = true;
		}
		if(flush) {
			cacheShader.get_data().uImage0.input = cacheBitmapData;
			renderSession.shaderManager.updateShader(cacheShader);
			gl.drawArrays(gl.TRIANGLES,lastIndex * 6,(i - lastIndex) * 6);
			flush = false;
			lastIndex = i;
		}
		if(shader1 != cacheShader) {
			renderSession.shaderManager.setShader(shader1);
			shader1.get_data().uMatrix.value = uMatrix;
			shader1.get_data().uImage0.smoothing = smoothing;
			if(shader1.get_data().uColorTransform.value == null) {
				shader1.get_data().uColorTransform.value = [];
			}
			shader1.get_data().uColorTransform.value[0] = useColorTransform;
			cacheShader = shader1;
		}
		cacheBitmapData = tileset.__bitmapData;
		if(i == drawCount && tileset.__bitmapData != null) {
			shader1.get_data().uImage0.input = tileset.__bitmapData;
			renderSession.shaderManager.updateShader(shader1);
			gl.drawArrays(gl.TRIANGLES,lastIndex * 6,(i - lastIndex) * 6);
		}
	}
	renderSession.filterManager.popObject(tilemap);
	renderSession.maskManager.popRect();
	renderSession.maskManager.popObject(tilemap);
	(openfl_geom_Rectangle().default).__pool.release(rect);
}
GLTilemap.renderMask = function(tilemap,renderSession) {
	tilemap.__updateTileArray();
	if(tilemap.__tileArray == null || tilemap.__tileArray.get_length() == 0) {
		return;
	}
	var renderer = renderSession.renderer;
	var gl = renderSession.gl;
	var shader = (openfl__$internal_renderer_opengl_GLMaskManager().default).maskShader;
	var uMatrix = renderer.getMatrix(tilemap.__renderTransform);
	var smoothing = renderSession.allowSmoothing && tilemap.smoothing;
	var tileArray = tilemap.__tileArray;
	var defaultTileset = tilemap.__tileset;
	tileArray.__updateGLBuffer(gl,defaultTileset,tilemap.__worldAlpha,tilemap.__worldColorTransform);
	gl.vertexAttribPointer(shader.get_data().aPosition.index,2,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
	gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,100,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(8));
	var cacheBitmapData = null;
	var lastIndex = 0;
	var skipped = tileArray.__bufferSkipped;
	var drawCount = tileArray.__length;
	tileArray.position = 0;
	var tileset;
	var flush = false;
	var _g1 = 0;
	var _g = drawCount + 1;
	while(_g1 < _g) {
		var i = _g1++;
		if(skipped.get(i)) {
			continue;
		}
		tileArray.position = i < drawCount ? i : drawCount - 1;
		tileset = tileArray.get_tileset();
		if(tileset == null) {
			tileset = defaultTileset;
		}
		if(tileset == null) {
			continue;
		}
		if(tileset.__bitmapData != cacheBitmapData && cacheBitmapData != null) {
			flush = true;
		}
		if(flush) {
			shader.get_data().uImage0.input = cacheBitmapData;
			renderSession.shaderManager.updateShader(shader);
			gl.drawArrays(gl.TRIANGLES,lastIndex * 6,(i - lastIndex) * 6);
			flush = false;
			lastIndex = i;
		}
		cacheBitmapData = tileset.__bitmapData;
		if(i == drawCount && tileset.__bitmapData != null) {
			shader.get_data().uImage0.input = tileset.__bitmapData;
			renderSession.shaderManager.updateShader(shader);
			gl.drawArrays(gl.TRIANGLES,lastIndex * 6,(i - lastIndex) * 6);
		}
	}
}
GLTilemap.__skippedTiles = new (haxe_ds_IntMap().default)()
// Export
exports.default = GLTilemap;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 432 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(433);
/***/ }),
/* 433 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display.Tileset
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_display__$Tileset_TileData() {return __webpack_require__(434);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
// Constructor
var Tileset = function(bitmapData,rects) {
	this.__data = [];
	this.__bitmapData = bitmapData;
	if(rects != null) {
		var _g = 0;
		while(_g < rects.length) {
			var rect = rects[_g];
			++_g;
			this.addRect(rect);
		}
	}
}
// Meta
Tileset.__name__ = ["openfl","display","Tileset"];
Tileset.prototype = {
	addRect: function(rect) {
		if(rect == null) {
			return -1;
		}
		var tileData = new (openfl_display__$Tileset_TileData().default)(rect);
		tileData.__update(this.__bitmapData);
		this.__data.push(tileData);
		return this.__data.length - 1;
	},
	clone: function() {
		var tileset = new Tileset(this.__bitmapData,null);
		var rect = (openfl_geom_Rectangle().default).__pool.get();
		var _g = 0;
		var _g1 = this.__data;
		while(_g < _g1.length) {
			var tileData = _g1[_g];
			++_g;
			rect.setTo(tileData.x,tileData.y,tileData.width,tileData.height);
			tileset.addRect(rect);
		}
		(openfl_geom_Rectangle().default).__pool.release(rect);
		return tileset;
	},
	getRect: function(id) {
		if(id < this.__data.length && id >= 0) {
			return new (openfl_geom_Rectangle().default)(this.__data[id].x,this.__data[id].y,this.__data[id].width,this.__data[id].height);
		}
		return null;
	},
	get_bitmapData: function() {
		return this.__bitmapData;
	},
	set_bitmapData: function(value) {
		this.__bitmapData = value;
		var _g = 0;
		var _g1 = this.__data;
		while(_g < _g1.length) {
			var data = _g1[_g];
			++_g;
			data.__update(this.__bitmapData);
		}
		return value;
	}
};
Tileset.prototype.__class__ = $hxClasses["openfl.display.Tileset"] = Tileset;
// Init
Object.defineProperty(Tileset.prototype,"bitmapData",{ get : function () { return this.get_bitmapData (); }, set : function (v) { return this.set_bitmapData (v); }});
// Statics
// Export
exports.default = Tileset;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 434 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.display._Tileset.TileData
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
// Constructor
var TileData = function(rect) {
	if(rect != null) {
		this.x = (Std().default)["int"](rect.x);
		this.y = (Std().default)["int"](rect.y);
		this.width = (Std().default)["int"](rect.width);
		this.height = (Std().default)["int"](rect.height);
	}
}
// Meta
TileData.__name__ = ["openfl","display","_Tileset","TileData"];
TileData.prototype = {
	__update: function(bitmapData) {
		if(bitmapData != null) {
			this.__uvX = this.x / bitmapData.width;
			this.__uvY = this.y / bitmapData.height;
			this.__uvWidth = (this.x + this.width) / bitmapData.width;
			this.__uvHeight = (this.y + this.height) / bitmapData.height;
		}
	}
};
TileData.prototype.__class__ = $hxClasses["openfl.display._Tileset.TileData"] = TileData;
// Init
// Statics
// Export
exports.default = TileData;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 435 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.TriangleCulling = module.exports.default = {
	NEGATIVE: "negative",
	NONE: "none",
	POSITIVE: "positive"
};
/***/ }),
/* 436 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	textures: __webpack_require__(437),
	Context3D: __webpack_require__(442).default,
	Context3DBlendFactor: __webpack_require__(443).default,
	Context3DBufferUsage: __webpack_require__(444).default,
	Context3DClearMask: __webpack_require__(445).default,
	Context3DCompareMode: __webpack_require__(446).default,
	Context3DMipFilter: __webpack_require__(447).default,
	Context3DProfile: __webpack_require__(448).default,
	Context3DProgramType: __webpack_require__(449).default,
	Context3DRenderMode: __webpack_require__(450).default,
	Context3DStencilAction: __webpack_require__(451).default,
	Context3DTextureFilter: __webpack_require__(452).default,
	Context3DTextureFormat: __webpack_require__(453).default,
	Context3DTriangleFace: __webpack_require__(454).default,
	Context3DVertexBufferFormat: __webpack_require__(455).default,
	Context3DWrapMode: __webpack_require__(456).default,
	IndexBuffer3D: __webpack_require__(457).default,
	VertexBuffer3D: __webpack_require__(458).default,
}
/***/ }),
/* 437 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	CubeTexture: __webpack_require__(438).default,
	RectangleTexture: __webpack_require__(439).default,
	Texture: __webpack_require__(440).default,
	TextureBase: __webpack_require__(441).default,
}
/***/ }),
/* 438 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(106);
/***/ }),
/* 439 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(142);
/***/ }),
/* 440 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(104);
/***/ }),
/* 441 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(82);
/***/ }),
/* 442 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(62);
/***/ }),
/* 443 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DBlendFactor = module.exports.default = {
	DESTINATION_ALPHA: "destinationAlpha",
	DESTINATION_COLOR: "destinationColor",
	ONE: "one",
	ONE_MINUS_DESTINATION_ALPHA: "oneMinusDestinationAlpha",
	ONE_MINUS_DESTINATION_COLOR: "oneMinusDestinationColor",
	ONE_MINUS_SOURCE_ALPHA: "oneMinusSourceAlpha",
	ONE_MINUS_SOURCE_COLOR: "oneMinusSourceColor",
	SOURCE_ALPHA: "sourceAlpha",
	SOURCE_COLOR: "sourceColor",
	ZERO: "zero"
};
/***/ }),
/* 444 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DBufferUsage = module.exports.default = {
	DYNAMIC_DRAW: "dynamicDraw",
	STATIC_DRAW: "staticDraw"
};
/***/ }),
/* 445 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DClearMask = module.exports.default = {
	ALL: 0x07,
	COLOR: 0x01,
	DEPTH: 0x02,
	STENCIL: 0x04
};
/***/ }),
/* 446 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DCompareMode = module.exports.default = {
	ALWAYS: "always",
	EQUAL: "equal",
	GREATER: "greater",
	GREATER_EQUAL: "greaterEqual",
	LESS: "less",
	LESS_EQUAL: "lessEqual",
	NEVER: "never",
	NOT_EQUAL: "notEqual"
};
/***/ }),
/* 447 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DMipFilter = module.exports.default = {
	MIPLINEAR: "miplinear",
	MIPNEAREST: "mipnearest",
	MIPNONE: "mipnone"
};
/***/ }),
/* 448 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DProfile = module.exports.default = {
	BASELINE: "baseline",
	BASELINE_CONSTRAINED: "baselineConstrained",
	BASELINE_EXTENDED: "baselineExtended",
	STANDARD: "standard",
	STANDARD_CONSTRAINED: "standardConstrained",
	STANDARD_EXTENDED: "standardExtended"
};
/***/ }),
/* 449 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DProgramType = module.exports.default = {
	FRAGMENT: "fragment",
	VERTEX: "vertex"
};
/***/ }),
/* 450 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DRenderMode = module.exports.default = {
	AUTO: "auto",
	SOFTWARE: "software"
};
/***/ }),
/* 451 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DStencilAction = module.exports.default = {
	DECREMENT_SATURATE: "decrementSaturate",
	DECREMENT_WRAP: "decrementWrap",
	INCREMENT_SATURATE: "incrementSaturate",
	INCREMENT_WRAP: "incrementWrap",
	INVERT: "invert",
	KEEP: "keep",
	SET: "set",
	ZERO: "zero"
};
/***/ }),
/* 452 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DTextureFilter = module.exports.default = {
	ANISOTROPIC16X: "anisotropic16x",
	ANISOTROPIC2X: "anisotropic2x",
	ANISOTROPIC4X: "anisotropic4x",
	ANISOTROPIC8X: "anisotropic8x",
	LINEAR: "linear",
	NEAREST: "nearest"
};
/***/ }),
/* 453 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DTextureFormat = module.exports.default = {
	BGR_PACKED: "bgrPacked565",
	BGRA: "bgra",
	BGRA_PACKED: "bgraPacked4444",
	COMPRESSED: "compressed",
	COMPRESSED_ALPHA: "compressedAlpha",
	RGBA_HALF_FLOAT: "rgbaHalfFloat"
};
/***/ }),
/* 454 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DTriangleFace = module.exports.default = {
	BACK: "back",
	FRONT: "front",
	FRONT_AND_BACK: "frontAndBack",
	NONE: "none"
};
/***/ }),
/* 455 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DVertexBufferFormat = module.exports.default = {
	BYTES_4: "bytes4",
	FLOAT_1: "float1",
	FLOAT_2: "float2",
	FLOAT_3: "float3",
	FLOAT_4: "float4"
};
/***/ }),
/* 456 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Context3DWrapMode = module.exports.default = {
	CLAMP: "clamp",
	CLAMP_U_REPEAT_V: "clamp_u_repeat_y",
	REPEAT: "repeat",
	REPEAT_U_CLAMP_V: "repeat_u_clamp_y"
};
/***/ }),
/* 457 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(216);
/***/ }),
/* 458 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(219);
/***/ }),
/* 459 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	ArgumentError: __webpack_require__(460).default,
	EOFError: __webpack_require__(461).default,
	Error: __webpack_require__(462).default,
	IllegalOperationError: __webpack_require__(463).default,
	IOError: __webpack_require__(464).default,
	RangeError: __webpack_require__(465).default,
	SecurityError: __webpack_require__(466).default,
	TypeError: __webpack_require__(467).default,
}
/***/ }),
/* 460 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(71);
/***/ }),
/* 461 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(175);
/***/ }),
/* 462 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(30);
/***/ }),
/* 463 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(38);
/***/ }),
/* 464 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(124);
/***/ }),
/* 465 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(182);
/***/ }),
/* 466 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(230);
/***/ }),
/* 467 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(129);
/***/ }),
/* 468 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	AccelerometerEvent: __webpack_require__(469).default,
	ActivityEvent: __webpack_require__(470).default,
	AsyncErrorEvent: __webpack_require__(471).default,
	DataEvent: __webpack_require__(473).default,
	ErrorEvent: __webpack_require__(474).default,
	Event: __webpack_require__(475).default,
	EventDispatcher: __webpack_require__(476).default,
	EventPhase: __webpack_require__(477).default,
	FocusEvent: __webpack_require__(478).default,
	FullScreenEvent: __webpack_require__(479).default,
	GameInputEvent: __webpack_require__(480).default,
	HTTPStatusEvent: __webpack_require__(481).default,
	IEventDispatcher: __webpack_require__(482).default,
	IOErrorEvent: __webpack_require__(483).default,
	KeyboardEvent: __webpack_require__(484).default,
	MouseEvent: __webpack_require__(485).default,
	NetStatusEvent: __webpack_require__(486).default,
	ProgressEvent: __webpack_require__(487).default,
	SampleDataEvent: __webpack_require__(488).default,
	SecurityErrorEvent: __webpack_require__(490).default,
	TextEvent: __webpack_require__(491).default,
	TimerEvent: __webpack_require__(492).default,
	TouchEvent: __webpack_require__(493).default,
	UncaughtErrorEvent: __webpack_require__(494).default,
	UncaughtErrorEvents: __webpack_require__(495).default,
}
/***/ }),
/* 469 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(231);
/***/ }),
/* 470 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(213);
/***/ }),
/* 471 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(472);
/***/ }),
/* 472 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.AsyncErrorEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_ErrorEvent() {return __webpack_require__(60);}
// Constructor
var AsyncErrorEvent = function(type,bubbles,cancelable,text,error) {
	if(text == null) {
		text = "";
	}
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_ErrorEvent().default).call(this,type,bubbles,cancelable);
	this.text = text;
	this.error = error;
}
// Meta
AsyncErrorEvent.__name__ = ["openfl","events","AsyncErrorEvent"];
AsyncErrorEvent.__super__ = (openfl_events_ErrorEvent().default);
AsyncErrorEvent.prototype = $extend((openfl_events_ErrorEvent().default).prototype, {
	clone: function() {
		var event = new AsyncErrorEvent(this.type,this.bubbles,this.cancelable,this.text,this.error);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("AsyncErrorEvent",["type","bubbles","cancelable","text","error"]);
	}
});
AsyncErrorEvent.prototype.__class__ = $hxClasses["openfl.events.AsyncErrorEvent"] = AsyncErrorEvent;
// Init
// Statics
AsyncErrorEvent.ASYNC_ERROR = "asyncError"
// Export
exports.default = AsyncErrorEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 473 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(232);
/***/ }),
/* 474 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(60);
/***/ }),
/* 475 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(9);
/***/ }),
/* 476 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(13);
/***/ }),
/* 477 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.EventPhase = module.exports.default = {
	AT_TARGET: 2,
	BUBBLING_PHASE: 3,
	CAPTURING_PHASE: 1
};
/***/ }),
/* 478 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(225);
/***/ }),
/* 479 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(212);
/***/ }),
/* 480 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(210);
/***/ }),
/* 481 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(193);
/***/ }),
/* 482 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(157);
/***/ }),
/* 483 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(101);
/***/ }),
/* 484 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(222);
/***/ }),
/* 485 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(113);
/***/ }),
/* 486 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(144);
/***/ }),
/* 487 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(53);
/***/ }),
/* 488 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(489);
/***/ }),
/* 489 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.events.SampleDataEvent
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_utils_ByteArrayData() {return __webpack_require__(45);}
// Constructor
var SampleDataEvent = function(type,bubbles,cancelable) {
	if(cancelable == null) {
		cancelable = false;
	}
	if(bubbles == null) {
		bubbles = false;
	}
	(openfl_events_Event().default).call(this,type,bubbles,cancelable);
	var this1 = new (openfl_utils_ByteArrayData().default)(0);
	this.data = this1;
	this.data.set_endian("littleEndian");
	this.position = 0.0;
}
// Meta
SampleDataEvent.__name__ = ["openfl","events","SampleDataEvent"];
SampleDataEvent.__super__ = (openfl_events_Event().default);
SampleDataEvent.prototype = $extend((openfl_events_Event().default).prototype, {
	clone: function() {
		var event = new SampleDataEvent(this.type,this.bubbles,this.cancelable);
		event.target = this.target;
		event.currentTarget = this.currentTarget;
		event.eventPhase = this.eventPhase;
		return event;
	},
	toString: function() {
		return this.__formatToString("SampleDataEvent",["type","bubbles","cancelable"]);
	}
});
SampleDataEvent.prototype.__class__ = $hxClasses["openfl.events.SampleDataEvent"] = SampleDataEvent;
// Init
// Statics
SampleDataEvent.SAMPLE_DATA = "sampleData"
// Export
exports.default = SampleDataEvent;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 490 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(195);
/***/ }),
/* 491 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(77);
/***/ }),
/* 492 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(233);
/***/ }),
/* 493 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(114);
/***/ }),
/* 494 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(220);
/***/ }),
/* 495 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(207);
/***/ }),
/* 496 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	ExternalInterface: __webpack_require__(497).default,
}
/***/ }),
/* 497 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(498);
/***/ }),
/* 498 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.external.ExternalInterface
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_Lib() {return __webpack_require__(34);}
function EReg() {return __webpack_require__(27);}
function js_Lib() {return __webpack_require__(145);}
function ValueType() {return __webpack_require__(152);}
function Type() {return __webpack_require__(10);}
// Constructor
var ExternalInterface = function(){}
// Meta
ExternalInterface.__name__ = ["openfl","external","ExternalInterface"];
ExternalInterface.prototype = {
	
};
ExternalInterface.prototype.__class__ = $hxClasses["openfl.external.ExternalInterface"] = ExternalInterface;
// Init
// Statics
ExternalInterface.addCallback = function(functionName,closure) {
	if((openfl__$internal_Lib().default).application.get_window().backend.element != null) {
		(openfl__$internal_Lib().default).application.get_window().backend.element[functionName] = closure;
	}
}
ExternalInterface.call = function(functionName,p1,p2,p3,p4,p5) {
	var callResponse = null;
	if(!new (EReg().default)("^\\(.+\\)$","").match(functionName)) {
		var thisArg = functionName.split(".").slice(0,-1).join(".");
		if(thisArg.length > 0) {
			functionName += ".bind(" + thisArg + ")";
		}
	}
	var fn;
	try {
		fn = (js_Lib().default).eval(functionName);
	} catch( e ) {
		return null;
	}
	if((ValueType().default).TFunction != (Type().default)["typeof"](fn)) {
		return null;
	}
	if(p1 == null) {
		callResponse = fn();
	} else if(p2 == null) {
		callResponse = fn(p1);
	} else if(p3 == null) {
		callResponse = fn(p1,p2);
	} else if(p4 == null) {
		callResponse = fn(p1,p2,p3);
	} else if(p5 == null) {
		callResponse = fn(p1,p2,p3,p4);
	} else {
		callResponse = fn(p1,p2,p3,p4,p5);
	}
	return callResponse;
}
ExternalInterface.available = true
ExternalInterface.marshallExceptions = false
// Export
exports.default = ExternalInterface;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 499 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	BitmapFilter: __webpack_require__(500).default,
	BitmapFilterQuality: __webpack_require__(501).default,
	BitmapFilterType: __webpack_require__(502).default,
	BlurFilter: __webpack_require__(503).default,
	ColorMatrixFilter: __webpack_require__(504).default,
	// ConvolutionFilter: require("./ConvolutionFilter").default,
	DropShadowFilter: __webpack_require__(505).default,
	GlowFilter: __webpack_require__(506).default,
}
/***/ }),
/* 500 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(78);
/***/ }),
/* 501 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.BitmapFilterQuality = module.exports.default = {
	HIGH: 3,
	MEDIUM: 2,
	LOW: 1
};
/***/ }),
/* 502 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.BitmapFilterType = module.exports.default = {
	FULL: "full",
	INNER: "inner",
	OUTER: "outer"
};
/***/ }),
/* 503 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(189);
/***/ }),
/* 504 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(190);
/***/ }),
/* 505 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(191);
/***/ }),
/* 506 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(100);
/***/ }),
/* 507 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	ColorTransform: __webpack_require__(508).default,
	Matrix: __webpack_require__(509).default,
	Matrix3D: __webpack_require__(510).default,
	Orientation3D: __webpack_require__(511).default,
	PerspectiveProjection: __webpack_require__(512).default,
	Point: __webpack_require__(514).default,
	Rectangle: __webpack_require__(515).default,
	Transform: __webpack_require__(516).default,
	Utils3D: __webpack_require__(517).default,
	Vector3D: __webpack_require__(519).default,
}
/***/ }),
/* 508 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(40);
/***/ }),
/* 509 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(28);
/***/ }),
/* 510 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(127);
/***/ }),
/* 511 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Orientation3D = module.exports.default = {
	AXIS_ANGLE: "axisAngle",
	EULER_ANGLES: "eulerAngles",
	QUATERNION: "quaternion"
};
/***/ }),
/* 512 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(513);
/***/ }),
/* 513 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.geom.PerspectiveProjection
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_Lib() {return __webpack_require__(25);}
function openfl_geom_Matrix3D() {return __webpack_require__(127);}
function openfl_geom_Point() {return __webpack_require__(29);}
// Constructor
var PerspectiveProjection = function() {
	this.__fieldOfView = 0;
	this.focalLength = 0;
	this.matrix3D = new (openfl_geom_Matrix3D().default)();
	this.projectionCenter = new (openfl_geom_Point().default)((openfl_Lib().default).get_current().stage.stageWidth / 2,(openfl_Lib().default).get_current().stage.stageHeight / 2);
}
// Meta
PerspectiveProjection.__name__ = ["openfl","geom","PerspectiveProjection"];
PerspectiveProjection.prototype = {
	toMatrix3D: function() {
		if(this.projectionCenter == null) {
			return null;
		}
		var _mp = this.matrix3D.rawData;
		_mp.set(0,this.focalLength);
		_mp.set(5,this.focalLength);
		_mp.set(11,1.0);
		_mp.set(15,0);
		return this.matrix3D;
	},
	get_fieldOfView: function() {
		return this.__fieldOfView;
	},
	set_fieldOfView: function(fieldOfView) {
		var p_nFovY = fieldOfView * 0.01745329251994329577;
		this.__fieldOfView = p_nFovY;
		var cotan = 1 / Math.tan(p_nFovY / 2);
		this.focalLength = (openfl_Lib().default).get_current().stage.stageWidth * ((openfl_Lib().default).get_current().stage.stageWidth / (openfl_Lib().default).get_current().stage.stageHeight) / 2 * cotan;
		return this.__fieldOfView;
	}
};
PerspectiveProjection.prototype.__class__ = $hxClasses["openfl.geom.PerspectiveProjection"] = PerspectiveProjection;
// Init
Object.defineProperty(PerspectiveProjection.prototype,"fieldOfView",{ get : function () { return this.get_fieldOfView (); }, set : function (v) { return this.set_fieldOfView (v); }});
// Statics
PerspectiveProjection.TO_RADIAN = 0.01745329251994329577
// Export
exports.default = PerspectiveProjection;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 514 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(29);
/***/ }),
/* 515 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(14);
/***/ }),
/* 516 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(181);
/***/ }),
/* 517 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(518);
/***/ }),
/* 518 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.geom.Utils3D
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_geom_Vector3D() {return __webpack_require__(128);}
// Constructor
var Utils3D = function(){}
// Meta
Utils3D.__name__ = ["openfl","geom","Utils3D"];
Utils3D.prototype = {
	
};
Utils3D.prototype.__class__ = $hxClasses["openfl.geom.Utils3D"] = Utils3D;
// Init
// Statics
Utils3D.projectVector = function(m,v) {
	var n = m.rawData;
	var l_oProj = new (openfl_geom_Vector3D().default)();
	l_oProj.x = v.x * n.get(0) + v.y * n.get(4) + v.z * n.get(8) + n.get(12);
	l_oProj.y = v.x * n.get(1) + v.y * n.get(5) + v.z * n.get(9) + n.get(13);
	l_oProj.z = v.x * n.get(2) + v.y * n.get(6) + v.z * n.get(10) + n.get(14);
	var w = v.x * n.get(3) + v.y * n.get(7) + v.z * n.get(11) + n.get(15);
	l_oProj.z /= w;
	l_oProj.x /= w;
	l_oProj.y /= w;
	return l_oProj;
}
Utils3D.projectVectors = function(m,verts,projectedVerts,uvts) {
	if(verts.get_length() % 3 != 0) {
		return;
	}
	var n = m.rawData;
	var x;
	var y;
	var z;
	var w;
	var x1;
	var y1;
	var z1;
	var w1;
	var i = 0;
	while(i < verts.get_length()) {
		x = verts.get(i);
		y = verts.get(i + 1);
		z = verts.get(i + 2);
		w = 1;
		x1 = x * n.get(0) + y * n.get(4) + z * n.get(8) + w * n.get(12);
		y1 = x * n.get(1) + y * n.get(5) + z * n.get(9) + w * n.get(13);
		z1 = x * n.get(2) + y * n.get(6) + z * n.get(10) + w * n.get(14);
		w1 = x * n.get(3) + y * n.get(7) + z * n.get(11) + w * n.get(15);
		projectedVerts.push(x1 / w1);
		projectedVerts.push(y1 / w1);
		uvts.set(i + 2,1 / w1);
		i += 3;
	}
}
// Export
exports.default = Utils3D;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 519 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(128);
/***/ }),
/* 520 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	ID3Info: __webpack_require__(521).default,
	Sound: __webpack_require__(522).default,
	SoundChannel: __webpack_require__(523).default,
	SoundLoaderContext: __webpack_require__(524).default,
	SoundTransform: __webpack_require__(526).default,
	Video: __webpack_require__(527).default,
}
/***/ }),
/* 521 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(206);
/***/ }),
/* 522 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(203);
/***/ }),
/* 523 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(205);
/***/ }),
/* 524 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(525);
/***/ }),
/* 525 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.media.SoundLoaderContext
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var SoundLoaderContext = function(bufferTime,checkPolicyFile) {
	if(checkPolicyFile == null) {
		checkPolicyFile = false;
	}
	if(bufferTime == null) {
		bufferTime = 1000;
	}
	this.bufferTime = bufferTime;
	this.checkPolicyFile = checkPolicyFile;
}
// Meta
SoundLoaderContext.__name__ = ["openfl","media","SoundLoaderContext"];
SoundLoaderContext.prototype = {
	
};
SoundLoaderContext.prototype.__class__ = $hxClasses["openfl.media.SoundLoaderContext"] = SoundLoaderContext;
// Init
// Statics
// Export
exports.default = SoundLoaderContext;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 526 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(81);
/***/ }),
/* 527 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(528);
/***/ }),
/* 528 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.media.Video
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_display_IShaderDrawable() {return __webpack_require__(66);}
function openfl_display_DisplayObject() {return __webpack_require__(36);}
function openfl_geom_Rectangle() {return __webpack_require__(14);}
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl_geom_Point() {return __webpack_require__(29);}
function openfl__$internal_renderer_canvas_CanvasVideo() {return __webpack_require__(529);}
function openfl__$internal_renderer_dom_DOMVideo() {return __webpack_require__(530);}
function openfl__$internal_renderer_opengl_GLVideo() {return __webpack_require__(531);}
function Std() {return __webpack_require__(4);}
// Constructor
var Video = function(width,height) {
	if(height == null) {
		height = 240;
	}
	if(width == null) {
		width = 320;
	}
	(openfl_display_DisplayObject().default).call(this);
	this.__width = width;
	this.__height = height;
	this.smoothing = false;
	this.deblocking = 0;
}
// Meta
Video.__name__ = ["openfl","media","Video"];
Video.__interfaces__ = [(openfl_display_IShaderDrawable().default)];
Video.__super__ = (openfl_display_DisplayObject().default);
Video.prototype = $extend((openfl_display_DisplayObject().default).prototype, {
	attachNetStream: function(netStream) {
		this.__stream = netStream;
		if(this.__stream != null) {
			this.__stream.__video.play();
		}
	},
	clear: function() {
	},
	__enterFrame: function(deltaTime) {
		if(this.__renderable && this.__stream != null) {
			this.__setRenderDirty();
		}
	},
	__getBounds: function(rect,matrix) {
		var bounds = (openfl_geom_Rectangle().default).__pool.get();
		bounds.setTo(0,0,this.__width,this.__height);
		bounds.__transform(bounds,matrix);
		rect.__expand(bounds.x,bounds.y,bounds.width,bounds.height);
		(openfl_geom_Rectangle().default).__pool.release(bounds);
	},
	__getBuffer: function(gl,alpha,colorTransform) {
		if(this.__buffer == null || this.__bufferContext != gl) {
			var uvWidth = 1;
			var uvHeight = 1;
			var this1 = new Float32Array(104);
			this.__bufferData = this1;
			this.__bufferData[0] = this.get_width();
			this.__bufferData[1] = this.get_height();
			this.__bufferData[3] = uvWidth;
			this.__bufferData[4] = uvHeight;
			this.__bufferData[27] = this.get_height();
			this.__bufferData[30] = uvHeight;
			this.__bufferData[52] = this.get_width();
			this.__bufferData[55] = uvWidth;
			var _g = 0;
			while(_g < 4) {
				var i = _g++;
				this.__bufferData[26 * i + 5] = alpha;
				if(colorTransform != null) {
					this.__bufferData[26 * i + 6] = colorTransform.redMultiplier;
					this.__bufferData[26 * i + 11] = colorTransform.greenMultiplier;
					this.__bufferData[26 * i + 16] = colorTransform.blueMultiplier;
					this.__bufferData[26 * i + 21] = colorTransform.alphaMultiplier;
					this.__bufferData[26 * i + 22] = colorTransform.redOffset / 255;
					this.__bufferData[26 * i + 23] = colorTransform.greenOffset / 255;
					this.__bufferData[26 * i + 24] = colorTransform.blueOffset / 255;
					this.__bufferData[26 * i + 25] = colorTransform.alphaOffset / 255;
				} else {
					this.__bufferData[26 * i + 6] = 1;
					this.__bufferData[26 * i + 11] = 1;
					this.__bufferData[26 * i + 16] = 1;
					this.__bufferData[26 * i + 21] = 1;
				}
			}
			this.__bufferAlpha = alpha;
			this.__bufferColorTransform = colorTransform != null ? colorTransform.__clone() : null;
			this.__bufferContext = gl;
			this.__buffer = gl.createBuffer();
			gl.bindBuffer(gl.ARRAY_BUFFER,this.__buffer);
			gl.bufferData(gl.ARRAY_BUFFER,this.__bufferData.byteLength,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(this.__bufferData),gl.STATIC_DRAW);
		} else {
			if(this.__bufferAlpha != alpha) {
				var _g1 = 0;
				while(_g1 < 4) {
					var i1 = _g1++;
					this.__bufferData[26 * i1 + 5] = alpha;
				}
			}
			if(this.__bufferColorTransform == null && colorTransform != null || this.__bufferColorTransform != null && !this.__bufferColorTransform.__equals(colorTransform)) {
				if(colorTransform != null) {
					this.__bufferColorTransform = colorTransform.__clone();
					var _g2 = 0;
					while(_g2 < 4) {
						var i2 = _g2++;
						this.__bufferData[26 * i2 + 6] = colorTransform.redMultiplier;
						this.__bufferData[26 * i2 + 11] = colorTransform.greenMultiplier;
						this.__bufferData[26 * i2 + 16] = colorTransform.blueMultiplier;
						this.__bufferData[26 * i2 + 21] = colorTransform.alphaMultiplier;
						this.__bufferData[26 * i2 + 22] = colorTransform.redOffset / 255;
						this.__bufferData[26 * i2 + 23] = colorTransform.greenOffset / 255;
						this.__bufferData[26 * i2 + 24] = colorTransform.blueOffset / 255;
						this.__bufferData[26 * i2 + 25] = colorTransform.alphaOffset / 255;
					}
				} else {
					var _g3 = 0;
					while(_g3 < 4) {
						var i3 = _g3++;
						this.__bufferData[26 * i3 + 6] = 1;
						this.__bufferData[26 * i3 + 11] = 1;
						this.__bufferData[26 * i3 + 16] = 1;
						this.__bufferData[26 * i3 + 21] = 1;
						this.__bufferData[26 * i3 + 22] = 0;
						this.__bufferData[26 * i3 + 23] = 0;
						this.__bufferData[26 * i3 + 24] = 0;
						this.__bufferData[26 * i3 + 25] = 0;
					}
				}
			}
			gl.bindBuffer(gl.ARRAY_BUFFER,this.__buffer);
			gl.bufferData(gl.ARRAY_BUFFER,this.__bufferData.byteLength,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromArrayBufferView(this.__bufferData),gl.STATIC_DRAW);
		}
		return this.__buffer;
	},
	__getTexture: function(gl) {
		if(this.__stream == null) {
			return null;
		}
		if(this.__texture == null) {
			this.__texture = gl.createTexture();
			gl.bindTexture(gl.TEXTURE_2D,this.__texture);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST);
			this.__textureTime = -1;
		}
		if(this.__stream.__video.currentTime != this.__textureTime) {
			var internalFormat = gl.RGBA;
			var format = gl.RGBA;
			gl.bindTexture(gl.TEXTURE_2D,this.__texture);
			gl.texImage2DWEBGL(gl.TEXTURE_2D,0,internalFormat,format,gl.UNSIGNED_BYTE,this.__stream.__video);
			this.__textureTime = this.__stream.__video.currentTime;
		}
		return this.__texture;
	},
	__hitTest: function(x,y,shapeFlag,stack,interactiveOnly,hitObject) {
		if(!hitObject.get_visible() || this.__isMask) {
			return false;
		}
		if(this.get_mask() != null && !this.get_mask().__hitTestMask(x,y)) {
			return false;
		}
		this.__getRenderTransform();
		var px = this.__renderTransform.__transformInverseX(x,y);
		var py = this.__renderTransform.__transformInverseY(x,y);
		if(px > 0 && py > 0 && px <= this.__width && py <= this.__height) {
			if(stack != null && !interactiveOnly) {
				stack.push(hitObject);
			}
			return true;
		}
		return false;
	},
	__hitTestMask: function(x,y) {
		var point = (openfl_geom_Point().default).__pool.get();
		point.setTo(x,y);
		this.__globalToLocal(point,point);
		var hit = point.x > 0 && point.y > 0 && point.x <= this.__width && point.y <= this.__height;
		(openfl_geom_Point().default).__pool.release(point);
		return hit;
	},
	__renderCanvas: function(renderSession) {
		(openfl__$internal_renderer_canvas_CanvasVideo().default).render(this,renderSession);
	},
	__renderDOM: function(renderSession) {
		(openfl__$internal_renderer_dom_DOMVideo().default).render(this,renderSession);
	},
	__renderGL: function(renderSession) {
		(openfl__$internal_renderer_opengl_GLVideo().default).render(this,renderSession);
	},
	__renderGLMask: function(renderSession) {
		(openfl__$internal_renderer_opengl_GLVideo().default).renderMask(this,renderSession);
	},
	get_height: function() {
		return this.__height * this.get_scaleY();
	},
	set_height: function(value) {
		if(this.get_scaleY() != 1 || value != this.__height) {
			this.__setTransformDirty();
			this.__dirty = true;
		}
		this.set_scaleY(1);
		return this.__height = value;
	},
	get_videoHeight: function() {
		if(this.__stream != null) {
			return (Std().default)["int"](this.__stream.__video.videoHeight);
		}
		return 0;
	},
	get_videoWidth: function() {
		if(this.__stream != null) {
			return (Std().default)["int"](this.__stream.__video.videoWidth);
		}
		return 0;
	},
	get_width: function() {
		return this.__width * this.__scaleX;
	},
	set_width: function(value) {
		if(this.__scaleX != 1 || this.__width != value) {
			this.__setTransformDirty();
			this.__dirty = true;
		}
		this.set_scaleX(1);
		return this.__width = value;
	}
});
Video.prototype.__class__ = $hxClasses["openfl.media.Video"] = Video;
// Init
Object.defineProperties(Video.prototype,{ "videoHeight" : { get : function () { return this.get_videoHeight (); }}, "videoWidth" : { get : function () { return this.get_videoWidth (); }}});
// Statics
Video.__bufferStride = 26
// Export
exports.default = Video;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 529 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.canvas.CanvasVideo
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
// Constructor
var CanvasVideo = function(){}
// Meta
CanvasVideo.__name__ = ["openfl","_internal","renderer","canvas","CanvasVideo"];
CanvasVideo.prototype = {
	
};
CanvasVideo.prototype.__class__ = $hxClasses["openfl._internal.renderer.canvas.CanvasVideo"] = CanvasVideo;
// Init
// Statics
CanvasVideo.render = function(video,renderSession) {
	if(!video.__renderable || video.__worldAlpha <= 0 || video.__stream == null) {
		return;
	}
	var context = renderSession.context;
	if(video.__stream.__video != null) {
		renderSession.blendModeManager.setBlendMode(video.__worldBlendMode);
		renderSession.maskManager.pushObject(video);
		context.globalAlpha = video.__worldAlpha;
		var transform = video.__worldTransform;
		var scrollRect = video.__scrollRect;
		var smoothing = video.smoothing;
		if(renderSession.roundPixels) {
			context.setTransform(transform.a,transform.b,transform.c,transform.d,(Std().default)["int"](transform.tx),(Std().default)["int"](transform.ty));
		} else {
			context.setTransform(transform.a,transform.b,transform.c,transform.d,transform.tx,transform.ty);
		}
		if(!smoothing) {
			context.mozImageSmoothingEnabled = false;
			context.msImageSmoothingEnabled = false;
			context.imageSmoothingEnabled = false;
		}
		if(scrollRect == null) {
			context.drawImage(video.__stream.__video,0,0,video.get_width(),video.get_height());
		} else {
			context.drawImage(video.__stream.__video,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height,scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);
		}
		if(!smoothing) {
			context.mozImageSmoothingEnabled = true;
			context.msImageSmoothingEnabled = true;
			context.imageSmoothingEnabled = true;
		}
		renderSession.maskManager.popObject(video);
	}
}
// Export
exports.default = CanvasVideo;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 530 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.dom.DOMVideo
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl__$internal_renderer_dom_DOMRenderer() {return __webpack_require__(52);}
function Std() {return __webpack_require__(4);}
// Constructor
var DOMVideo = function(){}
// Meta
DOMVideo.__name__ = ["openfl","_internal","renderer","dom","DOMVideo"];
DOMVideo.prototype = {
	
};
DOMVideo.prototype.__class__ = $hxClasses["openfl._internal.renderer.dom.DOMVideo"] = DOMVideo;
// Init
// Statics
DOMVideo.clear = function(video,renderSession) {
	if(video.__active) {
		renderSession.element.removeChild(video.__stream.__video);
		video.__active = false;
	}
}
DOMVideo.render = function(video,renderSession) {
	if(video.stage != null && video.__stream != null && video.__worldVisible && video.__renderable) {
		if(!video.__active) {
			(openfl__$internal_renderer_dom_DOMRenderer().default).initializeElement(video,video.__stream.__video,renderSession);
			video.__active = true;
			video.__dirty = true;
		}
		if(video.__dirty) {
			video.__stream.__video.width = (Std().default)["int"](video.__width);
			video.__stream.__video.height = (Std().default)["int"](video.__height);
			video.__dirty = false;
		}
		(openfl__$internal_renderer_dom_DOMRenderer().default).updateClip(video,renderSession);
		(openfl__$internal_renderer_dom_DOMRenderer().default).applyStyle(video,renderSession,true,true,true);
	} else {
		DOMVideo.clear(video,renderSession);
	}
}
// Export
exports.default = DOMVideo;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 531 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl._internal.renderer.opengl.GLVideo
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_utils__$DataPointer_DataPointer_$Impl_$() {return __webpack_require__(19);}
function openfl__$internal_renderer_opengl_GLMaskManager() {return __webpack_require__(59);}
// Constructor
var GLVideo = function(){}
// Meta
GLVideo.__name__ = ["openfl","_internal","renderer","opengl","GLVideo"];
GLVideo.prototype = {
	
};
GLVideo.prototype.__class__ = $hxClasses["openfl._internal.renderer.opengl.GLVideo"] = GLVideo;
// Init
// Statics
GLVideo.render = function(video,renderSession) {
	if(!video.__renderable || video.__worldAlpha <= 0 || video.__stream == null) {
		return;
	}
	if(video.__stream.__video != null) {
		var renderer = renderSession.renderer;
		var gl = renderSession.gl;
		renderSession.blendModeManager.setBlendMode(video.__worldBlendMode);
		renderSession.maskManager.pushObject(video);
		renderSession.filterManager.pushObject(video);
		var shader = renderSession.shaderManager.initShader(video.shader);
		renderSession.shaderManager.setShader(shader);
		shader.get_data().uMatrix.value = renderer.getMatrix(video.__renderTransform);
		var useColorTransform = !video.__worldColorTransform.__isDefault();
		if(shader.get_data().uColorTransform.value == null) {
			shader.get_data().uColorTransform.value = [];
		}
		shader.get_data().uColorTransform.value[0] = useColorTransform;
		renderSession.shaderManager.updateShader(shader);
		gl.bindTexture(gl.TEXTURE_2D,video.__getTexture(gl));
		if(video.smoothing) {
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR);
		} else {
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);
			gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST);
		}
		gl.bindBuffer(gl.ARRAY_BUFFER,video.__getBuffer(gl,video.__worldAlpha,video.__worldColorTransform));
		gl.vertexAttribPointer(shader.get_data().aPosition.index,3,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
		gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
		gl.vertexAttribPointer(shader.get_data().aAlpha.index,1,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(20));
		gl.vertexAttribPointer(shader.get_data().aColorMultipliers0.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(24));
		gl.vertexAttribPointer(shader.get_data().aColorMultipliers1.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(40));
		gl.vertexAttribPointer(shader.get_data().aColorMultipliers2.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(56));
		gl.vertexAttribPointer(shader.get_data().aColorMultipliers3.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(72));
		gl.vertexAttribPointer(shader.get_data().aColorOffsets.index,4,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(88));
		gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
		renderSession.filterManager.popObject(video);
		renderSession.maskManager.popObject(video);
	}
}
GLVideo.renderMask = function(video,renderSession) {
	if(video.__stream == null) {
		return;
	}
	if(video.__stream.__video != null) {
		var renderer = renderSession.renderer;
		var gl = renderSession.gl;
		var shader = (openfl__$internal_renderer_opengl_GLMaskManager().default).maskShader;
		renderSession.shaderManager.setShader(shader);
		shader.get_data().uMatrix.value = renderer.getMatrix(video.__renderTransform);
		renderSession.shaderManager.updateShader(shader);
		gl.bindTexture(gl.TEXTURE_2D,video.__getTexture(gl));
		gl.bindBuffer(gl.ARRAY_BUFFER,video.__getBuffer(gl,video.__worldAlpha,video.__worldColorTransform));
		gl.vertexAttribPointer(shader.get_data().aPosition.index,3,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(0));
		gl.vertexAttribPointer(shader.get_data().aTexCoord.index,2,gl.FLOAT,false,104,(lime_utils__$DataPointer_DataPointer_$Impl_$().default).fromInt(12));
		gl.drawArrays(gl.TRIANGLE_STRIP,0,4);
	}
}
// Export
exports.default = GLVideo;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 532 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	FileFilter: __webpack_require__(533).default,
	FileReference: __webpack_require__(535).default,
	FileReferenceList: __webpack_require__(540).default,
	NetConnection: __webpack_require__(542).default,
	NetStream: __webpack_require__(544).default,
	SharedObject: __webpack_require__(546).default,
	SharedObjectFlushStatus: __webpack_require__(548).default,
	Socket: __webpack_require__(549).default,
	URLLoader: __webpack_require__(550).default,
	URLLoaderDataFormat: __webpack_require__(551).default,
	URLRequest: __webpack_require__(552).default,
	URLRequestDefaults: __webpack_require__(553).default,
	URLRequestHeader: __webpack_require__(554).default,
	URLRequestMethod: __webpack_require__(555).default,
	URLStream: __webpack_require__(556).default,
	URLVariables: __webpack_require__(558).default,
	XMLSocket: __webpack_require__(559).default,
	navigateToURL: __webpack_require__(561).default,
	sendToURL: __webpack_require__(562).default,
}
/***/ }),
/* 533 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(534);
/***/ }),
/* 534 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.FileFilter
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var FileFilter = function(description,extension,macType) {
	this.description = description;
	this.extension = extension;
	this.macType = macType;
}
// Meta
FileFilter.__name__ = ["openfl","net","FileFilter"];
FileFilter.prototype = {
	
};
FileFilter.prototype.__class__ = $hxClasses["openfl.net.FileFilter"] = FileFilter;
// Init
// Statics
// Export
exports.default = FileFilter;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 535 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(234);
/***/ }),
/* 536 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.ui.FileDialog
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_ui_FileDialogType() {return __webpack_require__(235);}
function lime_graphics_Image() {return __webpack_require__(56);}
function haxe_io_Path() {return __webpack_require__(80);}
function lime_app__$Event_$Array_$String_$_$Void() {return __webpack_require__(537);}
function lime_app__$Event_$String_$Void() {return __webpack_require__(148);}
function lime_app__$Event_$lime_$utils_$Resource_$Void() {return __webpack_require__(538);}
function lime_app__$Event_$Void_$Void() {return __webpack_require__(35);}
// Constructor
var FileDialog = function() {
	this.onSelectMultiple = new (lime_app__$Event_$Array_$String_$_$Void().default)();
	this.onSelect = new (lime_app__$Event_$String_$Void().default)();
	this.onSave = new (lime_app__$Event_$String_$Void().default)();
	this.onOpen = new (lime_app__$Event_$lime_$utils_$Resource_$Void().default)();
	this.onCancel = new (lime_app__$Event_$Void_$Void().default)();
}
// Meta
FileDialog.__name__ = ["lime","ui","FileDialog"];
FileDialog.prototype = {
	browse: function(type,filter,defaultPath,title) {
		if(type == null) {
			type = (lime_ui_FileDialogType().default).OPEN;
		}
		this.onCancel.dispatch();
		return false;
	},
	open: function(filter,defaultPath,title) {
		this.onCancel.dispatch();
		return false;
	},
	save: function(data,filter,defaultPath,title) {
		if(data == null) {
			this.onCancel.dispatch();
			return false;
		}
		var type = "application/octet-stream";
		var defaultExtension = "";
		if((lime_graphics_Image().default).__isPNG(data)) {
			type = "image/png";
			defaultExtension = ".png";
		} else if((lime_graphics_Image().default).__isJPG(data)) {
			type = "image/jpeg";
			defaultExtension = ".jpg";
		} else if((lime_graphics_Image().default).__isGIF(data)) {
			type = "image/gif";
			defaultExtension = ".gif";
		} else if((lime_graphics_Image().default).__isWebP(data)) {
			type = "image/webp";
			defaultExtension = ".webp";
		}
		var path = defaultPath != null ? (haxe_io_Path().default).withoutDirectory(defaultPath) : "download" + defaultExtension;
		var buffer = data.getData();
		__webpack_require__ (539)(new Blob([buffer],{ type : type}),path,true);
		this.onSave.dispatch(path);
		return true;
	}
};
FileDialog.prototype.__class__ = $hxClasses["lime.ui.FileDialog"] = FileDialog;
// Init
// Statics
// Export
exports.default = FileDialog;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 537 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Array_String__Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Array_String__Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Array_String__Void.__name__ = ["lime","app","_Event_Array_String__Void"];
_Event_Array_String__Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Array_String__Void.prototype.__class__ = $hxClasses["lime.app._Event_Array_String__Void"] = _Event_Array_String__Void;
// Init
// Statics
// Export
exports.default = _Event_Array_String__Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 538 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_lime_utils_Resource_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_lime_utils_Resource_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_lime_utils_Resource_Void.__name__ = ["lime","app","_Event_lime_utils_Resource_Void"];
_Event_lime_utils_Resource_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_lime_utils_Resource_Void.prototype.__class__ = $hxClasses["lime.app._Event_lime_utils_Resource_Void"] = _Event_lime_utils_Resource_Void;
// Init
// Statics
// Export
exports.default = _Event_lime_utils_Resource_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 539 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! FileSaver.js v1.3.6
 *
 * A saveAs() FileSaver implementation.
 *
 * By Travis Clarke, https://travismclarke.com
 * By Eli Grey, http://eligrey.com
 *
 * License: MIT (https://github.com/clarketm/FileSaver.js/blob/master/LICENSE.md)
 */
;(function (root, factory) {
    if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
        module.exports = root.document ? factory(root, true) : function (w) {
            if (!w.document) {
                throw new Error("FileSaver requires a window with a document");
            }
            return factory(w);
        };
    } else {
        factory(root);
    }
}(window || this, function (window, noGlobal) {
        "use strict";
        // IE <10 is explicitly unsupported
        if (typeof window === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
            return;
        }
        var
            doc = window.document
            // only get URL when necessary in case Blob.js hasn't overridden it yet
            , get_URL = function () {
                return window.URL || window.webkitURL || window;
            }
            , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
            , can_use_save_link = "download" in save_link
            , click = function (node) {
                var event = new MouseEvent("click");
                node.dispatchEvent(event);
            }
            , is_safari = /constructor/i.test(window.HTMLElement) || window.safari
            , is_chrome_ios = /CriOS\/[\d]+/.test(navigator.userAgent)
            , throw_outside = function (ex) {
                (window.setImmediate || window.setTimeout)(function () {
                    throw ex;
                }, 0);
            }
            , force_saveable_type = "application/octet-stream"
            // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
            , arbitrary_revoke_timeout = 1000 * 40 // in ms
            , revoke = function (file) {
                var revoker = function () {
                    if (typeof file === "string") { // file is an object URL
                        get_URL().revokeObjectURL(file);
                    } else { // file is a File
                        file.remove();
                    }
                };
                setTimeout(revoker, arbitrary_revoke_timeout);
            }
            , dispatch = function (filesaver, event_types, event) {
                event_types = [].concat(event_types);
                var i = event_types.length;
                while (i--) {
                    var listener = filesaver["on" + event_types[i]];
                    if (typeof listener === "function") {
                        try {
                            listener.call(filesaver, event || filesaver);
                        } catch (ex) {
                            throw_outside(ex);
                        }
                    }
                }
            }
            , auto_bom = function (blob) {
                // prepend BOM for UTF-8 XML and text/* types (including HTML)
                // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
                if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
                    return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
                }
                return blob;
            }
            , FileSaver = function (blob, name, no_auto_bom) {
                if (!no_auto_bom) {
                    blob = auto_bom(blob);
                }
                // First try a.download, then web filesystem, then object URLs
                var
                    filesaver = this
                    , type = blob.type
                    , force = type === force_saveable_type
                    , object_url
                    , dispatch_all = function () {
                        dispatch(filesaver, "writestart progress write writeend".split(" "));
                    }
                    // on any filesys errors revert to saving with object URLs
                    , fs_error = function () {
                        if ((is_chrome_ios || (force && is_safari)) && window.FileReader) {
                            // Safari doesn't allow downloading of blob urls
                            var reader = new FileReader();
                            reader.onloadend = function () {
                                var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
                                var popup = window.open(url, '_blank');
                                if (!popup) window.location.href = url;
                                url = undefined; // release reference before dispatching
                                filesaver.readyState = filesaver.DONE;
                                dispatch_all();
                            };
                            reader.readAsDataURL(blob);
                            filesaver.readyState = filesaver.INIT;
                            return;
                        }
                        // don't create more object URLs than needed
                        if (!object_url) {
                            object_url = get_URL().createObjectURL(blob);
                        }
                        if (force) {
                            window.location.href = object_url;
                        } else {
                            var opened = window.open(object_url, "_blank");
                            if (!opened) {
                                // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
                                window.location.href = object_url;
                            }
                        }
                        filesaver.readyState = filesaver.DONE;
                        dispatch_all();
                        revoke(object_url);
                    }
                    ;
                filesaver.readyState = filesaver.INIT;
                if (can_use_save_link) {
                    object_url = get_URL().createObjectURL(blob);
                    setTimeout(function () {
                        save_link.href = object_url;
                        save_link.download = name;
                        click(save_link);
                        dispatch_all();
                        revoke(object_url);
                        filesaver.readyState = filesaver.DONE;
                    });
                    return;
                }
                fs_error();
            }
            , FS_proto = FileSaver.prototype
            , saveAs = function (blob, name, no_auto_bom) {
                return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
            }
            ;
        // IE 10+ (native saveAs)
        if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
            saveAs = function (blob, name, no_auto_bom) {
                name = name || blob.name || "download";
                if (!no_auto_bom) {
                    blob = auto_bom(blob);
                }
                return navigator.msSaveOrOpenBlob(blob, name);
            };
        }
        FS_proto.abort = function () {
        };
        FS_proto.readyState = FS_proto.INIT = 0;
        FS_proto.WRITING = 1;
        FS_proto.DONE = 2;
        FS_proto.error =
            FS_proto.onwritestart =
                FS_proto.onprogress =
                    FS_proto.onwrite =
                        FS_proto.onabort =
                            FS_proto.onerror =
                                FS_proto.onwriteend =
                                    null;
        if (true) {
            !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
                return saveAs;
            }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
        }
        if (typeof noGlobal === 'undefined') {
            window.saveAs = saveAs;
        }
        return saveAs;
    }
));
/***/ }),
/* 540 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(541);
/***/ }),
/* 541 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.FileReferenceList
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_net_FileReference() {return __webpack_require__(234);}
function haxe_io_Path() {return __webpack_require__(80);}
// Constructor
var FileReferenceList = function() {
	(openfl_events_EventDispatcher().default).call(this);
}
// Meta
FileReferenceList.__name__ = ["openfl","net","FileReferenceList"];
FileReferenceList.__super__ = (openfl_events_EventDispatcher().default);
FileReferenceList.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	browse: function(typeFilter) {
		return false;
	},
	fileDialog_onCancel: function() {
		this.dispatchEvent(new (openfl_events_Event().default)("cancel"));
	},
	fileDialog_onSelectMultiple: function(paths) {
		var fileReference;
		var fileInfo;
		var _g = 0;
		while(_g < paths.length) {
			var path = paths[_g];
			++_g;
			fileReference = new (openfl_net_FileReference().default)();
			fileReference.__path = path;
			fileReference.name = (haxe_io_Path().default).withoutDirectory(path);
			this.fileList.push(fileReference);
		}
		this.dispatchEvent(new (openfl_events_Event().default)("select"));
	}
});
FileReferenceList.prototype.__class__ = $hxClasses["openfl.net.FileReferenceList"] = FileReferenceList;
// Init
// Statics
// Export
exports.default = FileReferenceList;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 542 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(543);
/***/ }),
/* 543 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.NetConnection
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_events_NetStatusEvent() {return __webpack_require__(144);}
// Constructor
var NetConnection = function() {
	(openfl_events_EventDispatcher().default).call(this);
}
// Meta
NetConnection.__name__ = ["openfl","net","NetConnection"];
NetConnection.__super__ = (openfl_events_EventDispatcher().default);
NetConnection.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	connect: function(command,_,_1,_2,_3,_4) {
		if(command != null) {
			throw new (js__$Boot_HaxeError().default)("Error: Can only connect in \"HTTP streaming\" mode");
		}
		this.dispatchEvent(new (openfl_events_NetStatusEvent().default)("netStatus",false,true,{ code : "NetConnection.Connect.Success"}));
	}
});
NetConnection.prototype.__class__ = $hxClasses["openfl.net.NetConnection"] = NetConnection;
// Init
// Statics
NetConnection.CONNECT_SUCCESS = "NetConnection.Connect.Success"
// Export
exports.default = NetConnection;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 544 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(545);
/***/ }),
/* 545 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.NetStream
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl_events_NetStatusEvent() {return __webpack_require__(144);}
function js_Browser() {return __webpack_require__(11);}
// Constructor
var NetStream = function(connection,peerID) {
	(openfl_events_EventDispatcher().default).call(this);
	this.__connection = connection;
	this.__video = (js_Browser().default).get_document().createElement("video");
	this.__video.setAttribute("playsinline","");
	this.__video.setAttribute("webkit-playsinline","");
	this.__video.addEventListener("error",$bind(this,this.video_onError),false);
	this.__video.addEventListener("waiting",$bind(this,this.video_onWaiting),false);
	this.__video.addEventListener("ended",$bind(this,this.video_onEnd),false);
	this.__video.addEventListener("pause",$bind(this,this.video_onPause),false);
	this.__video.addEventListener("seeking",$bind(this,this.video_onSeeking),false);
	this.__video.addEventListener("playing",$bind(this,this.video_onPlaying),false);
	this.__video.addEventListener("timeupdate",$bind(this,this.video_onTimeUpdate),false);
	this.__video.addEventListener("loadstart",$bind(this,this.video_onLoadStart),false);
	this.__video.addEventListener("stalled",$bind(this,this.video_onStalled),false);
	this.__video.addEventListener("durationchanged",$bind(this,this.video_onDurationChanged),false);
	this.__video.addEventListener("canplay",$bind(this,this.video_onCanPlay),false);
	this.__video.addEventListener("canplaythrough",$bind(this,this.video_onCanPlayThrough),false);
	this.__video.addEventListener("loadedmetadata",$bind(this,this.video_onLoadMetaData),false);
}
// Meta
NetStream.__name__ = ["openfl","net","NetStream"];
NetStream.__super__ = (openfl_events_EventDispatcher().default);
NetStream.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	close: function() {
		this.__video.pause();
		this.__video.src = "";
		this.time = 0;
	},
	pause: function() {
		this.__video.pause();
	},
	play: function(url,_,_1,_2,_3,_4) {
		this.__video.src = url;
		this.__video.play();
	},
	requestVideoStatus: function() {
		var _gthis = this;
		if(this.__timer == null) {
			this.__timer = new (haxe_Timer().default)(1);
		}
		this.__timer.run = function() {
			if(_gthis.__video.paused) {
				_gthis.__playStatus("NetStream.Play.pause");
			} else {
				_gthis.__playStatus("NetStream.Play.playing");
			}
			_gthis.__timer.stop();
		};
	},
	resume: function() {
		this.__video.play();
	},
	seek: function(time) {
		if(time < 0) {
			time = 0;
		} else if(time > this.__video.duration) {
			time = this.__video.duration;
		}
		this.__video.currentTime = time;
	},
	togglePause: function() {
		if(this.__video.paused) {
			this.__video.play();
		} else {
			this.__video.pause();
		}
	},
	__playStatus: function(code) {
		if(this.client != null) {
			try {
				var handler = this.client.onPlayStatus;
				handler({ code : code, duration : this.__video.duration, position : this.__video.currentTime, speed : this.__video.playbackRate, start : this.__video.startTime});
			} catch( e ) {
			}
		}
	},
	video_onCanPlay: function(event) {
		this.__playStatus("NetStream.Play.canplay");
	},
	video_onCanPlayThrough: function(event) {
		this.__playStatus("NetStream.Play.canplaythrough");
	},
	video_onDurationChanged: function(event) {
		this.__playStatus("NetStream.Play.durationchanged");
	},
	video_onEnd: function(event) {
		this.__connection.dispatchEvent(new (openfl_events_NetStatusEvent().default)("netStatus",false,false,{ code : "NetStream.Play.Stop"}));
		this.__playStatus("NetStream.Play.Complete");
	},
	video_onError: function(event) {
		this.__connection.dispatchEvent(new (openfl_events_NetStatusEvent().default)("netStatus",false,false,{ code : "NetStream.Play.Stop"}));
		this.__playStatus("NetStream.Play.error");
	},
	video_onLoadMetaData: function(event) {
		if(this.client != null) {
			try {
				var handler = this.client.onMetaData;
				handler({ width : this.__video.videoWidth, height : this.__video.videoHeight, duration : this.__video.duration});
			} catch( e ) {
			}
		}
	},
	video_onLoadStart: function(event) {
		this.__playStatus("NetStream.Play.loadstart");
	},
	video_onPause: function(event) {
		this.__playStatus("NetStream.Play.pause");
	},
	video_onPlaying: function(event) {
		this.__connection.dispatchEvent(new (openfl_events_NetStatusEvent().default)("netStatus",false,false,{ code : "NetStream.Play.Start"}));
		this.__playStatus("NetStream.Play.playing");
	},
	video_onSeeking: function(event) {
		this.__playStatus("NetStream.Play.seeking");
	},
	video_onStalled: function(event) {
		this.__playStatus("NetStream.Play.stalled");
	},
	video_onTimeUpdate: function(event) {
		this.time = this.__video.currentTime;
		this.__playStatus("NetStream.Play.timeupdate");
	},
	video_onWaiting: function(event) {
		this.__playStatus("NetStream.Play.waiting");
	},
	get_speed: function() {
		return this.__video.playbackRate;
	},
	set_speed: function(value) {
		return this.__video.playbackRate = value;
	}
});
NetStream.prototype.__class__ = $hxClasses["openfl.net.NetStream"] = NetStream;
// Init
Object.defineProperty(NetStream.prototype,"speed",{ get : function () { return this.get_speed (); }, set : function (v) { return this.set_speed (v); }});
// Statics
// Export
exports.default = NetStream;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 546 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(547);
/***/ }),
/* 547 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.SharedObject
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function js_Browser() {return __webpack_require__(11);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
function Reflect() {return __webpack_require__(5);}
function haxe_Serializer() {return __webpack_require__(198);}
function haxe_io_Bytes() {return __webpack_require__(16);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_Error() {return __webpack_require__(30);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function lime_app_Application() {return __webpack_require__(63);}
function haxe_Unserializer() {return __webpack_require__(199);}
function Type() {return __webpack_require__(10);}
function lime_system_System() {return __webpack_require__(46);}
function StringTools() {return __webpack_require__(12);}
function HxOverrides() {return __webpack_require__(7);}
// Constructor
var SharedObject = function() {
	(openfl_events_EventDispatcher().default).call(this);
	this.client = this;
	this.objectEncoding = 3;
}
// Meta
SharedObject.__name__ = ["openfl","net","SharedObject"];
SharedObject.__super__ = (openfl_events_EventDispatcher().default);
SharedObject.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	clear: function() {
		this.data = { };
		try {
			var storage = (js_Browser().default).getLocalStorage();
			if(storage != null) {
				storage.removeItem(this.__localPath + ":" + this.__name);
			}
		} catch( e ) {
		}
	},
	close: function() {
	},
	connect: function(myConnection,params) {
		(openfl__$internal_Lib().default).notImplemented({ fileName : "SharedObject.hx", lineNumber : 106, className : "openfl.net.SharedObject", methodName : "connect"});
	},
	flush: function(minDiskSpace) {
		if(minDiskSpace == null) {
			minDiskSpace = 0;
		}
		if((Reflect().default).fields(this.data).length == 0) {
			return "flushed";
		}
		var encodedData = (haxe_Serializer().default).run(this.data);
		try {
			var storage = (js_Browser().default).getLocalStorage();
			if(storage != null) {
				storage.removeItem(this.__localPath + ":" + this.__name);
				storage.setItem(this.__localPath + ":" + this.__name,encodedData);
			}
		} catch( e ) {
			return "pending";
		}
		return "flushed";
	},
	send: function(args) {
		(openfl__$internal_Lib().default).notImplemented({ fileName : "SharedObject.hx", lineNumber : 284, className : "openfl.net.SharedObject", methodName : "send"});
	},
	setDirty: function(propertyName) {
	},
	setProperty: function(propertyName,value) {
		if(this.data != null) {
			(Reflect().default).setField(this.data,propertyName,value);
		}
	},
	get_size: function() {
		try {
			var d = (haxe_Serializer().default).run(this.data);
			return (haxe_io_Bytes().default).ofString(d).get_length();
		} catch( e ) {
			return 0;
		}
	}
});
SharedObject.prototype.__class__ = $hxClasses["openfl.net.SharedObject"] = SharedObject;
// Init
{
	var tmp = SharedObject.prototype;
	var tmp1 = function () { return this.get_size (); }
	global.Object.defineProperty(tmp,"size",{ get : tmp1});
};
// Statics
SharedObject.getLocal = function(name,localPath,secure) {
	if(secure == null) {
		secure = false;
	}
	var illegalValues = [" ","~","%","&","\\",";",":","\"","'",",","<",">","?","#"];
	var allowed = true;
	if(name == null || name == "") {
		allowed = false;
	} else {
		var _g = 0;
		while(_g < illegalValues.length) {
			var value = illegalValues[_g];
			++_g;
			if(name.indexOf(value) > -1) {
				allowed = false;
				break;
			}
		}
	}
	if(!allowed) {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("Error #2134: Cannot create SharedObject."));
	}
	if(localPath == null) {
		localPath = (js_Browser().default).get_window().location.href;
	}
	if(SharedObject.__sharedObjects == null) {
		SharedObject.__sharedObjects = new (haxe_ds_StringMap().default)();
		if((lime_app_Application().default).current != null) {
			(lime_app_Application().default).current.onExit.add(SharedObject.application_onExit);
		}
	}
	var id = localPath + "/" + name;
	if(!SharedObject.__sharedObjects.exists(id)) {
		var sharedObject = new SharedObject();
		sharedObject.data = { };
		sharedObject.__localPath = localPath;
		sharedObject.__name = name;
		var encodedData = null;
		try {
			var storage = (js_Browser().default).getLocalStorage();
			if(storage != null) {
				encodedData = storage.getItem(localPath + ":" + name);
			}
		} catch( e ) {
		}
		if(encodedData != null && encodedData != "") {
			try {
				var unserializer = new (haxe_Unserializer().default)(encodedData);
				unserializer.setResolver({ resolveEnum : (Type().default).resolveEnum, resolveClass : SharedObject.__resolveClass});
				sharedObject.data = unserializer.unserialize();
			} catch( e1 ) {
			}
		}
		SharedObject.__sharedObjects.set(id,sharedObject);
	}
	return SharedObject.__sharedObjects.get(id);
}
SharedObject.getRemote = function(name,remotePath,persistence,secure) {
	if(secure == null) {
		secure = false;
	}
	if(persistence == null) {
		persistence = false;
	}
	(openfl__$internal_Lib().default).notImplemented({ fileName : "SharedObject.hx", lineNumber : 275, className : "openfl.net.SharedObject", methodName : "getRemote"});
	return null;
}
SharedObject.__getPath = function(localPath,name) {
	var path = (lime_system_System().default).get_applicationStorageDirectory() + "/" + localPath + "/";
	name = (StringTools().default).replace(name,"//","/");
	name = (StringTools().default).replace(name,"//","/");
	if((StringTools().default).startsWith(name,"/")) {
		name = (HxOverrides().default).substr(name,1,null);
	}
	if((StringTools().default).endsWith(name,"/")) {
		name = name.substring(0,name.length - 1);
	}
	if(name.indexOf("/") > -1) {
		var split = name.split("/");
		name = "";
		var _g1 = 0;
		var _g = split.length - 1;
		while(_g1 < _g) {
			var i = _g1++;
			name += "#" + split[i] + "/";
		}
		name += split[split.length - 1];
	}
	return path + name + ".sol";
}
SharedObject.__mkdir = function(directory) {
}
SharedObject.__resolveClass = function(name) {
	if(name != null) {
		if((StringTools().default).startsWith(name,"neash.")) {
			name = (StringTools().default).replace(name,"neash.","openfl.");
		}
		if((StringTools().default).startsWith(name,"native.")) {
			name = (StringTools().default).replace(name,"native.","openfl.");
		}
		if((StringTools().default).startsWith(name,"flash.")) {
			name = (StringTools().default).replace(name,"flash.","openfl.");
		}
		if((StringTools().default).startsWith(name,"openfl._v2.")) {
			name = (StringTools().default).replace(name,"openfl._v2.","openfl.");
		}
		if((StringTools().default).startsWith(name,"openfl._legacy.")) {
			name = (StringTools().default).replace(name,"openfl._legacy.","openfl.");
		}
		return (Type().default).resolveClass(name);
	}
	return null;
}
SharedObject.application_onExit = function(_) {
	var sharedObject = SharedObject.__sharedObjects.iterator();
	while(sharedObject.hasNext()) {
		var sharedObject1 = sharedObject.next();
		sharedObject1.flush();
	}
}
SharedObject.defaultObjectEncoding = 3
// Export
exports.default = SharedObject;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 548 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.SharedObjectFlushStatus = module.exports.default = {
	FLUSHED: "flushed",
	PENDING: "pending"
};
/***/ }),
/* 549 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(236);
/***/ }),
/* 550 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(79);
/***/ }),
/* 551 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.URLLoaderDataFormat = module.exports.default = {
	BINARY: "binary",
	TEXT: "text",
	VARIABLES: "variables"
};
/***/ }),
/* 552 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(196);
/***/ }),
/* 553 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(197);
/***/ }),
/* 554 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(194);
/***/ }),
/* 555 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.URLRequestMethod = module.exports.default = {
	DELETE: "DELETE",
	GET: "GET",
	HEAD: "HEAD",
	OPTIONS: "OPTIONS",
	POST: "POST",
	PUT: "PUT"
};
/***/ }),
/* 556 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(557);
/***/ }),
/* 557 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.URLStream
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $bind = __webpack_require__(8).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_utils_IDataInput() {return __webpack_require__(92);}
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl_events_ProgressEvent() {return __webpack_require__(53);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl_net_URLLoader() {return __webpack_require__(79);}
// Constructor
var URLStream = function() {
	(openfl_events_EventDispatcher().default).call(this);
	this.__loader = new (openfl_net_URLLoader().default)();
	this.__loader.dataFormat = "binary";
}
// Meta
URLStream.__name__ = ["openfl","net","URLStream"];
URLStream.__interfaces__ = [(openfl_utils_IDataInput().default)];
URLStream.__super__ = (openfl_events_EventDispatcher().default);
URLStream.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	close: function() {
		this.__removeEventListeners();
		this.__data = null;
	},
	load: function(request) {
		this.__removeEventListeners();
		this.__addEventListeners();
		this.__loader.load(request);
	},
	readBoolean: function() {
		return this.__data.readBoolean();
	},
	readByte: function() {
		return this.__data.readByte();
	},
	readBytes: function(bytes,offset,length) {
		if(length == null) {
			length = 0;
		}
		if(offset == null) {
			offset = 0;
		}
		this.__data.readBytes(bytes,offset,length);
	},
	readDouble: function() {
		return this.__data.readDouble();
	},
	readFloat: function() {
		return this.__data.readFloat();
	},
	readInt: function() {
		return this.__data.readInt();
	},
	readMultiByte: function(length,charSet) {
		return this.__data.readMultiByte(length,charSet);
	},
	readObject: function() {
		return null;
	},
	readShort: function() {
		return this.__data.readShort();
	},
	readUnsignedByte: function() {
		return this.__data.readUnsignedByte();
	},
	readUnsignedInt: function() {
		return this.__data.readUnsignedInt();
	},
	readUnsignedShort: function() {
		return this.__data.readUnsignedShort();
	},
	readUTF: function() {
		return this.__data.readUTF();
	},
	readUTFBytes: function(length) {
		return this.__data.readUTFBytes(length);
	},
	__addEventListeners: function() {
		this.__loader.addEventListener("complete",$bind(this,this.loader_onComplete));
		this.__loader.addEventListener("ioError",$bind(this,this.loader_onIOError));
		this.__loader.addEventListener("securityError",$bind(this,this.loader_onSecurityError));
		this.__loader.addEventListener("progress",$bind(this,this.loader_onProgressEvent));
	},
	__removeEventListeners: function() {
		this.__loader.removeEventListener("complete",$bind(this,this.loader_onComplete));
		this.__loader.removeEventListener("ioError",$bind(this,this.loader_onIOError));
		this.__loader.removeEventListener("securityError",$bind(this,this.loader_onSecurityError));
		this.__loader.removeEventListener("progress",$bind(this,this.loader_onProgressEvent));
	},
	loader_onComplete: function(event) {
		this.__removeEventListeners();
		this.__data = this.__loader.data;
		this.dispatchEvent(new (openfl_events_ProgressEvent().default)("progress",false,false,this.__loader.bytesLoaded,this.__loader.bytesTotal));
		this.dispatchEvent(new (openfl_events_Event().default)("complete"));
	},
	loader_onIOError: function(event) {
		this.__removeEventListeners();
		this.dispatchEvent(event);
	},
	loader_onSecurityError: function(event) {
		this.__removeEventListeners();
		this.dispatchEvent(event);
	},
	loader_onProgressEvent: function(event) {
		this.__data = this.__loader.data;
		this.dispatchEvent(event);
	},
	get_bytesAvailable: function() {
		if(this.__data != null) {
			return (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.__data) - this.__data.position;
		}
		return 0;
	},
	get_connected: function() {
		return false;
	},
	get_endian: function() {
		return this.__data.get_endian();
	},
	set_endian: function(value) {
		return this.__data.set_endian(value);
	}
});
URLStream.prototype.__class__ = $hxClasses["openfl.net.URLStream"] = URLStream;
// Init
Object.defineProperties(URLStream.prototype,{ "bytesAvailable" : { get : function () { return this.get_bytesAvailable (); }}, "connected" : { get : function () { return this.get_connected (); }}, "endian" : { get : function () { return this.get_endian (); }, set : function (v) { return this.set_endian (v); }}});
// Statics
// Export
exports.default = URLStream;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 558 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(134);
/***/ }),
/* 559 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(560);
/***/ }),
/* 560 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.net.XMLSocket
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $bind = __webpack_require__(8).default;
var $import = __webpack_require__(2).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function openfl_net_Socket() {return __webpack_require__(236);}
function Std() {return __webpack_require__(4);}
function openfl_events_Event() {return __webpack_require__(9);}
function openfl_events_DataEvent() {return __webpack_require__(232);}
// Constructor
var XMLSocket = function(host,port) {
	if(port == null) {
		port = 80;
	}
	(openfl_events_EventDispatcher().default).call(this);
	if(host != null) {
		this.connect(host,port);
	}
}
// Meta
XMLSocket.__name__ = ["openfl","net","XMLSocket"];
XMLSocket.__super__ = (openfl_events_EventDispatcher().default);
XMLSocket.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	close: function() {
		this.__socket.removeEventListener("close",$bind(this,this.__onClose));
		this.__socket.removeEventListener("connect",$bind(this,this.__onConnect));
		this.__socket.removeEventListener("ioError",$bind(this,this.__onError));
		this.__socket.removeEventListener("socketData",$bind(this,this.__onSocketData));
		this.__socket.close();
	},
	connect: function(host,port) {
		this.connected = false;
		this.__socket = new (openfl_net_Socket().default)();
		this.__socket.addEventListener("close",$bind(this,this.__onClose));
		this.__socket.addEventListener("connect",$bind(this,this.__onConnect));
		this.__socket.addEventListener("ioError",$bind(this,this.__onError));
		this.__socket.addEventListener("socketData",$bind(this,this.__onSocketData));
		this.__socket.connect(host,port);
	},
	send: function(object) {
		this.__socket.writeUTFBytes((Std().default).string(object));
		this.__socket.writeByte(0);
		this.__socket.flush();
	},
	__onClose: function(_) {
		this.connected = false;
		this.dispatchEvent(new (openfl_events_Event().default)("close"));
	},
	__onConnect: function(_) {
		this.connected = true;
		this.dispatchEvent(new (openfl_events_Event().default)("connect"));
	},
	__onError: function(_) {
		this.dispatchEvent(new (openfl_events_Event().default)("ioError"));
	},
	__onSocketData: function(_) {
		this.dispatchEvent(new (openfl_events_DataEvent().default)("data",false,false,this.__socket.readUTFBytes(this.__socket.get_bytesAvailable())));
	}
});
XMLSocket.prototype.__class__ = $hxClasses["openfl.net.XMLSocket"] = XMLSocket;
// Init
// Statics
// Export
exports.default = XMLSocket;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 561 */
/***/ (function(module, exports, __webpack_require__) {
var Lib = __webpack_require__ (25).default;
module.exports.default = Lib.navigateToURL;
/***/ }),
/* 562 */
/***/ (function(module, exports, __webpack_require__) {
var Lib = __webpack_require__ (25).default;
module.exports.default = Lib.sendToURL;
/***/ }),
/* 563 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	Telemetry: __webpack_require__(564).default
}
/***/ }),
/* 564 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(565);
/***/ }),
/* 565 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.profiler.Telemetry
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var Telemetry = function(){}
// Meta
Telemetry.__name__ = ["openfl","profiler","Telemetry"];
Telemetry.prototype = {
	
};
Telemetry.prototype.__class__ = $hxClasses["openfl.profiler.Telemetry"] = Telemetry;
// Init
Object.defineProperty(Telemetry,"connected",{ get : function() {
	return Telemetry.get_connected();
}});
// Statics
Telemetry.registerCommandHandler = function(commandName,handler) {
	return false;
}
Telemetry.sendMetric = function(metric,value) {
}
Telemetry.sendSpanMetric = function(metric,startSpanMarker,value) {
}
Telemetry.unregisterCommandHandler = function(commandName) {
	return false;
}
Telemetry.__advanceFrame = function() {
}
Telemetry.__endTiming = function(name) {
}
Telemetry.__initialize = function() {
}
Telemetry.__rewindStack = function(stack) {
}
Telemetry.__startTiming = function(name) {
}
Telemetry.__unwindStack = function() {
	return "";
}
Telemetry.get_connected = function() {
	return false;
}
Telemetry.spanMarker = 0.0
// Export
exports.default = Telemetry;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 566 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	Accelerometer: __webpack_require__(567).default
}
/***/ }),
/* 567 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(568);
/***/ }),
/* 568 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.sensors.Accelerometer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_ArgumentError() {return __webpack_require__(71);}
function haxe_Timer() {return __webpack_require__(26);}
function openfl_events_AccelerometerEvent() {return __webpack_require__(231);}
function lime_system_Sensor() {return __webpack_require__(569);}
function lime_system_SensorType() {return __webpack_require__(571);}
// Constructor
var Accelerometer = function() {
	(openfl_events_EventDispatcher().default).call(this);
	Accelerometer.initialize();
	this.__interval = 0;
	this.__muted = false;
	this.setRequestedUpdateInterval(Accelerometer.defaultInterval);
}
// Meta
Accelerometer.__name__ = ["openfl","sensors","Accelerometer"];
Accelerometer.__super__ = (openfl_events_EventDispatcher().default);
Accelerometer.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	addEventListener: function(type,listener,useCapture,priority,useWeakReference) {
		if(useWeakReference == null) {
			useWeakReference = false;
		}
		if(priority == null) {
			priority = 0;
		}
		if(useCapture == null) {
			useCapture = false;
		}
		(openfl_events_EventDispatcher().default).prototype.addEventListener.call(this,type,listener,useCapture,priority,useWeakReference);
		this.update();
	},
	setRequestedUpdateInterval: function(interval) {
		this.__interval = interval;
		if(this.__interval < 0) {
			throw new (js__$Boot_HaxeError().default)(new (openfl_errors_ArgumentError().default)());
		} else if(this.__interval == 0) {
			this.__interval = Accelerometer.defaultInterval;
		}
		if(this.__timer != null) {
			this.__timer.stop();
			this.__timer = null;
		}
		if(Accelerometer.supported && !this.get_muted()) {
			this.__timer = new (haxe_Timer().default)(this.__interval);
			this.__timer.run = $bind(this,this.update);
		}
	},
	update: function() {
		var event = new (openfl_events_AccelerometerEvent().default)("update");
		event.timestamp = (haxe_Timer().default).stamp();
		event.accelerationX = Accelerometer.currentX;
		event.accelerationY = Accelerometer.currentY;
		event.accelerationZ = Accelerometer.currentZ;
		this.dispatchEvent(event);
	},
	get_muted: function() {
		return this.__muted;
	},
	set_muted: function(value) {
		this.__muted = value;
		this.setRequestedUpdateInterval(this.__interval);
		return value;
	}
});
Accelerometer.prototype.__class__ = $hxClasses["openfl.sensors.Accelerometer"] = Accelerometer;
// Init
{
	Object.defineProperty(Accelerometer.prototype,"muted",{ get : function () { return this.get_muted (); }, set : function (v) { return this.set_muted (v); }});
	Object.defineProperty(Accelerometer,"isSupported",{ get : function() {
		return Accelerometer.get_isSupported();
	}});
};
// Statics
Accelerometer.initialize = function() {
	if(!Accelerometer.initialized) {
		var sensors = (lime_system_Sensor().default).getSensors((lime_system_SensorType().default).ACCELEROMETER);
		if(sensors.length > 0) {
			sensors[0].onUpdate.add(Accelerometer.accelerometer_onUpdate);
			Accelerometer.supported = true;
		}
		Accelerometer.initialized = true;
	}
}
Accelerometer.accelerometer_onUpdate = function(x,y,z) {
	Accelerometer.currentX = x;
	Accelerometer.currentY = y;
	Accelerometer.currentZ = z;
}
Accelerometer.get_isSupported = function() {
	Accelerometer.initialize();
	return Accelerometer.supported;
}
Accelerometer.currentX = 0.0
Accelerometer.currentY = 1.0
Accelerometer.currentZ = 0.0
Accelerometer.defaultInterval = 34
Accelerometer.initialized = false
Accelerometer.supported = false
// Export
exports.default = Accelerometer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 569 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system.Sensor
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function haxe_ds_IntMap() {return __webpack_require__(22);}
function lime_app__$Event_$Float_$Float_$Float_$Void() {return __webpack_require__(570);}
// Constructor
var Sensor = function(type,id) {
	this.onUpdate = new (lime_app__$Event_$Float_$Float_$Float_$Void().default)();
	this.type = type;
	this.id = id;
}
// Meta
Sensor.__name__ = ["lime","system","Sensor"];
Sensor.prototype = {
	
};
Sensor.prototype.__class__ = $hxClasses["lime.system.Sensor"] = Sensor;
// Init
// Statics
Sensor.getSensors = function(type) {
	if(type == null) {
		return Sensor.sensors.slice();
	} else {
		var result = [];
		var _g = 0;
		var _g1 = Sensor.sensors;
		while(_g < _g1.length) {
			var sensor = _g1[_g];
			++_g;
			if(sensor.type == type) {
				result.push(sensor);
			}
		}
		return result;
	}
}
Sensor.registerSensor = function(type,id) {
	var sensor = new Sensor(type,id);
	Sensor.sensors.push(sensor);
	Sensor.sensorByID.set(id,sensor);
}
Sensor.sensorByID = new (haxe_ds_IntMap().default)()
Sensor.sensors = []
// Export
exports.default = Sensor;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 570 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.app._Event_Float_Float_Float_Void
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Reflect() {return __webpack_require__(5);}
// Constructor
var _Event_Float_Float_Float_Void = function() {
	this.canceled = false;
	this.__listeners = [];
	this.__priorities = [];
	this.__repeat = [];
}
// Meta
_Event_Float_Float_Float_Void.__name__ = ["lime","app","_Event_Float_Float_Float_Void"];
_Event_Float_Float_Float_Void.prototype = {
	add: function(listener,once,priority) {
		if(priority == null) {
			priority = 0;
		}
		if(once == null) {
			once = false;
		}
		var _g1 = 0;
		var _g = this.__priorities.length;
		while(_g1 < _g) {
			var i = _g1++;
			if(priority > this.__priorities[i]) {
				this.__listeners.splice(i,0,listener);
				this.__priorities.splice(i,0,priority);
				this.__repeat.splice(i,0,!once);
				return;
			}
		}
		this.__listeners.push(listener);
		this.__priorities.push(priority);
		this.__repeat.push(!once);
	},
	cancel: function() {
		this.canceled = true;
	},
	has: function(listener) {
		var _g = 0;
		var _g1 = this.__listeners;
		while(_g < _g1.length) {
			var l = _g1[_g];
			++_g;
			if((Reflect().default).compareMethods(l,listener)) {
				return true;
			}
		}
		return false;
	},
	remove: function(listener) {
		var i = this.__listeners.length;
		while(--i >= 0) if((Reflect().default).compareMethods(this.__listeners[i],listener)) {
			this.__listeners.splice(i,1);
			this.__priorities.splice(i,1);
			this.__repeat.splice(i,1);
		}
	},
	dispatch: function(a,a1,a2) {
		this.canceled = false;
		var listeners = this.__listeners;
		var repeat = this.__repeat;
		var i = 0;
		while(i < listeners.length) {
			listeners[i](a,a1,a2);
			if(!repeat[i]) {
				this.remove(listeners[i]);
			} else {
				++i;
			}
			if(this.canceled) {
				break;
			}
		}
	}
};
_Event_Float_Float_Float_Void.prototype.__class__ = $hxClasses["lime.app._Event_Float_Float_Float_Void"] = _Event_Float_Float_Float_Void;
// Init
// Statics
// Export
exports.default = _Event_Float_Float_Float_Void;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 571 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Enum: lime.system.SensorType
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
// Imports
var $estr = __webpack_require__(15).default;
var $hxClasses = __webpack_require__(1).default;
// Definition
var SensorType = $hxClasses["lime.system.SensorType"] = { __ename__: ["lime","system","SensorType"], __constructs__: ["ACCELEROMETER"] }
SensorType.ACCELEROMETER = ["ACCELEROMETER",0];
SensorType.ACCELEROMETER.toString = $estr;
SensorType.ACCELEROMETER.__enum__ = SensorType;
exports.default = SensorType;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 572 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	ApplicationDomain: __webpack_require__(573).default,
	Capabilities: __webpack_require__(574).default,
	LoaderContext: __webpack_require__(577).default,
	Security: __webpack_require__(579).default,
	SecurityDomain: __webpack_require__(581).default,
	System: __webpack_require__(583).default,
	TouchscreenType: __webpack_require__(585).default,
}
/***/ }),
/* 573 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(208);
/***/ }),
/* 574 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(575);
/***/ }),
/* 575 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.system.Capabilities
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_system__$Locale_Locale_$Impl_$() {return __webpack_require__(576);}
function lime_system_System() {return __webpack_require__(46);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
// Constructor
var Capabilities = function(){}
// Meta
Capabilities.__name__ = ["openfl","system","Capabilities"];
Capabilities.prototype = {
	
};
Capabilities.prototype.__class__ = $hxClasses["openfl.system.Capabilities"] = Capabilities;
// Init
Object.defineProperties(Capabilities,{ "cpuArchitecture" : { get : function() {
	return Capabilities.get_cpuArchitecture();
}}, "language" : { get : function() {
	return Capabilities.get_language();
}}, "manufacturer" : { get : function() {
	return Capabilities.get_manufacturer();
}}, "os" : { get : function() {
	return Capabilities.get_os();
}}, "pixelAspectRatio" : { get : function() {
	return Capabilities.get_pixelAspectRatio();
}}, "screenDPI" : { get : function() {
	return Capabilities.get_screenDPI();
}}, "screenResolutionX" : { get : function() {
	return Capabilities.get_screenResolutionX();
}}, "screenResolutionY" : { get : function() {
	return Capabilities.get_screenResolutionY();
}}, "version" : { get : function() {
	return Capabilities.get_version();
}}});
// Statics
Capabilities.hasMultiChannelAudio = function(type) {
	return false;
}
Capabilities.get_cpuArchitecture = function() {
	return "x86";
}
Capabilities.get_language = function() {
	var language = (lime_system__$Locale_Locale_$Impl_$().default).get_language((lime_system__$Locale_Locale_$Impl_$().default).get_currentLocale());
	if(language != null) {
		language = language.toLowerCase();
		switch(language) {
		case "cs":case "da":case "de":case "en":case "es":case "fi":case "fr":case "hu":case "it":case "ja":case "ko":case "nb":case "nl":case "pl":case "pt":case "ru":case "sv":case "tr":
			return language;
		case "zh":
			var region = (lime_system__$Locale_Locale_$Impl_$().default).get_region((lime_system__$Locale_Locale_$Impl_$().default).get_currentLocale());
			if(region != null) {
				var _g = region.toUpperCase();
				switch(_g) {
				case "HANT":case "TW":
					return "zh-TW";
				default:
				}
			}
			return "zh-CN";
		default:
			return "xu";
		}
	}
	return "en";
}
Capabilities.get_manufacturer = function() {
	var name = (lime_system_System().default).get_platformName();
	return "OpenFL" + (name != null ? " " + name : "");
}
Capabilities.get_os = function() {
	var label = (lime_system_System().default).get_platformLabel();
	if(label != null) {
		return label;
	} else {
		return "";
	}
}
Capabilities.get_pixelAspectRatio = function() {
	return 1;
}
Capabilities.get_screenDPI = function() {
	var $window = (openfl__$internal_Lib().default).application != null ? (openfl__$internal_Lib().default).application.get_window() : null;
	var screenDPI = Capabilities.__standardDensities[0];
	if($window != null) {
		var display = $window.get_display();
		if(display != null) {
			var actual = display.dpi;
			var closestValue = screenDPI;
			var closestDifference = Math.abs(actual - screenDPI);
			var difference;
			var _g = 0;
			var _g1 = Capabilities.__standardDensities;
			while(_g < _g1.length) {
				var density = _g1[_g];
				++_g;
				difference = Math.abs(actual - density);
				if(difference < closestDifference) {
					closestDifference = difference;
					closestValue = density;
				}
			}
			screenDPI = closestValue;
		}
	}
	return screenDPI;
}
Capabilities.get_screenResolutionX = function() {
	var stage = (openfl__$internal_Lib().default).current.stage;
	var resolutionX = 0;
	if(stage.window != null) {
		var display = stage.window.get_display();
		if(display != null) {
			resolutionX = Math.ceil(display.currentMode.width * stage.window.get_scale());
		}
	}
	if(resolutionX > 0) {
		return resolutionX;
	}
	return stage.stageWidth;
}
Capabilities.get_screenResolutionY = function() {
	var stage = (openfl__$internal_Lib().default).current.stage;
	var resolutionY = 0;
	if(stage.window != null) {
		var display = stage.window.get_display();
		if(display != null) {
			resolutionY = Math.ceil(display.currentMode.height * stage.window.get_scale());
		}
	}
	if(resolutionY > 0) {
		return resolutionY;
	}
	return stage.stageHeight;
}
Capabilities.get_version = function() {
	var value = "WEB";
	return value;
}
Capabilities.avHardwareDisable = true
Capabilities.hasAccessibility = false
Capabilities.hasAudio = true
Capabilities.hasAudioEncoder = false
Capabilities.hasEmbeddedVideo = false
Capabilities.hasIME = false
Capabilities.hasMP3 = false
Capabilities.hasPrinting = true
Capabilities.hasScreenBroadcast = false
Capabilities.hasScreenPlayback = false
Capabilities.hasStreamingAudio = false
Capabilities.hasStreamingVideo = false
Capabilities.hasTLS = true
Capabilities.hasVideoEncoder = true
Capabilities.isDebugger = false
Capabilities.isEmbeddedInAcrobat = false
Capabilities.localFileReadDisable = false
Capabilities.maxLevelIDC = 0
Capabilities.playerType = "StandAlone"
Capabilities.screenColor = "color"
Capabilities.serverString = ""
Capabilities.supports32BitProcesses = false
Capabilities.supports64BitProcesses = false
Capabilities.touchscreenType = "finger"
Capabilities.__standardDensities = [120,160,240,320,480,640,800,960]
// Export
exports.default = Capabilities;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 576 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: lime.system._Locale.Locale_Impl_
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var Locale_Impl_ = function(){}
// Meta
Locale_Impl_.__name__ = ["lime","system","_Locale","Locale_Impl_"];
Locale_Impl_.prototype = {
	
};
Locale_Impl_.prototype.__class__ = $hxClasses["lime.system._Locale.Locale_Impl_"] = Locale_Impl_;
// Init
// Statics
Locale_Impl_._new = function(value) {
	var this1 = value;
	return this1;
}
Locale_Impl_.equals = function(a,b) {
	var language = Locale_Impl_.get_language(a);
	var region = Locale_Impl_.get_region(a);
	var language2 = Locale_Impl_.get_language(b);
	var region2 = Locale_Impl_.get_region(b);
	var languageMatch = language == language2;
	var regionMatch = region == region2;
	if(!languageMatch && language != null && language2 != null) {
		languageMatch = language.toLowerCase() == language2.toLowerCase();
	}
	if(!regionMatch && region != null && region2 != null) {
		regionMatch = region.toLowerCase() == region2.toLowerCase();
	}
	if(languageMatch) {
		return regionMatch;
	} else {
		return false;
	}
}
Locale_Impl_.__init = function() {
	if(Locale_Impl_.__systemLocale == null) {
		var locale = null;
		locale = navigator.language;
		if(locale != null) {
			Locale_Impl_.__systemLocale = locale;
		} else {
			Locale_Impl_.__systemLocale = "en-US";
		}
		Locale_Impl_.set_currentLocale(Locale_Impl_.__systemLocale);
	}
}
Locale_Impl_.get_language = function(this1) {
	if(this1 != null) {
		var index = this1.indexOf("_");
		if(index > -1) {
			return this1.substring(0,index);
		}
		index = this1.indexOf("-");
		if(index > -1) {
			return this1.substring(0,index);
		}
	}
	return this1;
}
Locale_Impl_.get_region = function(this1) {
	if(this1 != null) {
		var underscoreIndex = this1.indexOf("_");
		var dotIndex = this1.indexOf(".");
		var dashIndex = this1.indexOf("-");
		if(underscoreIndex > -1) {
			if(dotIndex > -1) {
				return this1.substring(underscoreIndex + 1,dotIndex);
			} else {
				return this1.substring(underscoreIndex + 1);
			}
		} else if(dashIndex > -1) {
			if(dotIndex > -1) {
				return this1.substring(dashIndex + 1,dotIndex);
			} else {
				return this1.substring(dashIndex + 1);
			}
		}
	}
	return null;
}
Locale_Impl_.get_currentLocale = function() {
	Locale_Impl_.__init();
	return Locale_Impl_.currentLocale;
}
Locale_Impl_.set_currentLocale = function(value) {
	Locale_Impl_.__init();
	return Locale_Impl_.currentLocale = value;
}
Locale_Impl_.get_systemLocale = function() {
	Locale_Impl_.__init();
	return Locale_Impl_.__systemLocale;
}
// Export
exports.default = Locale_Impl_;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 577 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(578);
/***/ }),
/* 578 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.system.LoaderContext
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var LoaderContext = function(checkPolicyFile,applicationDomain,securityDomain) {
	if(checkPolicyFile == null) {
		checkPolicyFile = false;
	}
	this.checkPolicyFile = checkPolicyFile;
	this.securityDomain = securityDomain;
	this.applicationDomain = applicationDomain;
	this.allowCodeImport = true;
	this.allowLoadBytesCodeExecution = true;
}
// Meta
LoaderContext.__name__ = ["openfl","system","LoaderContext"];
LoaderContext.prototype = {
	
};
LoaderContext.prototype.__class__ = $hxClasses["openfl.system.LoaderContext"] = LoaderContext;
// Init
// Statics
// Export
exports.default = LoaderContext;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 579 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(580);
/***/ }),
/* 580 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.system.Security
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var Security = function(){}
// Meta
Security.__name__ = ["openfl","system","Security"];
Security.prototype = {
	
};
Security.prototype.__class__ = $hxClasses["openfl.system.Security"] = Security;
// Init
// Statics
Security.allowDomain = function(p1,p2,p3,p4,p5) {
}
Security.allowInsecureDomain = function(p1,p2,p3,p4,p5) {
}
Security.loadPolicyFile = function(url) {
}
Security.LOCAL_TRUSTED = "localTrusted"
Security.LOCAL_WITH_FILE = "localWithFile"
Security.LOCAL_WITH_NETWORK = "localWithNetwork"
Security.REMOTE = "remote"
// Export
exports.default = Security;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 581 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(582);
/***/ }),
/* 582 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.system.SecurityDomain
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var SecurityDomain = function() {
}
// Meta
SecurityDomain.__name__ = ["openfl","system","SecurityDomain"];
SecurityDomain.prototype = {
	
};
SecurityDomain.prototype.__class__ = $hxClasses["openfl.system.SecurityDomain"] = SecurityDomain;
// Init
// Statics
SecurityDomain.currentDomain = new SecurityDomain()
// Export
exports.default = SecurityDomain;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 583 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(584);
/***/ }),
/* 584 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.system.System
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function lime_system_System() {return __webpack_require__(46);}
function openfl__$internal_Lib() {return __webpack_require__(34);}
function lime_system_Clipboard() {return __webpack_require__(84);}
// Constructor
var System = function(){}
// Meta
System.__name__ = ["openfl","system","System"];
System.prototype = {
	
};
System.prototype.__class__ = $hxClasses["openfl.system.System"] = System;
// Init
Object.defineProperties(System,{ "totalMemory" : { get : function() {
	return System.get_totalMemory();
}}, "vmVersion" : { get : function() {
	return System.get_vmVersion();
}}});
// Statics
System.exit = function(code) {
	(lime_system_System().default).exit(code);
}
System.gc = function() {
}
System.pause = function() {
	(openfl__$internal_Lib().default).notImplemented({ fileName : "System.hx", lineNumber : 52, className : "openfl.system.System", methodName : "pause"});
}
System.resume = function() {
	(openfl__$internal_Lib().default).notImplemented({ fileName : "System.hx", lineNumber : 59, className : "openfl.system.System", methodName : "resume"});
}
System.setClipboard = function(string) {
	(lime_system_Clipboard().default).set_text(string);
}
System.get_totalMemory = function() {
	return (window.performance && window.performance.memory) ? window.performance.memory.usedJSHeapSize : 0;
}
System.get_vmVersion = function() {
	return "1.0.0";
}
System.useCodePage = false
// Export
exports.default = System;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 585 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.TouchscreenType = module.exports.default = {
	FINGER: "finger",
	NONE: "none",
	STYLUS: "stylus"
};
/***/ }),
/* 586 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	AntiAliasType: __webpack_require__(587).default,
	Font: __webpack_require__(588).default,
	FontStyle: __webpack_require__(589).default,
	FontType: __webpack_require__(590).default,
	GridFitType: __webpack_require__(591).default,
	TextField: __webpack_require__(592).default,
	TextFieldAutoSize: __webpack_require__(593).default,
	TextFieldType: __webpack_require__(594).default,
	TextFormat: __webpack_require__(595).default,
	TextFormatAlign: __webpack_require__(596).default,
	TextLineMetrics: __webpack_require__(597).default,
}
/***/ }),
/* 587 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.AntiAliasType = module.exports.default = {
	ADVANCED: "advanced",
	NORMAL: "normal"
};
/***/ }),
/* 588 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(102);
/***/ }),
/* 589 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.FontStyle = module.exports.default = {
	BOLD: "bold",
	BOLD_ITALIC: "boldItalic",
	ITALIC: "italic",
	REGULAR: "regular"
};
/***/ }),
/* 590 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.FontType = module.exports.default = {
	DEVICE: "device",
	EMBEDDED: "embedded",
	EMBEDDED_CFF: "embeddedCFF"
};
/***/ }),
/* 591 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.GridFitType = module.exports.default = {
	NONE: "none",
	PIXEL: "pixel",
	SUBPIXEL: "subpixel"
};
/***/ }),
/* 592 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(130);
/***/ }),
/* 593 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.TextFieldAutoSize = module.exports.default = {
	CENTER: "center",
	LEFT: "left",
	NONE: "none",
	RIGHT: "right"
};
/***/ }),
/* 594 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.TextFieldType = module.exports.default = {
	DYNAMIC: "dynamic",
	INPUT: "input"
};
/***/ }),
/* 595 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(135);
/***/ }),
/* 596 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.TextFormatAlign = module.exports.default = {
	CENTER: "center",
	END: "end",
	JUSTIFY: "justify",
	LEFT: "left",
	RIGHT: "right",
	START: "start"
};
/***/ }),
/* 597 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(185);
/***/ }),
/* 598 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	GameInput: __webpack_require__(599).default,
	GameInputControl: __webpack_require__(600).default,
	GameInputDevice: __webpack_require__(601).default,
	Keyboard: __webpack_require__(602).default,
	KeyLocation: __webpack_require__(603).default,
	Mouse: __webpack_require__(604).default,
	MouseCursor: __webpack_require__(605).default,
	Multitouch: __webpack_require__(606).default,
	MultitouchInputMode: __webpack_require__(608).default,
}
/***/ }),
/* 599 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(209);
/***/ }),
/* 600 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(140);
/***/ }),
/* 601 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(211);
/***/ }),
/* 602 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(221);
/***/ }),
/* 603 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.KeyLocation = module.exports.default = {
	LEFT: 1,
	NUM_PAD: 3,
	RIGHT: 2,
	STANDARD: 0
};
/***/ }),
/* 604 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(223);
/***/ }),
/* 605 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.MouseCursor = module.exports.default = {
	ARROW: "arrow",
	AUTO: "auto",
	BUTTON: "button",
	HAND: "hand",
	IBEAM: "ibeam"
};
/***/ }),
/* 606 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(607);
/***/ }),
/* 607 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.ui.Multitouch
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
// Constructor
var Multitouch = function(){}
// Meta
Multitouch.__name__ = ["openfl","ui","Multitouch"];
Multitouch.prototype = {
	
};
Multitouch.prototype.__class__ = $hxClasses["openfl.ui.Multitouch"] = Multitouch;
// Init
{
	Multitouch.maxTouchPoints = 2;
	Multitouch.supportedGestures = null;
	Multitouch.supportsGestureEvents = false;
	Multitouch.inputMode = "touchPoint";
	Object.defineProperties(Multitouch,{ "supportsTouchEvents" : { get : function() {
		return Multitouch.get_supportsTouchEvents();
	}}});
};
// Statics
Multitouch.get_supportsTouchEvents = function() {
	if(('ontouchstart' in document.documentElement) || (window.DocumentTouch && document instanceof DocumentTouch)) {
		return true;
	}
	return false;
}
// Export
exports.default = Multitouch;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 608 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.MultitouchInputMode = module.exports.default = {
	GESTURE: "gesture",
	NONE: "none",
	TOUCH_POINT: "touchPoint"
};
/***/ }),
/* 609 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = {
	AGALMiniAssembler: __webpack_require__(610).default,
	ByteArray: __webpack_require__(615).default,
	CompressionAlgorithm: __webpack_require__(616).default,
	// Dictionary: require("./Dictionary").default,
	Endian: __webpack_require__(617).default,
	IDataInput: __webpack_require__(618).default,
	IDataOutput: __webpack_require__(619).default,
	// Object: require("./Object").default,
	Timer: __webpack_require__(620).default,
	getTimer: __webpack_require__(622).default,
	getDefinitionByName: __webpack_require__(623).default,
	getQualifiedClassName: __webpack_require__(624).default,
	getQualifiedSuperclassName: __webpack_require__(625).default,
}
/***/ }),
/* 610 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(611);
/***/ }),
/* 611 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.AGALMiniAssembler
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_Lib() {return __webpack_require__(25);}
function openfl_utils_ByteArrayData() {return __webpack_require__(45);}
function StringTools() {return __webpack_require__(12);}
function EReg() {return __webpack_require__(27);}
function HxOverrides() {return __webpack_require__(7);}
function haxe_Log() {return __webpack_require__(47);}
function Std() {return __webpack_require__(4);}
function _$UInt_UInt_$Impl_$() {return __webpack_require__(43);}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
function openfl_utils__$AGALMiniAssembler_Register() {return __webpack_require__(612);}
function haxe_ds_StringMap() {return __webpack_require__(18);}
function openfl_utils__$AGALMiniAssembler_OpCode() {return __webpack_require__(613);}
function openfl_utils__$AGALMiniAssembler_Sampler() {return __webpack_require__(614);}
// Constructor
var AGALMiniAssembler = function(debugging) {
	if(debugging == null) {
		debugging = false;
	}
	this.debugEnabled = false;
	this.debugEnabled = debugging;
	if(!AGALMiniAssembler.initialized) {
		AGALMiniAssembler.init();
	}
}
// Meta
AGALMiniAssembler.__name__ = ["openfl","utils","AGALMiniAssembler"];
AGALMiniAssembler.prototype = {
	assemble2: function(context3D,version,vertexSource,fragmentSource) {
		var agalVertex = this.assemble("vertex",vertexSource,version);
		var agalFragment = this.assemble("fragment",fragmentSource,version);
		var program = context3D.createProgram();
		program.upload(agalVertex,agalFragment);
		return program;
	},
	assemble: function(mode,source,version,ignoreLimits) {
		if(ignoreLimits == null) {
			ignoreLimits = false;
		}
		if(version == null) {
			version = 1;
		}
		var start = (openfl_Lib().default).getTimer();
		var this1 = new (openfl_utils_ByteArrayData().default)(0);
		this.agalcode = this1;
		this.error = "";
		var isFrag = false;
		if(mode == "fragment") {
			isFrag = true;
		} else if(mode != "vertex") {
			this.error = "ERROR: mode needs to be \"" + "fragment" + "\" or \"" + "vertex" + "\" but is \"" + mode + "\".";
		}
		this.agalcode.set_endian("littleEndian");
		this.agalcode.writeByte(160);
		this.agalcode.writeUnsignedInt(version);
		this.agalcode.writeByte(161);
		this.agalcode.writeByte(isFrag ? 1 : 0);
		this.initregmap(version,ignoreLimits);
		var lines = (StringTools().default).replace(source,"\r","\n").split("\n");
		var nest = 0;
		var nops = 0;
		var lng = lines.length;
		var reg1 = new (EReg().default)("<.*>","g");
		var reg2 = new (EReg().default)("([\\w\\.\\-\\+]+)","gi");
		var reg3 = new (EReg().default)("^\\w{3}","ig");
		var reg4 = new (EReg().default)("vc\\[([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw](\\+\\d{1,3})?)?\\](\\.[xyzw]{1,4})?|([vofi][acostdip]?[d]?)(\\d*)?(\\.[xyzw]{1,4})?","gi");
		var reg5 = new (EReg().default)("\\[.*\\]","ig");
		var reg6 = new (EReg().default)("^\\b[A-Za-z]{1,3}","ig");
		var reg7 = new (EReg().default)("\\d+","");
		var reg8 = new (EReg().default)("(\\.[xyzw]{1,4})","");
		var reg9 = new (EReg().default)("[A-Za-z]{1,3}","ig");
		var reg10 = new (EReg().default)("(\\.[xyzw]{1,1})","");
		var reg11 = new (EReg().default)("\\+\\d{1,3}","ig");
		var i = 0;
		while(i < lng && this.error == "") {
			var line = (StringTools().default).trim(lines[i]);
			var startcomment = line.indexOf("//");
			if(startcomment != -1) {
				line = (HxOverrides().default).substr(line,0,startcomment);
			}
			var optsi = reg1.match(line) ? reg1.matchedPos().pos : -1;
			var opts = null;
			if(optsi != -1) {
				opts = this.match((HxOverrides().default).substr(line,optsi,null),reg2);
				line = (HxOverrides().default).substr(line,0,optsi);
			}
			var opCode = null;
			var opFound = null;
			if(reg3.match(line)) {
				opCode = reg3.matched(0);
				opFound = AGALMiniAssembler.OPMAP.get(opCode);
			}
			if(opFound == null) {
				if(line.length >= 3) {
					(haxe_Log().default).trace("warning: bad line " + i + ": " + lines[i],{ fileName : "AGALMiniAssembler.hx", lineNumber : 284, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
				}
				++i;
				continue;
			}
			if(this.debugEnabled) {
				(haxe_Log().default).trace(opFound,{ fileName : "AGALMiniAssembler.hx", lineNumber : 296, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
			}
			if(opFound == null) {
				if(line.length >= 3) {
					(haxe_Log().default).trace("warning: bad line " + i + ": " + lines[i],{ fileName : "AGALMiniAssembler.hx", lineNumber : 304, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
				}
				++i;
				continue;
			}
			line = (HxOverrides().default).substr(line,line.indexOf(opFound.name) + opFound.name.length,null);
			if((opFound.flags & 256) != 0 && version < 2) {
				this.error = "error: opcode requires version 2.";
				break;
			}
			if((opFound.flags & 64) != 0 && isFrag) {
				this.error = "error: opcode is only allowed in vertex programs.";
				break;
			}
			if((opFound.flags & 32) != 0 && !isFrag) {
				this.error = "error: opcode is only allowed in fragment programs.";
				break;
			}
			if(this.verbose) {
				(haxe_Log().default).trace("emit opcode=" + (Std().default).string(opFound),{ fileName : "AGALMiniAssembler.hx", lineNumber : 338, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
			}
			this.agalcode.writeUnsignedInt(opFound.emitCode);
			++nops;
			if(nops > 4096) {
				this.error = "error: too many opcodes. maximum is " + 4096 + ".";
				break;
			}
			var regs = this.match(line,reg4);
			if(regs.length != opFound.numRegister) {
				this.error = "error: wrong number of operands. found " + regs.length + " but expected " + opFound.numRegister + ".";
				break;
			}
			var badreg = false;
			var pad = 160;
			var regLength = regs.length;
			var _g1 = 0;
			var _g = regLength;
			while(_g1 < _g) {
				var j = _g1++;
				var isRelative = false;
				var relreg = this.match(regs[j],reg5);
				if(relreg.length > 0) {
					regs[j] = (StringTools().default).replace(regs[j],relreg[0],"0");
					if(this.verbose) {
						(haxe_Log().default).trace("IS REL",{ fileName : "AGALMiniAssembler.hx", lineNumber : 377, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
					}
					isRelative = true;
				}
				var res = this.match(regs[j],reg6);
				if(res.length == 0) {
					this.error = "error: could not parse operand " + j + " (" + regs[j] + ").";
					badreg = true;
					break;
				}
				var regFound = AGALMiniAssembler.REGMAP.get(res[0]);
				if(this.debugEnabled) {
					(haxe_Log().default).trace(regFound,{ fileName : "AGALMiniAssembler.hx", lineNumber : 399, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
				}
				if(regFound == null) {
					this.error = "error: could not find register name for operand " + j + " (" + regs[j] + ").";
					badreg = true;
					break;
				}
				if(isFrag) {
					if((regFound.flags & 32) == 0) {
						this.error = "error: register operand " + j + " (" + regs[j] + ") only allowed in vertex programs.";
						badreg = true;
						break;
					}
					if(isRelative) {
						this.error = "error: register operand " + j + " (" + regs[j] + ") relative adressing not allowed in fragment programs.";
						badreg = true;
						break;
					}
				} else if((regFound.flags & 64) == 0) {
					this.error = "error: register operand " + j + " (" + regs[j] + ") only allowed in fragment programs.";
					badreg = true;
					break;
				}
				var pos = regs[j].indexOf(regFound.name) + regFound.name.length;
				regs[j] = (HxOverrides().default).substr(regs[j],pos,null);
				var idxmatch = isRelative ? this.match(relreg[0],reg7) : this.match(regs[j],reg7);
				var regidx = 0;
				if(idxmatch.length > 0) {
					regidx = (Std().default).parseInt(idxmatch[0]);
				}
				if((_$UInt_UInt_$Impl_$().default).gt(regidx,regFound.range)) {
					this.error = "error: register operand " + j + " (" + regs[j] + ") index exceeds limit of " + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(regFound.range + 1)) + ".";
					badreg = true;
					break;
				}
				var regmask = 0;
				var maskmatch = this.match(regs[j],reg8);
				var isDest = j == 0 && (opFound.flags & 128) == 0;
				var isSampler = j == 2 && (opFound.flags & 8) != 0;
				var reltype = 0;
				var relsel = 0;
				var reloffset = 0;
				if(isDest && isRelative) {
					this.error = "error: relative can not be destination";
					badreg = true;
					break;
				}
				if(maskmatch.length > 0) {
					regmask = 0;
					var cv = 0;
					var maskLength = maskmatch[0].length;
					var k = 1;
					while(k < maskLength) {
						cv = (HxOverrides().default).cca(maskmatch[0],k) - 120;
						if((_$UInt_UInt_$Impl_$().default).gt(cv,2)) {
							cv = 3;
						}
						if(isDest) {
							regmask |= 1 << cv;
						} else {
							regmask = regmask | cv << (k - 1 << 1);
						}
						++k;
					}
					if(!isDest) {
						while(k <= 4) {
							regmask = regmask | cv << (k - 1 << 1);
							++k;
						}
					}
				} else if(isDest) {
					regmask = 15;
				} else {
					regmask = 228;
				}
				if(isRelative) {
					var relname = this.match(relreg[0],reg9);
					var regFoundRel = AGALMiniAssembler.REGMAP.get(relname[0]);
					if(regFoundRel == null) {
						this.error = "error: bad index register";
						badreg = true;
						break;
					}
					reltype = regFoundRel.emitCode;
					var selmatch = this.match(relreg[0],reg10);
					if(selmatch.length == 0) {
						this.error = "error: bad index register select";
						badreg = true;
						break;
					}
					relsel = (HxOverrides().default).cca(selmatch[0],1) - 120;
					if((_$UInt_UInt_$Impl_$().default).gt(relsel,2)) {
						relsel = 3;
					}
					var relofs = this.match(relreg[0],reg11);
					if(relofs.length > 0) {
						reloffset = (Std().default).parseInt(relofs[0]);
					}
					if(reloffset < 0 || reloffset > 255) {
						this.error = "error: index offset " + reloffset + " out of bounds. [0..255]";
						badreg = true;
						break;
					}
					if(this.verbose) {
						(haxe_Log().default).trace("RELATIVE: type=" + reltype + "==" + relname[0] + " sel=" + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(relsel)) + "==" + selmatch[0] + " idx=" + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(regidx)) + " offset=" + reloffset,{ fileName : "AGALMiniAssembler.hx", lineNumber : 574, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
					}
				}
				if(this.verbose) {
					(haxe_Log().default).trace("  emit argcode=" + (Std().default).string(regFound) + "[" + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(regidx)) + "][" + regmask + "]",{ fileName : "AGALMiniAssembler.hx", lineNumber : 582, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
				}
				if(isDest) {
					this.agalcode.writeShort(regidx);
					this.agalcode.writeByte(regmask);
					this.agalcode.writeByte(regFound.emitCode);
					pad -= 32;
				} else if(isSampler) {
					if(this.verbose) {
						(haxe_Log().default).trace("  emit sampler",{ fileName : "AGALMiniAssembler.hx", lineNumber : 599, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
					}
					var samplerbits = 5;
					var optsLength = opts == null ? 0 : opts.length;
					var bias = 0.0;
					var _g3 = 0;
					var _g2 = optsLength;
					while(_g3 < _g2) {
						var k1 = _g3++;
						if(this.verbose) {
							(haxe_Log().default).trace("    opt: " + opts[k1],{ fileName : "AGALMiniAssembler.hx", lineNumber : 611, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
						}
						var optfound = AGALMiniAssembler.SAMPLEMAP.get(opts[k1]);
						if(optfound == null) {
							bias = (Std().default).parseFloat(opts[k1]);
							if(this.verbose) {
								(haxe_Log().default).trace("    bias: " + bias,{ fileName : "AGALMiniAssembler.hx", lineNumber : 625, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
							}
						} else {
							if(optfound.flag != 16) {
								samplerbits &= ~(15 << optfound.flag);
							}
							samplerbits = samplerbits | optfound.mask << optfound.flag;
						}
					}
					this.agalcode.writeShort(regidx);
					this.agalcode.writeByte((Std().default)["int"](bias * 8.0));
					this.agalcode.writeByte(0);
					this.agalcode.writeUnsignedInt(samplerbits);
					if(this.verbose) {
						(haxe_Log().default).trace("    bits: " + (samplerbits - 5),{ fileName : "AGALMiniAssembler.hx", lineNumber : 650, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
					}
					pad -= 64;
				} else {
					if(j == 0) {
						this.agalcode.writeUnsignedInt(0);
						pad -= 32;
					}
					this.agalcode.writeShort(regidx);
					this.agalcode.writeByte(reloffset);
					this.agalcode.writeByte(regmask);
					this.agalcode.writeByte(regFound.emitCode);
					this.agalcode.writeByte(reltype);
					this.agalcode.writeShort(isRelative ? relsel | 32768 : 0);
					pad -= 64;
				}
			}
			var j1 = 0;
			while(j1 < pad) {
				this.agalcode.writeByte(0);
				j1 += 8;
			}
			if(badreg) {
				break;
			}
			++i;
		}
		if(this.error != "") {
			this.error += "\n  at line " + i + " " + lines[i];
			(openfl_utils__$ByteArray_ByteArray_$Impl_$().default).set_length(this.agalcode,0);
			(haxe_Log().default).trace(this.error,{ fileName : "AGALMiniAssembler.hx", lineNumber : 703, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
		}
		if(this.debugEnabled) {
			var dbgLine = "generated bytecode:";
			var agalLength = (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(this.agalcode);
			var _g11 = 0;
			var _g4 = agalLength;
			while(_g11 < _g4) {
				var index = _g11++;
				if(index % 16 == 0) {
					dbgLine += "\n";
				}
				if(index % 4 == 0) {
					dbgLine += " ";
				}
				var byteStr = (StringTools().default).hex(this.agalcode.get(index),2);
				if(byteStr.length < 2) {
					byteStr = "0" + byteStr;
				}
				dbgLine += byteStr;
			}
			(haxe_Log().default).trace(dbgLine,{ fileName : "AGALMiniAssembler.hx", lineNumber : 739, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
		}
		if(this.verbose) {
			(haxe_Log().default).trace("AGALMiniAssembler.assemble time: " + ((openfl_Lib().default).getTimer() - start) / 1000 + "s",{ fileName : "AGALMiniAssembler.hx", lineNumber : 745, className : "openfl.utils.AGALMiniAssembler", methodName : "assemble"});
		}
		return this.agalcode;
	},
	initregmap: function(version,ignorelimits) {
		var this1 = AGALMiniAssembler.REGMAP;
		var v = new (openfl_utils__$AGALMiniAssembler_Register().default)("va","vertex attribute",0,ignorelimits ? 1024 : version == 1 || version == 2 ? 7 : 15,66);
		this1.set("va",v);
		var this2 = AGALMiniAssembler.REGMAP;
		var v1 = new (openfl_utils__$AGALMiniAssembler_Register().default)("vc","vertex constant",1,ignorelimits ? 1024 : version == 1 ? 127 : 249,66);
		this2.set("vc",v1);
		var this3 = AGALMiniAssembler.REGMAP;
		var v2 = new (openfl_utils__$AGALMiniAssembler_Register().default)("vt","vertex temporary",2,ignorelimits ? 1024 : version == 1 ? 7 : 25,67);
		this3.set("vt",v2);
		var this4 = AGALMiniAssembler.REGMAP;
		var v3 = new (openfl_utils__$AGALMiniAssembler_Register().default)("vo","vertex output",3,ignorelimits ? 1024 : 0,65);
		this4.set("vo",v3);
		var this5 = AGALMiniAssembler.REGMAP;
		var v4 = new (openfl_utils__$AGALMiniAssembler_Register().default)("vi","varying",4,ignorelimits ? 1024 : version == 1 ? 7 : 9,99);
		this5.set("vi",v4);
		var this6 = AGALMiniAssembler.REGMAP;
		var v5 = new (openfl_utils__$AGALMiniAssembler_Register().default)("fc","fragment constant",1,ignorelimits ? 1024 : version == 1 ? 27 : version == 2 ? 63 : 199,34);
		this6.set("fc",v5);
		var this7 = AGALMiniAssembler.REGMAP;
		var v6 = new (openfl_utils__$AGALMiniAssembler_Register().default)("ft","fragment temporary",2,ignorelimits ? 1024 : version == 1 ? 7 : 25,35);
		this7.set("ft",v6);
		var this8 = AGALMiniAssembler.REGMAP;
		var v7 = new (openfl_utils__$AGALMiniAssembler_Register().default)("fs","texture sampler",5,ignorelimits ? 1024 : 7,34);
		this8.set("fs",v7);
		var this9 = AGALMiniAssembler.REGMAP;
		var v8 = new (openfl_utils__$AGALMiniAssembler_Register().default)("fo","fragment output",3,ignorelimits ? 1024 : version == 1 ? 0 : 3,33);
		this9.set("fo",v8);
		var this10 = AGALMiniAssembler.REGMAP;
		var v9 = new (openfl_utils__$AGALMiniAssembler_Register().default)("fd","fragment depth output",6,ignorelimits ? 1024 : version == 1 ? -1 : 0,33);
		this10.set("fd",v9);
		var this11 = AGALMiniAssembler.REGMAP;
		var v10 = new (openfl_utils__$AGALMiniAssembler_Register().default)("iid","instance id",7,ignorelimits ? 1024 : 0,66);
		this11.set("iid",v10);
		var this12 = AGALMiniAssembler.REGMAP;
		var v11 = AGALMiniAssembler.REGMAP.get("vo");
		this12.set("op",v11);
		var this13 = AGALMiniAssembler.REGMAP;
		var v12 = AGALMiniAssembler.REGMAP.get("vi");
		this13.set("i",v12);
		var this14 = AGALMiniAssembler.REGMAP;
		var v13 = AGALMiniAssembler.REGMAP.get("vi");
		this14.set("v",v13);
		var this15 = AGALMiniAssembler.REGMAP;
		var v14 = AGALMiniAssembler.REGMAP.get("fo");
		this15.set("oc",v14);
		var this16 = AGALMiniAssembler.REGMAP;
		var v15 = AGALMiniAssembler.REGMAP.get("fd");
		this16.set("od",v15);
		var this17 = AGALMiniAssembler.REGMAP;
		var v16 = AGALMiniAssembler.REGMAP.get("vi");
		this17.set("fi",v16);
	},
	match: function(value,reg) {
		var matches = [];
		var index = 0;
		var match;
		while(reg.matchSub(value,index)) {
			match = reg.matched(0);
			matches.push(match);
			index = reg.matchedPos().pos + match.length;
		}
		return matches;
	}
};
AGALMiniAssembler.prototype.__class__ = $hxClasses["openfl.utils.AGALMiniAssembler"] = AGALMiniAssembler;
// Init
// Statics
AGALMiniAssembler.init = function() {
	AGALMiniAssembler.initialized = true;
	var this1 = AGALMiniAssembler.OPMAP;
	var v = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("mov",2,0,0);
	this1.set("mov",v);
	var this2 = AGALMiniAssembler.OPMAP;
	var v1 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("add",3,1,0);
	this2.set("add",v1);
	var this3 = AGALMiniAssembler.OPMAP;
	var v2 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("sub",3,2,0);
	this3.set("sub",v2);
	var this4 = AGALMiniAssembler.OPMAP;
	var v3 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("mul",3,3,0);
	this4.set("mul",v3);
	var this5 = AGALMiniAssembler.OPMAP;
	var v4 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("div",3,4,0);
	this5.set("div",v4);
	var this6 = AGALMiniAssembler.OPMAP;
	var v5 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("rcp",2,5,0);
	this6.set("rcp",v5);
	var this7 = AGALMiniAssembler.OPMAP;
	var v6 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("min",3,6,0);
	this7.set("min",v6);
	var this8 = AGALMiniAssembler.OPMAP;
	var v7 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("max",3,7,0);
	this8.set("max",v7);
	var this9 = AGALMiniAssembler.OPMAP;
	var v8 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("frc",2,8,0);
	this9.set("frc",v8);
	var this10 = AGALMiniAssembler.OPMAP;
	var v9 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("sqt",2,9,0);
	this10.set("sqt",v9);
	var this11 = AGALMiniAssembler.OPMAP;
	var v10 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("rsq",2,10,0);
	this11.set("rsq",v10);
	var this12 = AGALMiniAssembler.OPMAP;
	var v11 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("pow",3,11,0);
	this12.set("pow",v11);
	var this13 = AGALMiniAssembler.OPMAP;
	var v12 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("log",2,12,0);
	this13.set("log",v12);
	var this14 = AGALMiniAssembler.OPMAP;
	var v13 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("exp",2,13,0);
	this14.set("exp",v13);
	var this15 = AGALMiniAssembler.OPMAP;
	var v14 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("nrm",2,14,0);
	this15.set("nrm",v14);
	var this16 = AGALMiniAssembler.OPMAP;
	var v15 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("sin",2,15,0);
	this16.set("sin",v15);
	var this17 = AGALMiniAssembler.OPMAP;
	var v16 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("cos",2,16,0);
	this17.set("cos",v16);
	var this18 = AGALMiniAssembler.OPMAP;
	var v17 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("crs",3,17,0);
	this18.set("crs",v17);
	var this19 = AGALMiniAssembler.OPMAP;
	var v18 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("dp3",3,18,0);
	this19.set("dp3",v18);
	var this20 = AGALMiniAssembler.OPMAP;
	var v19 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("dp4",3,19,0);
	this20.set("dp4",v19);
	var this21 = AGALMiniAssembler.OPMAP;
	var v20 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("abs",2,20,0);
	this21.set("abs",v20);
	var this22 = AGALMiniAssembler.OPMAP;
	var v21 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("neg",2,21,0);
	this22.set("neg",v21);
	var this23 = AGALMiniAssembler.OPMAP;
	var v22 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("sat",2,22,0);
	this23.set("sat",v22);
	var this24 = AGALMiniAssembler.OPMAP;
	var v23 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("m33",3,23,16);
	this24.set("m33",v23);
	var this25 = AGALMiniAssembler.OPMAP;
	var v24 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("m44",3,24,16);
	this25.set("m44",v24);
	var this26 = AGALMiniAssembler.OPMAP;
	var v25 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("m34",3,25,16);
	this26.set("m34",v25);
	var this27 = AGALMiniAssembler.OPMAP;
	var v26 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("ddx",2,26,288);
	this27.set("ddx",v26);
	var this28 = AGALMiniAssembler.OPMAP;
	var v27 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("ddy",2,27,288);
	this28.set("ddy",v27);
	var this29 = AGALMiniAssembler.OPMAP;
	var v28 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("ife",2,28,897);
	this29.set("ife",v28);
	var this30 = AGALMiniAssembler.OPMAP;
	var v29 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("ine",2,29,897);
	this30.set("ine",v29);
	var this31 = AGALMiniAssembler.OPMAP;
	var v30 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("ifg",2,30,897);
	this31.set("ifg",v30);
	var this32 = AGALMiniAssembler.OPMAP;
	var v31 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("ifl",2,31,897);
	this32.set("ifl",v31);
	var this33 = AGALMiniAssembler.OPMAP;
	var v32 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("els",0,32,1921);
	this33.set("els",v32);
	var this34 = AGALMiniAssembler.OPMAP;
	var v33 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("eif",0,33,1409);
	this34.set("eif",v33);
	var this35 = AGALMiniAssembler.OPMAP;
	var v34 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("kil",1,39,160);
	this35.set("kil",v34);
	var this36 = AGALMiniAssembler.OPMAP;
	var v35 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("tex",3,40,40);
	this36.set("tex",v35);
	var this37 = AGALMiniAssembler.OPMAP;
	var v36 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("sge",3,41,0);
	this37.set("sge",v36);
	var this38 = AGALMiniAssembler.OPMAP;
	var v37 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("slt",3,42,0);
	this38.set("slt",v37);
	var this39 = AGALMiniAssembler.OPMAP;
	var v38 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("sgn",2,43,0);
	this39.set("sgn",v38);
	var this40 = AGALMiniAssembler.OPMAP;
	var v39 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("seq",3,44,0);
	this40.set("seq",v39);
	var this41 = AGALMiniAssembler.OPMAP;
	var v40 = new (openfl_utils__$AGALMiniAssembler_OpCode().default)("sne",3,45,0);
	this41.set("sne",v40);
	var this42 = AGALMiniAssembler.SAMPLEMAP;
	var v41 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("rgba",8,0);
	this42.set("rgba",v41);
	var this43 = AGALMiniAssembler.SAMPLEMAP;
	var v42 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("compressed",8,1);
	this43.set("compressed",v42);
	var this44 = AGALMiniAssembler.SAMPLEMAP;
	var v43 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("compressedalpha",8,2);
	this44.set("compressedalpha",v43);
	var this45 = AGALMiniAssembler.SAMPLEMAP;
	var v44 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("dxt1",8,1);
	this45.set("dxt1",v44);
	var this46 = AGALMiniAssembler.SAMPLEMAP;
	var v45 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("dxt5",8,2);
	this46.set("dxt5",v45);
	var this47 = AGALMiniAssembler.SAMPLEMAP;
	var v46 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("video",8,3);
	this47.set("video",v46);
	var this48 = AGALMiniAssembler.SAMPLEMAP;
	var v47 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("2d",12,0);
	this48.set("2d",v47);
	var this49 = AGALMiniAssembler.SAMPLEMAP;
	var v48 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("3d",12,2);
	this49.set("3d",v48);
	var this50 = AGALMiniAssembler.SAMPLEMAP;
	var v49 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("cube",12,1);
	this50.set("cube",v49);
	var this51 = AGALMiniAssembler.SAMPLEMAP;
	var v50 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("mipnearest",24,1);
	this51.set("mipnearest",v50);
	var this52 = AGALMiniAssembler.SAMPLEMAP;
	var v51 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("miplinear",24,2);
	this52.set("miplinear",v51);
	var this53 = AGALMiniAssembler.SAMPLEMAP;
	var v52 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("mipnone",24,0);
	this53.set("mipnone",v52);
	var this54 = AGALMiniAssembler.SAMPLEMAP;
	var v53 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("nomip",24,0);
	this54.set("nomip",v53);
	var this55 = AGALMiniAssembler.SAMPLEMAP;
	var v54 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("nearest",28,0);
	this55.set("nearest",v54);
	var this56 = AGALMiniAssembler.SAMPLEMAP;
	var v55 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("linear",28,1);
	this56.set("linear",v55);
	var this57 = AGALMiniAssembler.SAMPLEMAP;
	var v56 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("anisotropic2x",28,2);
	this57.set("anisotropic2x",v56);
	var this58 = AGALMiniAssembler.SAMPLEMAP;
	var v57 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("anisotropic4x",28,3);
	this58.set("anisotropic4x",v57);
	var this59 = AGALMiniAssembler.SAMPLEMAP;
	var v58 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("anisotropic8x",28,4);
	this59.set("anisotropic8x",v58);
	var this60 = AGALMiniAssembler.SAMPLEMAP;
	var v59 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("anisotropic16x",28,5);
	this60.set("anisotropic16x",v59);
	var this61 = AGALMiniAssembler.SAMPLEMAP;
	var v60 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("centroid",16,1);
	this61.set("centroid",v60);
	var this62 = AGALMiniAssembler.SAMPLEMAP;
	var v61 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("single",16,2);
	this62.set("single",v61);
	var this63 = AGALMiniAssembler.SAMPLEMAP;
	var v62 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("ignoresampler",16,4);
	this63.set("ignoresampler",v62);
	var this64 = AGALMiniAssembler.SAMPLEMAP;
	var v63 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("repeat",20,1);
	this64.set("repeat",v63);
	var this65 = AGALMiniAssembler.SAMPLEMAP;
	var v64 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("wrap",20,1);
	this65.set("wrap",v64);
	var this66 = AGALMiniAssembler.SAMPLEMAP;
	var v65 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("clamp",20,0);
	this66.set("clamp",v65);
	var this67 = AGALMiniAssembler.SAMPLEMAP;
	var v66 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("clamp_u_repeat_v",20,2);
	this67.set("clamp_u_repeat_v",v66);
	var this68 = AGALMiniAssembler.SAMPLEMAP;
	var v67 = new (openfl_utils__$AGALMiniAssembler_Sampler().default)("repeat_u_clamp_v",20,3);
	this68.set("repeat_u_clamp_v",v67);
}
AGALMiniAssembler.OPMAP = new (haxe_ds_StringMap().default)()
AGALMiniAssembler.REGMAP = new (haxe_ds_StringMap().default)()
AGALMiniAssembler.SAMPLEMAP = new (haxe_ds_StringMap().default)()
AGALMiniAssembler.MAX_NESTING = 4
AGALMiniAssembler.MAX_OPCODES = 4096
AGALMiniAssembler.FRAGMENT = "fragment"
AGALMiniAssembler.VERTEX = "vertex"
AGALMiniAssembler.SAMPLER_TYPE_SHIFT = 8
AGALMiniAssembler.SAMPLER_DIM_SHIFT = 12
AGALMiniAssembler.SAMPLER_SPECIAL_SHIFT = 16
AGALMiniAssembler.SAMPLER_REPEAT_SHIFT = 20
AGALMiniAssembler.SAMPLER_MIPMAP_SHIFT = 24
AGALMiniAssembler.SAMPLER_FILTER_SHIFT = 28
AGALMiniAssembler.REG_WRITE = 1
AGALMiniAssembler.REG_READ = 2
AGALMiniAssembler.REG_FRAG = 32
AGALMiniAssembler.REG_VERT = 64
AGALMiniAssembler.OP_SCALAR = 1
AGALMiniAssembler.OP_SPECIAL_TEX = 8
AGALMiniAssembler.OP_SPECIAL_MATRIX = 16
AGALMiniAssembler.OP_FRAG_ONLY = 32
AGALMiniAssembler.OP_VERT_ONLY = 64
AGALMiniAssembler.OP_NO_DEST = 128
AGALMiniAssembler.OP_VERSION2 = 256
AGALMiniAssembler.OP_INCNEST = 512
AGALMiniAssembler.OP_DECNEST = 1024
AGALMiniAssembler.MOV = "mov"
AGALMiniAssembler.ADD = "add"
AGALMiniAssembler.SUB = "sub"
AGALMiniAssembler.MUL = "mul"
AGALMiniAssembler.DIV = "div"
AGALMiniAssembler.RCP = "rcp"
AGALMiniAssembler.MIN = "min"
AGALMiniAssembler.MAX = "max"
AGALMiniAssembler.FRC = "frc"
AGALMiniAssembler.SQT = "sqt"
AGALMiniAssembler.RSQ = "rsq"
AGALMiniAssembler.POW = "pow"
AGALMiniAssembler.LOG = "log"
AGALMiniAssembler.EXP = "exp"
AGALMiniAssembler.NRM = "nrm"
AGALMiniAssembler.SIN = "sin"
AGALMiniAssembler.COS = "cos"
AGALMiniAssembler.CRS = "crs"
AGALMiniAssembler.DP3 = "dp3"
AGALMiniAssembler.DP4 = "dp4"
AGALMiniAssembler.ABS = "abs"
AGALMiniAssembler.NEG = "neg"
AGALMiniAssembler.SAT = "sat"
AGALMiniAssembler.M33 = "m33"
AGALMiniAssembler.M44 = "m44"
AGALMiniAssembler.M34 = "m34"
AGALMiniAssembler.DDX = "ddx"
AGALMiniAssembler.DDY = "ddy"
AGALMiniAssembler.IFE = "ife"
AGALMiniAssembler.INE = "ine"
AGALMiniAssembler.IFG = "ifg"
AGALMiniAssembler.IFL = "ifl"
AGALMiniAssembler.IEG = "ieg"
AGALMiniAssembler.IEL = "iel"
AGALMiniAssembler.ELS = "els"
AGALMiniAssembler.EIF = "eif"
AGALMiniAssembler.TED = "ted"
AGALMiniAssembler.KIL = "kil"
AGALMiniAssembler.TEX = "tex"
AGALMiniAssembler.SGE = "sge"
AGALMiniAssembler.SLT = "slt"
AGALMiniAssembler.SGN = "sgn"
AGALMiniAssembler.SEQ = "seq"
AGALMiniAssembler.SNE = "sne"
AGALMiniAssembler.VA = "va"
AGALMiniAssembler.VC = "vc"
AGALMiniAssembler.VT = "vt"
AGALMiniAssembler.VO = "vo"
AGALMiniAssembler.VI = "vi"
AGALMiniAssembler.FC = "fc"
AGALMiniAssembler.FT = "ft"
AGALMiniAssembler.FS = "fs"
AGALMiniAssembler.FO = "fo"
AGALMiniAssembler.FD = "fd"
AGALMiniAssembler.IID = "iid"
AGALMiniAssembler.D2 = "2d"
AGALMiniAssembler.D3 = "3d"
AGALMiniAssembler.CUBE = "cube"
AGALMiniAssembler.MIPNEAREST = "mipnearest"
AGALMiniAssembler.MIPLINEAR = "miplinear"
AGALMiniAssembler.MIPNONE = "mipnone"
AGALMiniAssembler.NOMIP = "nomip"
AGALMiniAssembler.NEAREST = "nearest"
AGALMiniAssembler.LINEAR = "linear"
AGALMiniAssembler.ANISOTROPIC2X = "anisotropic2x"
AGALMiniAssembler.ANISOTROPIC4X = "anisotropic4x"
AGALMiniAssembler.ANISOTROPIC8X = "anisotropic8x"
AGALMiniAssembler.ANISOTROPIC16X = "anisotropic16x"
AGALMiniAssembler.CENTROID = "centroid"
AGALMiniAssembler.SINGLE = "single"
AGALMiniAssembler.IGNORESAMPLER = "ignoresampler"
AGALMiniAssembler.REPEAT = "repeat"
AGALMiniAssembler.WRAP = "wrap"
AGALMiniAssembler.CLAMP = "clamp"
AGALMiniAssembler.REPEAT_U_CLAMP_V = "repeat_u_clamp_v"
AGALMiniAssembler.CLAMP_U_REPEAT_V = "clamp_u_repeat_v"
AGALMiniAssembler.RGBA = "rgba"
AGALMiniAssembler.COMPRESSED = "compressed"
AGALMiniAssembler.COMPRESSEDALPHA = "compressedalpha"
AGALMiniAssembler.DXT1 = "dxt1"
AGALMiniAssembler.DXT5 = "dxt5"
AGALMiniAssembler.VIDEO = "video"
AGALMiniAssembler.initialized = false
// Export
exports.default = AGALMiniAssembler;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 612 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils._AGALMiniAssembler.Register
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
function _$UInt_UInt_$Impl_$() {return __webpack_require__(43);}
// Constructor
var Register = function(name,longName,emitCode,range,flags) {
	this.name = name;
	this.longName = longName;
	this.emitCode = emitCode;
	this.range = range;
	this.flags = flags;
}
// Meta
Register.__name__ = ["openfl","utils","_AGALMiniAssembler","Register"];
Register.prototype = {
	toString: function() {
		return "[Register name=\"" + this.name + "\", longName=\"" + this.longName + "\", emitCode=" + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(this.emitCode)) + ", range=" + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(this.range)) + ", flags=" + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(this.flags)) + "]";
	}
};
Register.prototype.__class__ = $hxClasses["openfl.utils._AGALMiniAssembler.Register"] = Register;
// Init
// Statics
// Export
exports.default = Register;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 613 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils._AGALMiniAssembler.OpCode
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
// Constructor
var OpCode = function(name,numRegister,emitCode,flags) {
	this.name = name;
	this.numRegister = numRegister;
	this.emitCode = emitCode;
	this.flags = flags;
}
// Meta
OpCode.__name__ = ["openfl","utils","_AGALMiniAssembler","OpCode"];
OpCode.prototype = {
	toString: function() {
		return "[OpCode name=\"" + this.name + "\", numRegister=" + this.numRegister + ", emitCode=" + this.emitCode + ", flags=" + this.flags + "]";
	}
};
OpCode.prototype.__class__ = $hxClasses["openfl.utils._AGALMiniAssembler.OpCode"] = OpCode;
// Init
// Statics
// Export
exports.default = OpCode;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 614 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils._AGALMiniAssembler.Sampler
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function Std() {return __webpack_require__(4);}
function _$UInt_UInt_$Impl_$() {return __webpack_require__(43);}
// Constructor
var Sampler = function(name,flag,mask) {
	this.name = name;
	this.flag = flag;
	this.mask = mask;
}
// Meta
Sampler.__name__ = ["openfl","utils","_AGALMiniAssembler","Sampler"];
Sampler.prototype = {
	toString: function() {
		return "[Sampler name=\"" + this.name + "\", flag=\"" + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(this.flag)) + "\", mask=" + (Std().default).string((_$UInt_UInt_$Impl_$().default).toFloat(this.mask)) + "]";
	}
};
Sampler.prototype.__class__ = $hxClasses["openfl.utils._AGALMiniAssembler.Sampler"] = Sampler;
// Init
// Statics
// Export
exports.default = Sampler;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 615 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(45);
/***/ }),
/* 616 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.CompressionAlgorithm = module.exports.default = {
	DEFLATE: "deflate",
	//GZIP;
	LZMA: "lzma",
	ZLIB: "zlib"
};
/***/ }),
/* 617 */
/***/ (function(module, exports) {
Object.defineProperty (module.exports, "__esModule", { value: true });
module.exports.Endian = module.exports.default = {
	BIG_ENDIAN: "bigEndian",
	LITTLE_ENDIAN: "littleEndian"
};
/***/ }),
/* 618 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(92);
/***/ }),
/* 619 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(123);
/***/ }),
/* 620 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(621);
/***/ }),
/* 621 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.utils.Timer
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
var $bind = __webpack_require__(8).default;
var $extend = __webpack_require__(3).default;
function openfl_events_EventDispatcher() {return __webpack_require__(13);}
function js_Browser() {return __webpack_require__(11);}
function Std() {return __webpack_require__(4);}
function openfl_events_TimerEvent() {return __webpack_require__(233);}
function js__$Boot_HaxeError() {return __webpack_require__(6);}
function openfl_errors_Error() {return __webpack_require__(30);}
// Constructor
var Timer = function(delay,repeatCount) {
	if(repeatCount == null) {
		repeatCount = 0;
	}
	if(isNaN(delay) || delay < 0) {
		throw new (js__$Boot_HaxeError().default)(new (openfl_errors_Error().default)("The delay specified is negative or not a finite number"));
	}
	(openfl_events_EventDispatcher().default).call(this);
	this.__delay = delay;
	this.__repeatCount = repeatCount;
	this.running = false;
	this.currentCount = 0;
}
// Meta
Timer.__name__ = ["openfl","utils","Timer"];
Timer.__super__ = (openfl_events_EventDispatcher().default);
Timer.prototype = $extend((openfl_events_EventDispatcher().default).prototype, {
	reset: function() {
		if(this.running) {
			this.stop();
		}
		this.currentCount = 0;
	},
	start: function() {
		if(!this.running) {
			this.running = true;
			this.__timerID = (js_Browser().default).get_window().setInterval($bind(this,this.timer_onTimer),(Std().default)["int"](this.__delay));
		}
	},
	stop: function() {
		this.running = false;
		if(this.__timerID != null) {
			(js_Browser().default).get_window().clearInterval(this.__timerID);
			this.__timerID = null;
		}
	},
	get_delay: function() {
		return this.__delay;
	},
	set_delay: function(value) {
		this.__delay = value;
		if(this.running) {
			this.stop();
			this.start();
		}
		return this.__delay;
	},
	get_repeatCount: function() {
		return this.__repeatCount;
	},
	set_repeatCount: function(v) {
		if(this.running && v != 0 && v <= this.currentCount) {
			this.stop();
		}
		return this.__repeatCount = v;
	},
	timer_onTimer: function() {
		this.currentCount++;
		if(this.__repeatCount > 0 && this.currentCount >= this.__repeatCount) {
			this.stop();
			this.dispatchEvent(new (openfl_events_TimerEvent().default)("timer"));
			this.dispatchEvent(new (openfl_events_TimerEvent().default)("timerComplete"));
		} else {
			this.dispatchEvent(new (openfl_events_TimerEvent().default)("timer"));
		}
	}
});
Timer.prototype.__class__ = $hxClasses["openfl.utils.Timer"] = Timer;
// Init
{
	var p = Timer.prototype;
	global.Object.defineProperties(p,{ "delay" : { get : p.get_delay, set : p.set_delay}, "repeatCount" : { get : p.get_repeatCount, set : p.set_repeatCount}});
};
// Statics
// Export
exports.default = Timer;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 622 */
/***/ (function(module, exports, __webpack_require__) {
var Lib = __webpack_require__ (25).default;
module.exports.default = Lib.getTimer;
/***/ }),
/* 623 */
/***/ (function(module, exports, __webpack_require__) {
var Lib = __webpack_require__ (25).default;
module.exports.default = Lib.getDefinitionByName;
/***/ }),
/* 624 */
/***/ (function(module, exports, __webpack_require__) {
var Lib = __webpack_require__ (25).default;
module.exports.default = Lib.getQualifiedClassName;
/***/ }),
/* 625 */
/***/ (function(module, exports, __webpack_require__) {
var Lib = __webpack_require__ (25).default;
module.exports.default = Lib.getQualifiedSuperclassName;
/***/ }),
/* 626 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(201);
/***/ }),
/* 627 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(25);
/***/ }),
/* 628 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(629);
/***/ }),
/* 629 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {// Class: openfl.Memory
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = __webpack_require__(1).default;
var $import = __webpack_require__(2).default;
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return __webpack_require__(17);}
// Constructor
var Memory = function(){}
// Meta
Memory.__name__ = ["openfl","Memory"];
Memory.prototype = {
	
};
Memory.prototype.__class__ = $hxClasses["openfl.Memory"] = Memory;
// Init
// Statics
Memory._setPositionTemporarily = function(position,action) {
	var oldPosition = Memory.gcRef.position;
	Memory.gcRef.position = position;
	var value = action();
	Memory.gcRef.position = oldPosition;
	return value;
}
Memory.getByte = function(addr) {
	return Memory.gcRef.get(addr);
}
Memory.getDouble = function(addr) {
	return Memory._setPositionTemporarily(addr,function() {
		return Memory.gcRef.readDouble();
	});
}
Memory.getFloat = function(addr) {
	return Memory._setPositionTemporarily(addr,function() {
		return Memory.gcRef.readFloat();
	});
}
Memory.getI32 = function(addr) {
	return Memory._setPositionTemporarily(addr,function() {
		return Memory.gcRef.readInt();
	});
}
Memory.getUI16 = function(addr) {
	return Memory._setPositionTemporarily(addr,function() {
		return Memory.gcRef.readUnsignedShort();
	});
}
Memory.select = function(inBytes) {
	Memory.gcRef = inBytes;
	Memory.len = inBytes != null ? (openfl_utils__$ByteArray_ByteArray_$Impl_$().default).get_length(inBytes) : 0;
}
Memory.setByte = function(addr,v) {
	var this1 = Memory.gcRef;
	this1.__resize(addr + 1);
	this1.set(addr,v);
}
Memory.setDouble = function(addr,v) {
	Memory._setPositionTemporarily(addr,function() {
		Memory.gcRef.writeDouble(v);
	});
}
Memory.setFloat = function(addr,v) {
	Memory._setPositionTemporarily(addr,function() {
		Memory.gcRef.writeFloat(v);
	});
}
Memory.setI16 = function(addr,v) {
	Memory._setPositionTemporarily(addr,function() {
		Memory.gcRef.writeShort(v);
	});
}
Memory.setI32 = function(addr,v) {
	Memory._setPositionTemporarily(addr,function() {
		Memory.gcRef.writeInt(v);
	});
}
// Export
exports.default = Memory;
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))
/***/ }),
/* 630 */
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(90);
/***/ })
/******/ ]);
});
//# sourceMappingURL=openfl.js.map